43
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【RAG】Azure On Your DataがGAされたので䜿っおみた

43
Last updated at Posted at 2024-03-07

はじめに

Azureで簡単にRAG独自デヌタに基づいた䌚話ができる生成AIを構築できる機胜「On Your Data」が2024/2にGAされたした。

この機胜に぀いお簡単な解説ずずもに利甚方法、性胜評䟡の玹介をしたす。

なお、本機胜は曎新が頻繁に入る機胜であるため、執筆時ず内容が倉わっおいる可胜性がありたす。本蚘事は2024/03/01時点のデヌタをもずに執筆しおいるためご容赊ください。

結論

On Your Dataはプレビュヌ版初期ず比べ、怜玢手法远加などで粟床よく回答が出力されるようになっおおり、怜玢ずしお十分実甚的になっおいる。

䞀方、怜玢された内容を前提に発展的な䌚話をするずいう甚途であれば、チュヌトリアルレベルの実装では難しい。ただし、プロンプトなど倚少の工倫で実珟できる可胜性はある。

On Your Dataに぀いお

Azure OpenAI Serviceの「On Your Data」は、䞀般的なデヌタではなく独自デヌタに基づいお回答する生成AIを簡単に構築できる機胜です。

Azure OpenAIの機胜拡匵機胜ずしおの䜍眮付けで、Azure OpenAIからリ゜ヌスを䜜成した埌、Azure OpenAI Studioの画面から䜿えたす。Azure OpenAI Studioは元々ブラりザ䞊でチャット機胜を詊せるサヌビスですが、On Your Dataを甚いるずさらにそこに独自デヌタの読み蟌み蚭定を簡単にできたす。

独自デヌタの栌玍方法は2024/03/01時点で䞋蚘から遞べたす。

  • ファむルの盎接アップロヌド
  • BlobStorageに栌玍されおいるデヌタ
  • CosmosDB for MongoDB vCore
  • Azure AI Serach䜜成枈みのむンデックス
  • Web Address

On Your Dataは2023幎6月ごろにプレビュヌ版ずしお公開されおおり、2024幎2月に䞀般公開されたした。ただ私が以前觊った2023幎7月ごろの時点では、なかなか日本語で粟床を出すこずが難しい状態でした。

圓時はデヌタの怜玢手法ずしお、テキスト怜玢ずセマンティック怜玢ずいう2぀の怜玢手法があったのですが、日本語はテキスト怜玢しか察応しおおらず、単玔なキヌワヌドの合臎性でしか怜玢できたせんでした。

しかし、その埌2023幎8月の曎新でベクトル怜玢が可胜になり、より意味に着目した怜玢ができるようになりたした。

ベクトル怜玢ずは
テキストを倚次元空間䞊のベクトルに倉換し、その類䌌床を蚈算しお怜玢を行う手法です。ベクトルの「向き」ず「倧きさ」から単語のより意味的な類䌌性を捉えるこずができたす。基本的には高校で習うベクトルず同じです。ただ、X,Yの2次元ではなくもっずずっず次元数が倚い1000次元以䞊ずかのベクトルです。

今では単玔なベクトル怜玢だけにずどたらず、テキスト怜玢ずベクトル怜玢の組み合わせや、その組み合わせ結果に察しおさらにAIによるリランキングなどもできるようになっおいたす。

以前は回答に誀りがあるケヌスも散芋されたしたが、このあたりの機胜で改善されおいる公算が高いのでGA蚘念に再評䟡したいず思いたす。

詊す内容

党䜓構成

独自デヌタずしお匊瀟BIPROGYのwikipedia情報を取り蟌み、匊瀟に぀いおの質問に回答できるチャットボットを䜜成したす。

Web情報なので本来はOn Your Dataで盎接urlを指定しおもよいのですが、今回は瀟内フォルダに栌玍されおいる資料をベヌスに回答するチャットボットをむメヌゞしたいのでテキストファむルに内容を保存し、それをBlobStorageに栌玍したす。

内容を図にするず以䞋のようになりたす。

党䜓構成

wikipediaの内容をテキスト化したファむルがBiprogy_Inc.txtです。BlobStorageにアップロヌドしおおきたす。

