通过合并外部数据,检索增强发电(RAG)可显着增强大语言模型(LLM)的准确性和可靠性。这是将答案的上下文化,并允许更新而无需再培训。 但是,抹布并不是普遍有效的。本文详细介绍了构建强大的抹布管道,探索限制并提供解决方案。
OpenAi基本原理(简短提及,不需要扩展)> >了解有关使用OpenAI API的更多信息。
>现在开始>抹布的工作方式:
(llamaindex文档的图像)
> 抹布管道包括三个阶段:索引,检索和一代。
> 使用相同的嵌入模型对用户查询进行矢量进行
生成:
抹布的限制:
索引:
嘈杂的数据导致无用的LLM响应。 检索:安装必要的软件包:
设置您的OpenAI API密钥:
>加载wikipedia数据并构建索引:
创建一个提示模板,以确保基于上下文的答案:
!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)调整
>和
infrom 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)优化检索。
>
通过重新排名进行改进:
(flagembeddingreranker和rankgptrerank的代码示例省略了,但描述仍然存在)
>使用拥抱的脸部重新排行模型(例如,)来提高相关性。 需要一个拥抱的脸部访问令牌。
BAAI/bge-reranker-base
使用llm(例如,)基于语义理解重新排列块。
gpt-3.5-turbo-0125
通过查询转换:
> (HYDE和多步查询转换的代码示例是为了简短的,但仍保留了描述)
hyde(假设文件嵌入):
多步查询转换:将复杂的查询分解为更简单的子查询,以进行更有效的处理。
结论:
以上是如何改善抹布性能:5个与示例的关键技术的详细内容。更多信息请关注PHP中文网其他相关文章!