Azureで使えるベクターストア

8.5K Views

October 11, 23

スライド概要

2023/10/11開催の 続・生成AI周回遅れキャッチアップ勉強会! でのLT資料です

profile-image

SIer所属のインフラ屋さんです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Azureで使えるベクターストア 2023/10/11 続・生成A I周回遅れキャッチアップ勉強会! Shunsuk e Yoshik a wa

2.

自己紹介 Shunsuke Yoshikawa X: https://x.com/ussvgr Qiita: https://qiita.com/ussvgr ⚫ 所属: 株式会社エーピーコミュニケーションズ ⚫ 普段の仕事: Azureのインフラ構築 ⚫ MICUG クラウドネイティブ/内製開発分科会オーガナイザー ⚫ Platform Engineering Meetup 運営メンバー ⚫ Microsoft MVP (Microsoft Azure) 2023/06~ ⚫ 愛知県在住

3.

私とLLM、あるいは本LTのモチベーションについて お仕事でメインでやってるのはインフラ領域 ⚫ ネットワークの閉域化 APC 技術ブログ - Azure OpenAI Serviceにアクセスできるネットワークを制限する ⚫ 認証方式の検討 APC 技術ブログ - Azure OpenAI ServiceのAPIキーを無効化する LLMをビジネスにどう活用するか?とかは他に得意な人がいるのでお任せ状態… → 周回遅れ勢 なのでLTドリブンで追いついていく💪

4.

本題に入る前に 関連知識の説明

5.

RAG (Retrieval Augmented Generation) 外部のデータを補助として利用することで LLMが学習していない内容についても回答できるようにする技術 画像引用元: Azure-Samples/azure-search-openai-demo – github.com

6.

Embedding テキストをベクター表現に変換し次元空間に 埋め込む ことで、 意味的に近い文章を比較できるようにする 画像引用元: Introducing text and code embeddings – openai.com

7.

Embedding に使用するモデル Embedding には専用のモデルを用いる。 Azure OpenAI Service ではEmbedding用のモデルとして、 text-embedding-ada-002 が用意されている。 画像引用元: エイダ・ラブレス - Wikipedia

8.

RAG パターン 事前に学習対象のデータをベクター化して ベクターストアに保管、 ユーザーからの入力もベクター化してベクターストアから類似したデータを検索する。 ベクター化 ベクター化 検索 保管 回答生成

9.

Azureで使えるベクターストア

10.

Azure Cognitive Search アプリケーションに検索機能を組み込むためのサービス ベクター検索機能はまだプレビュー状態 セマンティック検索と組み合わせた ハイブリッド検索 でより正確な結果を取得できる Azure OpenAIの On your data でも Cognitive Searchが使われている

11.

Azure Cache for Redis Azureで提供されるマネージドなRedisサービス Redis単体ではベクター検索の機能はなく、 RediSearch拡張機能 の導入が必要 Azure Cache for Redis で拡張機能を導入するには Enterpriseプランが必要となり、そこそこ高価

12.

Azure Database for PostgreSQL / Azure Cosmos DB for PostgreSQL Azureで提供されるマネージドなPostgreSQLサービス Cosmos DB for PostgreSQLは Citus による分散DB pgvector拡張機能 を導入することで、 ベクター検索が可能となる

13.

Azure Cosmos DB for MongoDB vCore Azureで提供されるMongoDB互換サービス 要求ユニット(RU)モデルと仮想コア(vCore)モデルの 2種類が存在するが、仮想コアモデルのみベクター検索 に対応している 仮想コアモデルはまだプレビュー

14.

Azure Data Explorer Log Analyticsでおなじみの Kusto言語(KQL)でデータ検索を行うサービス えっ、KQLでベクター検索を?できらぁ! series_cosine_similarity_fl() という関数を使って 2つのベクトルのコサイン類似性を計算できる

15.

どれ使うのがいい? いろんな観点があるので一概に言うのは難しい ⚫ コスト ⚫ スケーラビリティ ⚫ チームメンバーが慣れてる製品 ⚫ 採用するフレームワークが対応しているもの ⚫ GAしたものしか使いたくない ⚫ Microsoftにロックインされるのは嫌だ などなど…

16.

独断と偏見による選択 基本は Azure Cognitive Search の利用を第一に考える。 検索専門のサービスだし、ハイブリッド検索も強力。 ナレッジベースからのデータ収集には最適。 レスポンス最優先なら Azure Cache for Redis。 オンメモリーだし速いはず(未計測なので、そんなに速くなかったらスイマセン) ロックイン回避したいなら PostgreSQL + pgvector or Cosmos DB for MongoDB。 将来のスケーラビリティを考えるなら Cosmos DB for PostgreSQL / MongoDB。 Kustoが大好きなら Azure Data Explorer 使いましょう。

17.

まとめ ⚫ RAGアーキテクチャを構成するにあたりベクターストアは大事な要素だよ ⚫ Azureでは多くの種類のベクターストアが用意されてるよ ⚫ 用途に合わせて適切なものを選ぼうね

18.

Enjoy LLM with Azure !