Heim >Technologie-Peripheriegeräte >KI >So verbessern Sie die Lagleistung: 5 Schlüsseltechniken mit Beispielen

So verbessern Sie die Lagleistung: 5 Schlüsseltechniken mit Beispielen

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-03-07 09:22:09940Durchsuche

Abruf Augmented Generation (RAG) erhöht die Genauigkeit und Zuverlässigkeit des großen Sprachmodells (LLM) durch Einbeziehung externer Daten erheblich. Dies kontextualisiert Antworten und ermöglicht Updates ohne Umschulung. Lag ist jedoch nicht universell effektiv. In diesem Artikel wird beschrieben

OpenAI -Grundlagen (kurz erwähnt, keine Notwendigkeit zu erweitern)

Erfahren Sie mehr über die Verwendung der OpenAI -API.

starten Sie jetzt

Wie Lag funktioniert:

How to Improve RAG Performance: 5 Key Techniques with Examples

(Bild aus LamaNDex -Dokumentation)

Eine Lag -Pipeline umfasst drei Stufen: Indexierung, Abruf und Generation.

  • Indexierung: Daten (verschiedene Formate) werden gereinigt, in einfachen Text umgewandelt, in überschaubare Stücke begleitet und unter Verwendung eines Einbettungsmodells in numerische Vektoren (Einbettungen) umgewandelt. Diese Einbettungen und Stücke sind für eine effiziente Suche indexiert.

  • Abrufen: Benutzerabfragen werden unter Verwendung desselben Einbettungsmodells vektorisiert. Das System berechnet die Ähnlichkeitswerte zwischen dem Abfragebericht und den indizierten Chunk -Vektoren und ruft die obersten K -ähnlichen Stücke ab.

  • Erzeugung: Die Abfrage und abgerufene Stücke werden zur Antwortgenerierung in eine Eingabeaufforderung formatiert und dem LLM gespeist.

LAG -Einschränkungen:

Herausforderungen bestehen in jeder Phase:

  • Indexierung: Laute Daten führt zu nicht hilfreichen LLM -Antworten.
  • Abrufen: Das System ruft möglicherweise nicht immer relevante Teile ab.
  • Erzeugung: Auch bei gutem Abrufen könnte der LLM falsche Antworten halluzinieren.

Verbesserung der Lappenleistung:

Drei Schlüsselstrategien befassen sich mit diesen Einschränkungen: Chunking-, Wiederholungs- und Abfrage-Transformationen. Das Folgende zeigt diese mit Lamaindex und der OpenAI -API, um Fragen zu Wikipedia -Einträgen zu beantworten (Emma Stone, Ryan Gosling, La La Land).

Basislinien -Lappensystem:

Installieren Sie die erforderlichen Pakete:

!pip install llama-index openai wikipedia
Stellen Sie Ihre OpenAI -API -Schlüssel ein:

import os
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"
Wikipedia -Daten laden und den Index erstellen:

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)
Erstellen Sie eine Eingabeaufforderungsvorlage, um kontextbasierte Antworten zu gewährleisten:

from llama_index.core.prompts import PromptTemplate
template = (
    "We have provided context information below. \n"
    "---------------------\n"
    "{context_str}"
    "\n---------------------\n"
    "Given this information, please answer the question: {query_str}\n"
    "Don't give an answer unless it is supported by the context above.\n"
)
qa_template = PromptTemplate(template)
(Die anfänglichen Abfragen und unterdurchschnittlichen Antworten werden für die Kürze weggelassen. Der Fokus liegt auf Verbesserungsstrategien.)

Verbesserung durch das Knacken:

Einstellen

und chunk_size in chunk_overlap, um das Abrufen zu optimieren. service_context_gpt3

Verbesserung durch Wiederholung:

(Code -Beispiele für FlagembedingdingReranker und RankGpTerank werden aus der Kürze weggelassen, aber die Beschreibungen bleiben bestehen)

  • FlagembeddingReranker: verwendet ein Umarmungs-Face-Neuranging-Modell (z. B. BAAI/bge-reranker-base), um die Relevanz der Chunk zu verbessern. Erfordert ein umarmendes Gesichtszugang.

  • rankgpTrerank: verwendet ein LLM (z. B. gpt-3.5-turbo-0125), um abgerufene Brocken auf der Grundlage des semantischen Verständnisses erneut zu rangieren.

Verbesserung mit Abfrage -Transformationen:

(Codebeispiele für Hyde- und Multi-Step-Abfrage-Transformationen werden für die Kürze weggelassen, aber die Beschreibungen bleiben erhalten)

  • Hyde (hypothetische Dokumenteinbettung): erzeugt eine hypothetische Antwort, erstellt Einbettung sowohl für die Abfrage als auch für die hypothetische Antwort und sendet Dokumente,

  • Multi-Step-Abfrage-Transformationen: zerlegt komplexe Abfragen in einfachere Unter-Abfragen für eine effektivere Verarbeitung.

Schlussfolgerung:

Dieser Artikel zeigte verschiedene Techniken zur Verbesserung der Lagleistung. Der optimale Ansatz hängt von der spezifischen Anwendung und den gewünschten Ergebnissen ab. Weitere Untersuchungen des Lappen finden Sie in [Link zu Code-Along-Videos hier].

Das obige ist der detaillierte Inhalt vonSo verbessern Sie die Lagleistung: 5 Schlüsseltechniken mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn