Maison > Périphériques technologiques > IA > Comment améliorer les performances des chiffons: 5 techniques clés avec des exemples

Comment améliorer les performances des chiffons: 5 techniques clés avec des exemples

Joseph Gordon-Levitt
Libérer: 2025-03-07 09:22:09
original
933 Les gens l'ont consulté

La génération augmentée (RAG) de la récupération améliore considérablement la précision et la fiabilité du modèle de langue grande (LLM) en incorporant des données externes. Cela contextualise les réponses et permet des mises à jour sans recyclage. Cependant, le chiffon n'est pas universellement efficace. Cet article détaille la construction de pipelines de chiffons robustes, explore les limitations et propose des solutions.

Openai Fundamentals (brève mention, pas besoin de développer)

En savoir plus sur l'utilisation de l'API OpenAI. Démarrez maintenant

Comment fonctionne le chiffon:

How to Improve RAG Performance: 5 Key Techniques with Examples

(image de la documentation Llamaindex)

Un pipeline de chiffon comprend trois étapes: indexation, récupération et génération.

  • Indexation: Les données (différents formats) sont nettoyées, converties en texte brut, en morceaux en morceaux gérables et transformés en vecteurs numériques (intégres) en utilisant un modèle d'incorporation. Ces intérêts et morceaux sont indexés pour une recherche efficace.

  • RETRAITE: Les requêtes utilisateur sont vectorisées à l'aide du même modèle d'intégration. Le système calcule les scores de similitude entre le vecteur de requête et les vecteurs de morceaux indexés, récupérant les k supérieurs les plus similaires.

  • Génération: La requête et les morceaux récupérés sont formatés en une invite et alimentés au LLM pour la génération de réponses.

Limitations de chiffon:

Les défis existent à chaque étape:

  • Indexation: Les données bruyantes conduisent à des réponses LLM inutiles.
  • RETRAITE: Le système peut ne pas toujours récupérer des morceaux pertinents.
  • Génération: Même avec une bonne récupération, le LLM pourrait halluciner des réponses incorrectes.

Améliorer les performances des chiffons:

Trois stratégies clés abordent ces limites: le cordage, le reconstitution et les transformations de requête. Ce qui suit démontre ces derniers à l'aide de Llamaindex et de l'API OpenAI pour répondre aux questions sur les entrées de Wikipedia (Emma Stone, Ryan Gosling, La La Land).

Système de chiffon de base:

Installez les packages nécessaires:

!pip install llama-index openai wikipedia
Copier après la connexion

Définissez votre clé API OpenAI:

import os
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"
Copier après la connexion

Chargez les données Wikipedia et créez l'index:

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)
Copier après la connexion

Créez un modèle d'invite pour garantir les réponses contextuelles:

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)
Copier après la connexion

(Les requêtes initiales et les réponses sous-filiales sont omises pour la concision. L'accent est mis sur les stratégies d'amélioration.)

Amélioration avec le bunking:

ajuster chunk_size et chunk_overlap dans service_context_gpt3 pour optimiser la récupération.

Amélioration avec le reconstitution:

(Des exemples de code pour FlakeMeddingReranker et RankGpTreRank sont omis pour la concision, mais les descriptions demeurent)

  • FlakeMeddingReranker: utilise un modèle de rediffusion de visage étreint (par exemple, BAAI/bge-reranker-base) pour améliorer la pertinence du morceau. Nécessite un jeton d'accès au visage étreint.

  • RANKGPTRERANK: utilise un LLM (par exemple, gpt-3.5-turbo-0125) pour ré-classement des morceaux basés sur la compréhension sémantique.

Amélioration avec les transformations de requête:

(des exemples de code pour les transformations de requête Hyde et en plusieurs étapes sont omis pour la concision, mais les descriptions demeurent)

  • Hyde (Hypothétique Document Embeddings): génère une réponse hypothétique, crée des incorporations pour la requête et la réponse hypothétique, et récupére les documents les plus proches de ces intérêts.

  • Transformations de requête en plusieurs étapes: décompose les requêtes complexes en sous-questions plus simples pour un traitement plus efficace.

Conclusion:

Cet article a présenté plusieurs techniques pour améliorer les performances des chiffons. L'approche optimale dépend de l'application spécifique et des résultats souhaités. Une exploration plus approfondie de RAG peut être trouvée dans [Lien vers des vidéos de code-along ici].

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal