今回は、ある目的を達成するための回答をLLMから得るためにプロンプトを工夫するPrompt Designにおいて、主に開発によってそれを達成する手段の1つ「index」の概要と、1例として、Text Embeddingを用いたindexの仕組みを解説します。
特に、エンジニアの方やLLMを利用したシステム開発を行いたい方に有用な記事となっていますので、ぜひ読んで理解してみてください。
LLM開発におけるindexとは
あらかじめシステムに情報を用意しておき、ユーザーの入力に応じて抜粋した情報と合わせてプロンプトとしてLLMにわたす手法のことです。
indexの構造にはここで紹介するものに限らず、バリエーションがあります。
Embeddingとは
テキストをベクトルに変換することです。
適切にベクトルに変換することで、テキスト同士の類似性を計算することができるようになります。
膨大な情報からあるテキストに一致する情報を検索したり、テキストを分類することができたりします。
Embeddingやベクトル同士の類似度の計算にもバリエーションがあります。
Text Embeddingを用いたLLM開発におけるindexの仕組み
1.概要
2.準備
①ドキュメントをいくつかのまとまり(Chunk)に分ける
②ChunkをEmbeddingしてベクトルにする
③ベクトルとChunkの組をシステムに保存
3.プロンプトを作成する
①ユーザーからの質問をEmbeddingしやすいように加工する
②加工したものをEmbeddingする
③ユーザーからの入力のベクトルから、あらかじめ保存しておいたベクトルに近いものを選ぶ
④探したベクトルに対応するChunkと、ユーザーの質問を合わせて新しいプロンプトを作る。
⑤新しいプロンプトをLLMにわたす。
まとめ
Prompt Designの手法の一つ、Text Embeddingを用いたindexについて解説してまいりました。
この手法を使うことで、特定の情報に特化させたLLMシステムを開発することができます。
ここで紹介したものはあくまで1例です。応用することで、様々なシステム開発に応用することができるでしょう。ぜひ試してみてください。