Explorerでの検索は終わり!! GPT4oで社内文書を活かすんやで!!! (なごあず/すきやねんAzure7月)
はじめに
2024年7月20日のなごあずの集い#2、2024年7月26日のすきやねんAzureのイベントに登壇しました。
タイトルは
「Explorerでの検索は終り!!GPT4oで社内文書を活かすんやで!!!~Build の最新機能を使った RAG 構築~」
です。
この記事では、スライドの内容をもとに、ポイントとなる部分を紹介します。
RAGとは?
生成AIだけでも、チャットコミュニケーション、学習済み知識を使った質問回答、コード生成、翻訳など、活用できるシーンが多々あります。
従来のAIは、機械学習を専門とするエンジニアが扱えるものでしたが、生成AIはAPIを呼べば使えるため、利用する敷居が低くなり、アプリ開発者も扱えるようになったことが大きな特徴だと言えます。
生成AIからの出力は、学習済みの知識から生成されます。インターネット上の情報を使って学習されています。そのため、**社内ドキュメントなどの情報は学習されていないため、社内ドキュメントに関する情報は生成AIからは回答できません。
生成AIが学習していないことを回答させる方法は2つあります。
- ファインチューニング(追加学習)
- RAG(Retrieval Augmented Generation)
この記事では、RAGについて紹介します。
RAGの仕組み概要です。
- ユーザがチャット内容をアプリに送信します。
- アプリは、社内文書が格納されているDBに、ユーザからのチャットに関連する情報を検索します。
- 生成AIは、ユーザからのチャットに対し検索結果をもとに回答を生成します。
RAGに関連するMicrosoft Build 2024の新サービス/新機能
Microsoft Build 2024にて、RAGに関わるサービスアップデートがいくつかありました。
Azure OpenAI のアップデート
Azure OpenAIには、GPT-4oモデルが追加されました。
※その後7月にはGPT-4o miniも追加されましたね。スピード感がすごい...
Azure Cosmos DB のアップデート
Azure Cosmos DBには、ベクトル検索機能がPreviewされました。
ベクトル検索とは
Azure Functionsのアップデート
Azure Functionsには、Flex従量課金プランがPreviewしたのが1つと、
OpenAI拡張機能がPreviewしたのがもう1つです。
サービスアップデートをもとにしたRAGアーキテクチャ
上記で紹介したサービスアップデートをもとに、RAGアーキテクチャを構築すると、以下のようになります。
- Azure FunctionsのOpenAI拡張機能を使ってCosmosDBとAzureOpenAIと連携します。
- Azure Cosmos DBに検索用ドキュメントを格納し、ベクトル検索機能を使って検索します。
-
Azure OpenAIのGPT-4oを使って回答を生成します。 速度が期待できますね。
RAGチャットアプリのデモ
対象のドキュメントは、すきやねんAzureのイベントページです。
「7月のすきやねんAzureでは何が学べそう?」というチャットを想定しています。
このアーキテクチャで構築したチャットアプリケーションのデモ動画です。デモの流れは以下です。
- CosmosDBにドキュメントが登録されていない状態でチャットをしてみる。→GPT-4oは7月のすきやねんAzureの内容は学習していない。かつ検索されないため回答できない。
- CosmosDBにドキュメントを登録する。
- チャットをしてみる。→CosmosDBに登録されたドキュメントが検索され、回答が得られる。
- チャット履歴をDownloadする。
まとめ
Build2024 で発表されたアップデートされたサービスにより、RAGの仕組みの選択肢が増えました。
- Functions OpenAI拡張機能がPreview
- Cosmos DB for NoSQLでのベクトル検索がPreview
- Auzre OpenAIのGPT-4oモデルがGA
CosmosDBのベクトル検索を使うことで、コスト効率よくRAGを構築できるようになりました。
FunctionsのOpenAI拡張機能を使うと、少ない実装量でOpenAIのAssistants機能を使い、チャットアプリケーションを実装できます。
参考として、本デモに対する実装時間は、4時間程度でした。
おわりに
なごあず、すきやねんAzureはオフラインのイベントです。
今どきはオンラインイベントが多いですが、オフラインイベントですと、来てくださった方々と直に交流して生の声をお聞きできるので、非常に良い経験でした!!
またお世話になります。
Discussion