Biprogy_Inc.txtファむルはOn Your Data蚭定時にAI Searchにむンデックスずしお登録されたす。(今回はベクトル怜玢も䜿うので、ここで䞀緒にベクトル化もされたす。)

ナヌザからの質問時にはむンデックスから必芁な情報を怜玢した埌、Azure OpenAIで回答を敎圢し返信したす。

AI Searchに登録される際はドキュメントの差分を定期的に確認しおむンデックスに反映させる機胜が蚭定されたす。

環境

本蚘事の環境は以䞋です。

Resource Region Level
Azure OpenAI Service Australia-East Standard
AI Service Australia-East Basic
StorageAccount Australia-East Standard

Azure OpenAIのチャットモデルずしおgpt-4-1106-Previewモデルを䜿いたいためオヌストラリア東郚リヌゞョンにしおいたす。gpt-3.5などを遞択すれば日本リヌゞョンでも可胜です。

Azure OpenAIでは䞋蚘モデルをデプロむしおいたす

  • gpt-4-1106-Preview
  • text-embedding-ada-002

䜿い方

解説を亀えながら䜿い方を玹介したす。

前提

䞋蚘前提がありたす。

  • Azure OpenAI Serviceのリ゜ヌスが䜜成されおいるこず䜜成には申請が必芁です
    • Azure OpenAI Studioで以䞋のモデルをデプロむしおいるこず
      • チャット甚のモデル本蚘事ではgpt-4-1106-Preview
      • embedding甚のモデル本蚘事ではtext-embedding-ada-002
  • Azure AI Searchのリ゜ヌスが䜜成されおいるこずBasicレベル以䞊
  • StorageAccountのリ゜ヌスが䜜成されおいるこず
    • Blob匿名アクセス可胜のコンテナが䜜成されおいるこず
    • コンテナ内に怜玢したいドキュメントを栌玍しおいるこず

蚭定の開始

Azure OpenAI Studioのトップ画面からデヌタ持ち蟌みを遞択したす。

Azure OpenAI Studioトップ

デヌタ゜ヌスを遞択たたは远加する

「デヌタ゜ヌスを遞択たたは远加する」の画面から必芁事項を入力する。

デヌタ゜ヌスを遞択たたは远加する

BlobStorageずAzure AI Searchのリ゜ヌス、ストレヌゞコンテナは䜜成枈みの必芁があり、䜜成枈みの堎合はプルダりンで遞択できたす。䜜成枈みにもかかわらずプルダりンで出おこない堎合は蚭定に問題があるず思われたす。

想定されるものずしおは、Azure AI Searchであれば䟡栌レベルがBasic以䞊になっおいるか、リヌゞョンがAzure OpenAI Serviceず同じか確認しおください。

ストレヌゞコンテナが出おこない堎合はコンテナがBLOBで䜜成されおいるか確認しおください。BLOBでなくプラむベヌトだずアクセスができたせん。BLOBを䜜成するためにはStorageAccount自䜓で匿名アクセスが有効化されおいる必芁がありたす。

ストレヌゞコンテナ画面

「むンデクサヌのスケゞュヌル」に関しお、むンデクサヌずはAI Searchがデヌタ゜ヌスに察しお定期的にスキャンを実行しお差分がないか確認する機胜です。今回はデヌタの曎新予定はないですが、実運甚を想定しおDailyを遞択しおおきたす。

むンデクサヌのスケゞュヌル

画面䞋郚の「ベクトル怜玢をこの怜玢リ゜ヌスに远加したす」を遞択するず远加で「モデルの埋め蟌み」欄が出おくるのでここでembedding甚のデプロむを遞択したす。ここもembedding甚のデプロむが未䜜成の堎合はプルダりンで出おこないため䜜成したす。

モデルの埋め蟌み

embedding埋め蟌みずは
非構造化デヌタをベクトル化するこずです。テキストをベクトル怜玢するにあたり元のテキストをベクトル化したものをむンデックスに登録しおおく必芁がありたす。このベクトル化するずきに䜿われるのが生成AIのembedding甚のモデルです。チャット甚モデルを䜿うずきず同様に課金されたす。

最埌に「Azure AI Searchアカりントに接続するず」の郚分にチェックを入れお「次ぞ」を抌したす。

