私たちは日常でChatGPTに問いかけますが、時にChatGPTが知らない情報について質問しなければならない場合があります。こんなとき、OpenAI Embeddingsを活用すると、非公開資料についてもChatGPTに尋ねることができます。
特に、参考資料の量が膨大でChatGPTに入力できない場合に役立ちます。この文章は、ローカルディスクに保存されたプロジェクトフォルダのソースファイルを利用したその過程についての説明です。車を運転するのにエンジンの原理を詳しく知る必要がないように、複雑な技術的詳細は省いて、実際に適用する方法に集中したいと思います。
まず、必要なツールを準備しましょう。
pip install requests numpy nltk
GitHubから必要なコードを持ってきて使用したいと思います。 https://github.com/ryujt/openai-embeddingsでコードをダウンロードしてください。
ダウンロードしたフォルダには、以下のようなPythonファイルが入っています:
まず、emb_save.pyファイルを開いて、幾つか設定を変更する必要があります。
設定を完了したら、コマンドプロンプトで以下のコマンドを実行してください。
python emb_save.py
この過程が終了すると、embeddings.jsonlというファイルが作成されます。
このファイルは、ソースコードがChatGPTが理解できる形式に変換され保存されています。
次に、emb_ask.pyファイルを開いて
そして、以下のコマンドを実行します。
python emb_ask.py
質問に対する回答は、response.mdファイルに保存されます。
このファイルを開くとChatGPTの回答を確認できます。
下の画像は、結果内容の一部をキャプチャしたものです。
とても詳細なレポートがマークダウン形式で保存されているのが分かります。
このシステムの作動原理を簡単に説明すると、以下のとおりです:
この過程を通じてGPTは、本来学習しない特定の情報に対しても、その脈絡を理解して回答できるようになります。これは、GPTに関連文書を提供して、その内容をもとに質問に答えさせるのと似ています。
ダイアグラムの上向き矢印のようにすぐに質問せず、下向き矢印のように参考になる情報が自動的に送信されるものとお考えください。この方式のメリットは、以下のとおりです:
ただし、この方式は、テキストエンベディングの品質と類似性検索の正確度に大きく依存するため、使用されるエンベディングモデルと類似性測定方法の選択が重要になります。
この方法を使用すると、ChatGPTが本来知ることのない特定プロジェクトや文書についても質問することができます。これは、チーム内の文書検索、コード分析、プロジェクト理解など幅広い分野で活用できます。
ChatGPTの強力な言語理解能力と特定データを組み合わせることで、私たちはさらに効率的かつ正確な情報を得られるようになります。