LLM应用架构之检索增强(RAG,retrieval-augmented generation)的缘起与架构介绍

LLM应用架构之检索增强(RAG)的缘起与架构介绍

原创 ully AI工程化 2023-08-21 21:53

收录于合集

#领域技术13个

#LLM应用架构3个

动手点关注

图片

本文是LLM应用架构系列的第一篇,将介绍LLM应用开发里最常见的一种架构模式RAG( Retrieval Augmented Generation),它被广泛应用于知识问答,智能助手等常见LLM应用场景中。在后续文章中还将介绍该模式落地实际过程中的一些常见问题及改进思路,欢迎关注“AI工程化”,持续为大家更新。

当前,随着大模型应用落地需求不断增加,越来越多的人在寻找搭建LLM应用的最佳模式,而这种模式就如同当年web开发中MVC架构一样,能够很好地指导开发者正确高效地开发应用。目前,在LLM开发领域,有RAG

### 如何实现检索增强生成(Retrieval-Augmented Generation, RAG)在知识密集型自然语言处理任务中的应用 #### 设计架构 为了应对大型语言模型(LLM)在处理特定领域或知识密集型任务时遇到的挑战,如幻觉(hallucination)、过时的知识等问题[^1],可以采用RAG框架来提升性能。该方法通过引入外部权威知识库,在生成回复前先进行信息检索并融合这些高质量的信息源。 #### 数据准备 构建一个适合目标应用场景的数据集非常重要。对于知识密集型的任务来说,这通常意味着收集来自可靠资源的事实性陈述或其他形式的相关资料作为补充材料。例如医学文献数据库PubMed可用于医疗咨询类问题解答;法律条文汇编则适用于法规解释场景。 #### 模型选择配置 选用预训练好的大规模语言模型作为基础组件,并对其进行微调以适应具体业务需求。同时还需要设置专门用于执行文档检索操作的服务端接口或者API客户端工具包。当接收到用户输入后,系统会自动向指定搜索引擎发起请求获取最匹配的结果片段列表。 #### 集成流程说明 整个工作流大致分为三个阶段: - **查询解析**:分析用户的原始提问意图,提取其中的关键概念词组; - **证据搜集**:基于上述关键词利用预先定义好连接至专业知识库(比如维基百科页面链接集合) 的 API 接口抓取若干篇目摘要内容; - **答案合成**:最后一步就是把前面两步得到的信息传递给 LLM 进行最终的回答创作。此时不仅要考虑如何合理安排句子顺序使得表达连贯流畅,还要注意避免直接复制粘贴原文本而造成版权侵权风险。 ```python import requests from transformers import pipeline def rag_pipeline(question): # Query Parsing Stage key_terms = extract_keywords(question) # Evidence Collection Stage retrieved_docs = [] for term in key_terms: response = requests.get(f"https://api.example.com/search?q={term}") docs = response.json()['results'] retrieved_docs.extend(docs[:3]) # Limit to top 3 results per keyword context = "\n".join([doc['snippet'] for doc in retrieved_docs]) # Answer Synthesis Stage using pre-answering') result = qa_model({ 'context': context, 'question': question }) return result['answer'] # Example usage print(rag_pipeline("What are the symptoms of diabetes?")) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强化学习曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值