デヌタ管理

次の「デヌタ管理」画面では怜玢皮類を遞べたす。

デヌタ管理

怜玢の皮類ずしおは以䞋が蚭定できたす。

  • ベクトル
  • ハむブリッドベクトルキヌワヌド
  • ハむブリッドセマンティック

本圓はキヌワヌド怜玢ずいう遞択肢もありたすが、前ペヌゞで「ベクトル怜玢をこの怜玢リ゜ヌスに远加したす」を遞択しおいるためでおこないのだず思われたす。

ハむブリッドは文字通りベクトル怜玢ずキヌワヌド怜玢を䞡方利甚し、出おきた結果を評䟡ランキングするこずでより適した結果を返す怜玢手法です。

ハむブリッドセマンティックはベクトル怜玢ずキヌワヌド怜玢を䞡方䜿甚した結果に察しお、セマンティックランカヌずいう独自のAIによるランキングメ゜ッドを適甚しお結果を返したす。

セマンティックランカヌずは
怜玢結果から、より関連性の高い結果を抜出するためのAI Searchのプレミアム機胜です。昔はセマンティック怜玢ず呌んでいたものがセマンティックランカヌず名前を倉えたしたMicrosoft Bing から掟生したディヌプ ラヌニングモデルを甚いお、怜玢結果を関連性の高い順番に再ランキングしたす。

セマンティックを甚いるずAI Search偎で远加コストが発生するものの、珟状ハむブリッドセマンティックの組み合わせが掚奚されおいたすのでこちらを遞択したす。

On Your Dataのサむトでもセマンティックを有効化するこずが掚奚されおいたす。

情報取埗ずモデル応答の品質を向䞊させるために、英語、フランス語、スペむン語、ポルトガル語、むタリア語、ドむツ語、䞭囜語 (Zh)、日本語、韓囜語、ロシア語、アラビア語のセマンティック怜玢を有効にするこずをお勧めしたす。

「次ぞ」をクリックすしたす。

蚭定のレビュヌ

「レビュヌしお終了」の画面が出たすので「保存しお閉じる」を抌したす。するず、OpenAI Studioのチャットの画面に戻り、「むンゞェストが進行䞭です」ず衚瀺されたす。

むンゞェストが進行䞭

終わるず以䞋の画面になりたす。

むンゞェスト終了

ちなみに「詳现蚭定」を遞択するず以䞋の画面がでたす。

詳现蚭定

デヌタコンテンツぞの応答を制限するにチェックが入っおいるので、デフォルトでは提䟛されたデヌタのみから回答し、生成AIが知っおいる䞀般的な内容を元にした回答はされなくなっおいたす。

プロンプトの蚭定

次にプロンプトを蚭定したす。On Youd Dataのサむトにサンプルが曞いおありたす。

デヌタに特定の特性がある堎合は、これらの詳现をシステム メッセヌゞに远加できたす。 たずえば、ドキュメントが日本語の堎合は、"日本語のドキュメントを取埗し、それを日本語で泚意深く読み、日本語で回答する必芁がありたす。" ず远加できたす。

これを参考に今回は以䞋のように蚭定したす。

あなたはBIPROGY株匏䌚瀟の広報担圓です。
ナヌザの質問に察しおBIPROGYに぀いお蚘茉されおいる日本語のドキュメントを取埗し、それを日本語で泚意深く読み、日本語で回答する必芁がありたす。回答には出兞も明瀺したす。

プロンプトタブを遞択し、「システムメッセヌゞ」の欄にプロンプトを入力したす。その埌「倉曎を適甚する」のクリックも忘れないでください。

プロンプト蚭定

これで蚭定は終わりです。

蚭定内容確認

蚭定された内容を確認したす。AI Searchの画面を開くずむンデックスが䜜成されおいたす。

むンデックスのフィヌルド

䞀番䞋にcontentVectorのフィヌルドがあり、ここにベクトル化された倀が栌玍されおいたす。ディメンションは1536次元です。3次元以䞊のベクトルっおむメヌゞ぀かないですね、、

怜玢゚クスプロヌラヌで芋るず確かにcontentVectorのずころに数字がたくさん入っおいたす。

怜玢゚クスプロヌラヌ

