このノートブックには、watsonx.aiで検索された再生世代のサポートを示す手順とコードが含まれています。データ検索、知識ベースの構築とクエリ、モデルテストのコマンドを導入します。
LLMモデル、Langchain、Milvusを使用して、検索拡張生成(RAG)システムを作成します。これにより、大規模な言語モデル(LLM)を微調整することなく、ドキュメント(トレーニングデータに含まれていなかった)について質問することができます。 RAGを使用する場合、質問が与えられた場合、最初に検索手順を実行して、これらのドキュメントがインデックス化されたベクトルデータベースである特別なデータベースから関連するドキュメントを取得します。
検索拡張生成(RAG)は、自然言語の知識ベースを照会するなど、情報の事実のリコールを必要とする多くのユースケースを解き放つことができる多用途のパターンです。
大規模な言語モデル(LLMS)は、コンテキストを理解し、要約、Q&Aなど、さまざまなNLPタスクに正確な回答を提供する能力を証明しています。トレーニングを受けた情報に関する質問に対して非常に良い回答を提供することはできますが、トピックが「知らない」情報に関するトピックである場合、トレーニングデータに含まれていない場合、彼らは幻覚を起こす傾向があります。検索拡張生成は、外部リソースとLLMを組み合わせます。したがって、ぼろきれの主な2つのコンポーネントは、レトリバーとジェネレーターです。
レトリーバー部分は、データをエンコードできるシステムとして説明できます。これにより、関連する部分を簡単に取得できます。エンコーディングは、テキスト埋め込みを使用して行われます。つまり、情報のベクトル表現を作成するためにトレーニングされたモデルです。レトリバーを実装するための最良のオプションは、ベクトルデータベースです。 Vectorデータベースとして、オープンソースまたは商用製品の両方に複数のオプションがあります。 Chromadb、Mevius、Faiss、Pinecone、Weaviateの例はほとんどありません。このノートブックのオプションは、ChromadB(永続的)のローカルインスタンスです。
発電機部の場合、明らかなオプションはLLMです。このノートブックでは、Kaggle Modelsコレクションの量子化されたLlama V2モデルを使用します。
レトリバーとジェネレーターのオーケストレーションは、Langchainを使用して行われます。 Langchainからの特殊な機能により、1つのコードで受信機を作成することができます。
最も単純な形式では、RAGには3つのステップが必要です。
ウィキペディアからの690,000語のクリーニングされたテキストの価値。
3つの質問ファイルがあります。1つは学生の各年に1つあります:S08、S09、およびS10。
「questionanswerpairs.txt」ファイルには、質問と回答の両方が含まれています。このファイルの列は次のとおりです。
貧弱であると判断された質問は、このデータセットから捨てられました。
多くの場合、同じ質問を持つ複数の行があります。これは、それらの質問が複数の個人によって回答された場合に表示されます。 https://www.kaggle.com/rtatman/questionanswer-dataset