ZillizとMilvusによるChatGPT検索プラグイン

#はじめに
人工知能研究所のOpenAIは最近、知識ベース検索プラグインのコードをオープンソース化したと発表した。私が関わったこのプロジェクトは、ChatGPTが様々なデータソースから関連するドキュメントのスニペットから知識ベースのデータを取得することで、その情報を増強することを可能にする。このブログポストでは、このプロジェクトの意味と、それが企業にもたらす利点について述べます。
知識ベース検索プラグイン
ナレッジベース検索プラグインは、ChatGPT が外部がホストする関連ドキュメントスニペットから情報を取得するためのツールです。ChatGPTは、自然言語で質問したり、ニーズを表現することで、ファイル、メモ、メールなど、収集・保存している様々なソースから適切なデータを取得することができます。この機能は、ChatGPT が情報を取得するための簡単で効率的な方法を提供し、より正確で信頼できるものにします。
企業にとっての利点
企業は、ChatGPTを通して従業員が社内文書を利用できるようにすることで、このプラグインから大きな利益を得ることができます。これにより、従業員は複数のソースを検索することなく、合理的な方法で社内文書から情報を取得することができます。また、取得した情報が正確で最新であることを保証します。また、開発者はこのプラグインを使用して独自のナレッジベースをホストし、独自のソースからのデータ取得を容易にすることができます。
仕組み
このプラグインはOpenAIの text-embedding-ada-002
埋め込みモデルを使ってドキュメントチャンクの埋め込みを生成し、埋め込みをベクターデータベースに保存してクエリを実行します。ここからが私の出番だ。私はOpenAIのチームと協力して、MilvusとZillizをこれらの埋め込みを保存するのに適したベクターデータベースの一つにしました。
シンプルなAPIは、ドキュメントのアップサート、クエリ、削除のためのプラグインのエンドポイントを公開します。ソース、日付、作者などのメタデータフィルタを使って、検索結果を絞り込むことができます。MilvusやZillizを最新のドキュメントで更新し続けるために、プラグインは様々なデータソースからのドキュメントを継続的に処理し、保存することができます。
Zillizプラグインを使用して、Appleの利用規約(TOS)内のDRMポリシーを検索する簡単な例を示します。ChatGPTはまずZilliz Cloud内のプロンプトを検索し、結果を要約します。その後、ChatGPTは検索プラグインを介してZillizにアクセスし、最も関連性の高いデータを検索します。
Zilliz Cloudの設定方法
Zilliz Cloudでは、アカウントを作成し、インスタンスとエンベッディングをセットアップするだけです。ここでは、クイックスタートガイドと、設定する必要がある検索プラグインの環境変数について説明します:
環境変数
| 名前| 必須| 説明| ----------
| ---------- | ----------- | -------------|
| データストア名、zilliz
に設定。
| BEARER_TOKEN
| はい|あなたの秘密トークンです。
| OPENAI_API_KEY| Yes|あなたのOpenAI APIキー|
ZILLIZ_API_KEYに設定します。 |
ZILLIZ_COLLECTION| オプション|Zillizコレクション名。デフォルトはランダムなUUID。 |
ZILLIZ_URI| オプション | Zilliz インスタンスの URI。 | オプション| Zilliz ユーザー名|
ZILLIZ_USER| 任意|Zilliz のパスワード|
MILVUS_USER``
このように設定したら、以下のテストを実行し、このコマンドで統合が機能していることを確認する。
pytest ./tests/datastore/providers/zilliz/test_zilliz_datastore.py
を実行してください。
Milvusのセットアップ方法
もちろん、オープンソースのMilvusがお好みであれば、Docker Compose、Helm、K8のOperator、またはAnsibleを使ってMilvusをデプロイし、管理することができます。説明書](https://milvus.io/docs)に従って始めてください。
環境変数
| ---------- | ----------- | -------------|
| データストア名、milvus
に設定。
| BEARER_TOKEN| Yes|ベアラートークン。 | OPENAI_API_KEY
| Yes|あなたの OpenAI API キー。
| オプション|Milvusコレクション名、デフォルトはランダムなUUID| MILVUS_COLLECTION
| デフォルトは localhost
です。
| デフォルトは 19530
です。
| MILVUS_USER
| オプション | RBAC が有効な場合の Milvus ユーザー名、デフォルトは None
です。
| デフォルトは None
です。|MILVUS_PASSWORD
| オプション|Milvus パスワードが必要な場合、デフォルトは None
です。
このように設定したら、以下のテストを実行し、このコマンドで統合が機能していることを確認する。
pytest ./tests/datastore/providers/milvus/test_milvus_datastore.py
を実行してください。
プラグインのデプロイ
プラグインがテストされたので、デプロイに移ります。ChatGPTはAmazon ECS、Fly.io、Herokuなど、プラグインサーバが動作している場所にリクエストを送ることでプラグインにアクセスします。詳しい設定方法は GitHub readme の Deployment セクションを見てください。
メモリー機能
この新しいプラグインのクールな機能の一つは、memory と呼ばれる機能です。これはChatGPTに会話からの情報を記憶し、後で使用するためにベクターデータベースに保存する機能を与えます。
謝辞
これは楽しいプロジェクトで、Isabella FulfordのOpenAIチームとFrank LiuとRobert GuoのZilizチームに感謝したい。何かフィードバックがあったり、自分で試してみたいという方は、GitHub repoをチェックしてみてください。私自身、ChatGPT Retrieval Pluginのreadmeに記載されている多くの素晴らしいアイデアの一つに貢献できることを楽しみにしています!
読み続けて

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Zilliz Cloud transforms legal document analysis with AI-driven Semantic Search and Retrieval-Augmented Generation (RAG). By combining keyword and vector search, it enables faster, more accurate contract analysis, case law research, and regulatory tracking.

Transformers4Rec: Bringing NLP Power to Modern Recommendation Systems
Transformers4Rec is a powerful and flexible library designed for creating sequential and session-based recommendation systems with PyTorch.

Combining Images and Text Together: How Multimodal Retrieval Transforms Search
Discuss multimodal retrieval and composed image retrieval (CIR) techniques, including Pic2Word, CompoDiff, CIReVL, and MagicLens.