通过合并信息检索,检索增强的生成(RAG)赋予大型语言模型(LLMS)。这使LLM可以访问外部知识库,从而产生更准确,最新和上下文适当的响应。高级抹布技术矫正抹布(crag),通过引入自我反射和自我评估机制来进一步提高准确性。
本文涵盖:
作为数据科学博客马拉松的一部分出版。
目录
克拉格的基本机制
CRAG通过将Web搜索集成到其检索和生成过程中来增强LLM输出的可靠性(见图1)。
文件检索:
相关性评估:
评估者评估检索的文件相关性。如果超过70%的文件被视为无关紧要,则启动纠正措施;否则,响应产生将进行。
Web搜索集成:
如果文档相关性不足,则CRAG使用Web搜索:
响应生成:
CRAG从初始检索和Web搜索中综合数据,以创建一个连贯,准确的响应。
岩壁与传统抹布
与传统抹布不同,Crag会积极验证和完善检索到的信息,这与传统的抹布不同,这依赖于未经验证的文档检索。 CRAG经常合并实时的Web搜索,从而提供对最新信息的访问,这与传统抹布对静态知识库的依赖不同。这使得crag非常适合需要高精度和实时数据集成的应用程序。
实用的crag实施
本节详细介绍了使用Python,Langchain和Tavily的CRAG实施。
步骤1:库安装
安装必要的库:
! !
步骤2:API密钥配置
设置您的API键:
导入操作系统 os.environ [“ tavily_api_key”] =“” os.environ [“ openai_api_key”] =“”
步骤3:库导入
导入所需的库(省略了简短的代码,但类似于原始示例)。
步骤4:记录分块和猎犬的创建
(对于简短而省略了代码,但类似于原始示例,使用pypdfloader,递归cearsivecharactertextsplitter,openaiembeddings和Chroma)。
步骤5:抹布链设置
(对于简短而省略了代码,但类似于原始示例,使用hub.pull("rlm/rag-prompt")
和ChatOpenAI
)。
步骤6:评估器设置
(为简洁而省略了代码,但类似于原始示例,定义Evaluator
类并使用ChatOpenAI
进行评估)。
步骤7:查询重写器设置
(为简洁而省略了代码,但类似于原始示例,使用ChatOpenAI
进行查询重写)。
步骤8:Web搜索设置
来自langchain_community.tools.tavily_search导入tavilySearchResults web_search_tool = tavilySearchResults(k = 3)
步骤9-12:Langgraph Workflow设置和执行
(为简短而省略了代码,但在概念上与原始示例相似,定义GraphState
,函数节点( retrieve
, generate
, evaluate_documents
, transform_query
, web_search
),并使用StateGraph
进行连接。)最终输出和与传统抹布的比较也非常相似。
克拉格的挑战
CRAG的有效性在很大程度上取决于评估者的准确性。弱评估者可能会引入错误。可伸缩性和适应性也是关注点,需要持续更新和培训。 Web搜索集成引入了偏见或不可靠的信息的风险,需要强大的过滤机制。
结论
CRAG显着提高了LLM输出精度和可靠性。其评估和补充使用实时Web数据检索信息的能力使其对于要求高精度和最新信息的应用程序很有价值。但是,持续改进对于解决与评估者准确性和Web数据可靠性相关的挑战至关重要。
关键要点(类似于原始的,但为简洁而改写)
经常询问的问题(类似于原始问题,但为简洁而改写)
(注意:图像保持不变,并且如原始输入所示。)
以上是矫正抹布(crag)行动的详细内容。更多信息请关注PHP中文网其他相关文章!