Heim >Technologie-Peripheriegeräte >KI >So verbessern Sie die Lagleistung: 5 Schlüsseltechniken mit Beispielen
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.Wie Lag funktioniert:
(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:
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 wikipediaStellen 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!