このプロジェクトでは、GROQ APIを使用してアクセスしたLlama3-70B-8192 LLMにぼろきれを作成しました。 RAGに使用される文書は、個人的な金融に関する記事を含むSeedlyブログのWebScrappingを介して取得されました。私が取得した記事は、主にシンガポールで不動産の購入と保険契約に関するものでした。目的は、シンガポールのコンテキスト内での個人的な財政に関連する質問により文脈を認識し、答えることができる言語モデルを開発することです。
私は、記事をこすり、テキストチャンクを埋め込みに変換するためにAll-Minilm-L6-V2モデル、テキストストレージと検索用のFAISSベクターストア、Scrapyを使用しました。最後に、Langchainを使用して、テキストチャンクの取得から構造化とチェーンを促して、望ましい出力を達成するまで、すべての異なるコンポーネントをインターフェイスしました。
最終出力は、2つのプロンプトをチェーンすることによって生成されます。最初のプロンプトは、提供されたコンテキストを要約したものです(ユーザーが尋ねた質問と最も類似したテキストチャンクの上位3)、2番目は実際の応答を生成します。これは、応答を生成するために使用されるプロンプトが長すぎないようにするためです(コンテキストとしてフルレングスのテキストチャンクが含まれている場合)。
プロンプトのチェーンは、予想通りに機能し、テキストチャンクの要約が2番目のプロンプトに正常に追加されます。パイプラインのパフォーマンスは、提供されるコンテキストドキュメントの品質によって異なります。
このプロジェクトを行うと、Langchainを使用してRAGを実装する方法、LLMをプロンプトテンプレートとインターフェイスし、Langchain Expression Language(LCEL)を使用してプロンプトチェーンを作成する方法、およびLangchainと一緒にベクトルストアと埋め込み機能を使用する方法を学びました。 LLMアプリケーション開発のこれらの基本的な概念により、将来、より複雑なLLMアプリケーションを構築できるようになると思います。