たた、BlobStorageに栌玍されおいるデヌタの曎新を怜知反映しおくれるむンデクサヌですが、これも確かに䜜成されおいたす。動䜜怜蚌は割愛したす。

むンデクサヌ

評䟡

さっそく質問をしおみたす。たずは簡単な質問から。

蚭立幎を教えお

正しい答えが返っおいたす。「参照」を開くずもずにしたファむルBIPROGY_Inc.txt - Part 1が衚瀺されたす。

もう1぀聞いおみたす。

スポンサヌを教えお

はい、こちらも正しい内容が返っおきたした。パレヌドの最埌にはBIPROGYのロゎが出おきお、これは匊瀟瀟員のテンションが䞊がるポむントになっおいたす䜙談。参照ファむルが3぀でおきたしたが、これらはいずれも該圓する内容が曞いおある郚分なので出兞ずしお正しそうです。

最埌にもう少し発展的な質問をしおみたす。

匊瀟の戊略

ドキュメントが存圚しない、ず蚀われたした。正確には幎衚はありたす。「幎衚を教えお」だず問題なく出力されたす。幎衚に基づいた戊略はありたせん。

期埅した内容ずしおは怜玢しお芋぀けた幎衚に察しおLLMずしお考察をしおほしかったです。「デヌタコンテンツぞの応答を制限する」の圱響かもしれたせん。

詊しに「デヌタコンテンツぞの応答を制限する」を倖しおみたした。

匊瀟の戊略2

出力されたした。幎衚郚分は正しそうで、それに远加しおLLMの考察も加わっおおり意図した内容です。ただ幎衚は1947、1951、2022幎の3幎に぀いおしか蚀及されおおらず偏りすぎに芋えたす。

参照ドキュメントを芋るずBIPROGY_Inc.txt -Part1-のみが挙げられおいたす。これはPart1で抂芁が曞かれおいる郚分で幎衚郚分ずは違いたす。抂芁郚分にはこの3幎分だけの蚘茉がないためこのようになっおいたす。もう少し頑匵っおほしいずころですね。

所感

率盎な感想ずしおはよい粟床だず思いたした。簡単に䜜成できる反面现かいチュヌニングはできないのですが、十分䜿える範囲かず思いたす。むンデクサヌも登録されるので実運甚にも耐えられそうです。デヌタが増えたずきの粟床は気になりたすが

ただ、せっかくの生成AI、ただの怜玢゚ンゞンずしお䜿うだけでは少し物足りないず思う自分もいたす。最埌に詊したように怜玢される情報をベヌスに壁打ちなど発展的なこずができればさらに䟡倀が生めそうです。

このあたりはOn Youd Dataのサむトのサむトにも蚘茉があり、プロンプトを工倫すればできるのかもしれたせん。

プロンプト ゚ンゞニアリングには、出力の改善を詊みるこずができるテクニックがたくさんありたす。 䞀䟋ずしお、"取埗したドキュメントに含たれる情報に぀いお段階的に考え、ナヌザヌ ク゚リに回答しおください。ドキュメントからナヌザヌ ク゚リに関連する知識を段階的に抜出し、関連するドキュメントから抜出された情報から回答をボトムアップしたす。" ずいう思考の連鎖を促すプロンプトを远加できたす。

Azure OpenAI Studioの「詳现蚭定」の画面から遞べた厳栌床の調敎も有効化かもしれたせん。

たた、On Youd Dataで構築したチャットはAPIでも実行できたすので、Assistant APIなどを組み合わせおもできるのではず思いたす。このあたりは別途怜蚌したいず思いたす。

おわりに

いかがでしたでしょうか。

Azure OpenAI呚りのサヌビスは驚くようなスピヌドで進化を遂げおおり、以前觊ったずきからの進化に私自身驚かせられたした。On Your Dataをはじめ生成AI関連サヌビスは進化が激しいので倉化に眮いお行かれないように今埌もキャッチアップ・発信を継続しおいきたいです。

たた、On Your Data自䜓は手軜にお詊しできる機胜なので、興味があったら是非やっおみおください。

We Are Hiring

BIPROGYでは䞀緒に働く仲間を募集しおいたす。ご興味ある方は䞋蚘をご参照ください。

43
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?