ラグパフォーマンスを改善する方法:5つの重要なテクニックを使用して
検索拡張生成(RAG)は、外部データを組み込むことにより、大規模な言語モデル(LLM)の精度と信頼性を大幅に向上させます。これにより、回答がコンテキスト化され、再訓練なしで更新が可能になります。 ただし、RAGは普遍的に効果的ではありません。この記事では、堅牢なラグパイプラインの構築を詳述し、制限を調査し、ソリューションを提供しています。
Openai Fundamentals(簡単に言及し、拡張する必要はありません) Openai APIの使用について詳しく知ります。 今すぐ開始
(llamaindexドキュメントからの画像)
インデックス作成:
データ(さまざまな形式)がクリーニングされ、プレーンテキストに変換され、管理可能なピースに充電され、埋め込みモデルを使用して数値ベクター(埋め込み)に変換されます。 これらの埋め込みとチャンクは、効率的な検索のためにインデックスが付けられています
-
検索:ユーザークエリは、同じ埋め込みモデルを使用してベクトル化されます。 このシステムは、クエリベクトルとインデックス付きチャンクベクトル間の類似性スコアを計算し、最も類似したチャンクの上部Kを取得します。
- 生成:
クエリと取得したチャンクは、プロンプトにフォーマットされ、回答生成のためにLLMに供給されます。
ぼろきれの制限: 各段階に課題が存在します:
インデックス作成:
検索:
システムは常に関連するチャンクを取得するとは限りません 世代:- 良い検索があっても、LLMは誤った回答を幻覚させる可能性があります。
- ラグパフォーマンスの改善:
- 3つの重要な戦略は、これらの制限に対処します:チャンク、再ランク、クエリ変換。 以下は、Wikipediaエントリに関する質問に答えるためにLlamaindexとOpenai APIを使用してこれらを示しています(Emma Stone、Ryan Gosling、La La Land)。 ベースラインラグシステム:
- 必要なパッケージをインストール:
ウィキペディアのデータをロードしてインデックスを構築します:
コンテキストベースの回答を確保するためのプロンプトテンプレートを作成します:
(簡潔にするために、初期クエリとサブパーレスポンスは省略されています。焦点は改善戦略にあります。)
) チャンキングで改善:!pip install llama-index openai wikipedia
検索を最適化するには、
import os os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"
を調整します
from llama_index.core import (VectorStoreIndex, ServiceContext, download_loader) WikipediaReader = download_loader("WikipediaReader") loader = WikipediaReader() pages = ['Emma_Stone', 'La_La_Land', 'Ryan_Gosling'] documents = loader.load_data(pages=pages, auto_suggest=False, redirect=False) from llama_index.llms import OpenAI from llama_index.embeddings import OpenAIEmbedding, OpenAIEmbeddingModelType gpt3 = OpenAI(temperature=0, model="gpt-3.5-turbo-instruct", api_key=os.environ["OPENAI_API_KEY"]) embed_model = OpenAIEmbedding(model=OpenAIEmbeddingModelType.TEXT_EMBED_ADA_002, api_key=os.environ["OPENAI_API_KEY"]) service_context_gpt3 = ServiceContext.from_defaults(llm=gpt3, chunk_size=256, chunk_overlap=0, embed_model=embed_model) index = VectorStoreIndex.from_documents(documents, service_context=service_context_gpt3) retriever = index.as_retriever(similarity_top_k=3)
(flagembeddingrerankerとrankgptrerankのコードの例は簡潔に省略されていますが、説明は残っています)
-
flagembeddingReranker:hugge慢な顔の再ランクモデル(例えば、
BAAI/bge-reranker-base
)を使用して、チャンク関連性を改善します。 ハグするフェイスアクセストークンが必要です。 -
rankgptrerank:llm(例えば、
gpt-3.5-turbo-0125
)を使用して、セマンティック理解に基づいて検索されたチャンクを再ランクします。
クエリ変換により改善:
(HydeおよびMulti-Stepクエリ変換のコード例は簡潔にするために省略されていますが、説明は残っています)
hyde(仮説文書の埋め込み):
仮説的な答えを生成し、クエリと仮想の回答の両方に埋め込みを作成し、これらの埋め込みに最も近いドキュメントを取得します。-
マルチステップクエリ変換:複雑なクエリをよりシンプルなサブQuerieに分解して、より効果的な処理を行います。
結論: この記事では、ぼろきれのパフォーマンスを向上させるためのいくつかの手法を紹介しました。最適なアプローチは、特定のアプリケーションと望ましい結果に依存します。 RAGのさらなる調査は、[こちらのコードビデオへのリンク]で見つけることができます。
以上がラグパフォーマンスを改善する方法:5つの重要なテクニックを使用しての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

メタのラマ3.2:マルチモーダルAIパワーハウス Metaの最新のマルチモーダルモデルであるLlama 3.2は、AIの大幅な進歩を表しており、言語理解の向上、精度の向上、および優れたテキスト生成機能を誇っています。 その能力t

導入 Mistralは、最初のマルチモーダルモデル、つまりPixtral-12B-2409をリリースしました。このモデルは、Mistralの120億個のパラメーターであるNemo 12bに基づいて構築されています。このモデルを際立たせるものは何ですか?これで、画像とTexの両方を採用できます

SQLの変更テーブルステートメント:データベースに列を動的に追加する データ管理では、SQLの適応性が重要です。 その場でデータベース構造を調整する必要がありますか? Alter Tableステートメントはあなたの解決策です。このガイドの詳細は、コルを追加します
