
1.文档阅读
RAG系统实战课 - 极客时间
使用LLM实现自然语言的SQL查询代理_llm sql-CSDN博客
https://platform.openai.com/docs/guides/function-calling?api-mode=responses //OpenAI官方 tool calling的获取天气demo;
认证鉴权 - ModelBuilder //百度文心一言申请key
LangSmith -- langChain网站
提示工程指南 | Prompt Engineering Guide
极客时间文档
AI问答
2.整理输出
2.1 是什么
RAG (Retrieval augmented Generation) 检索增强生成;
RAG 的基本概念
RAG(Retrieval-Augmented Generation)是一种结合检索与生成的混合模型框架,旨在通过外部知识库增强生成式模型(如大语言模型)的准确性和事实性。
传统生成模型依赖预训练参数中的知识,可能导致幻觉或过时信息;
RAG 通过实时检索相关文档片段,为生成过程提供动态上下文支持。
核心组件
- 检索模块:
使用稠密检索(如DPR)或稀疏检索(如BM25)从外部知识库(如维基百科、专业数据库)中提取与输入相关的文档片段。检索通常基于向量相似度或关键词匹配。
- 生成模块:
将检索到的文档与用户输入拼接,输入生成模型(如GPT、T5),生成最终回答。模型会融合检索内容与自身参数知识。
技术优势
- 动态知识更新:无需重新训练模型,通过更新检索库即可获取最新信息。
- 可解释性:生成的答案可追溯至检索到的文档片段,便于验证可信度。
- 减少幻觉:依赖外部证据降低模型虚构内容的概率。
应用场景
- 开放域问答(如ChatGPT插件)
- 医疗、法律等专业领域咨询
- 多语言翻译增强(结合术语库)
典型实现流程
输入问题 → 检索相关文档 → 拼接文档与问题 → 生成模型输出答案
代码示例(伪代码)
from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", index_name="exact")
model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", retriever=retriever)
input_text = "What is RAG?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids
outputs = model.generate(input_ids)
answer = tokenizer.decode(outputs[0], skip_special_tokens=True)
挑战与改进方向
- 检索效率:大规模知识库需优化索引和近似搜索(如FAISS)。
- 噪声过滤:检索结果可能包含无关片段,需设计重排序机制。
- 端到端训练:联合优化检索器与生成器(如RAG-Token模型)。
2.2 为什么需要「应用场景」
RAG(Retrieval-Augmented Generation)结合了检索与生成的能力,其核心价值在于根据具体场景动态调整信息检索范围和生成内容。应用场景的明确性直接影响模型的性能和实用性。
提高信息检索的精准性
不同场景对信息的需求差异显著。例如医疗咨询需要权威医学文献,而客服对话依赖产品手册。明确场景可缩小检索范围,避免无关信息干扰生成结果。
优化生成内容的适应性
生成的文本需符合场景的语调和格式。法律文件要求严谨措辞,社交媒体需要简洁活泼。场景定义帮助模型调整语言风格和内容深度。
平衡效率与效果
开放域问答可能需要海量数据检索,而垂直领域(如金融报告生成)只需特定数据库。场景划分减少计算资源浪费,提升响应速度。
典型应用场景示例
专业领域问答
医疗、法律等场景需检索专业数据库,确保生成内容准确性。例如诊断建议必须基于最新医学指南而非通用知识。
个性化推荐系统
电商场景中,RAG需结合用户历史行为与商品库实时数据,生成定制化推荐理由,而非通用产品描述。
动态知识更新
新闻摘要场景要求模型快速检索最新事件,生成时避免引用过期信息。场景的时间敏感性决定了检索策略。
2.3 什么时候出现「历史发展」
RAG的起源与早期发展
RAG(Retrieval-Augmented Generation)的概念最早源于2020年由Meta(原Facebook)AI团队提出。
其核心思想是通过结合信息检索(Retrieval)与生成模型(Generation),解决传统纯生成模型(如GPT)在知识更新滞后、事实错误(幻觉)等问题。
早期RAG模型基于Transformer架构,利用预训练语言模型(如BERT、GPT)与外部知识库的动态交互。
关键技术突破
2020年发布的原始RAG模型采用两阶段流程:
- 检索阶段:使用稠密检索(Dense Retrieval)技术,将用户查询编码为向量,从大规模知识库(如Wikipedia)中检索相关文档片段。
- 生成阶段:将检索到的文档与查询拼接,输入生成模型(如BART)生成最终回答。
这一架构显著提升了生成内容的准确性和可解释性,成为后续研究的基础。
迭代与优化
2021-2022年,RAG技术在多方向演进:
- 检索效率优化:引入近似最近邻搜索(ANN)技术如FAISS,加速大规模向量检索。
- 端到端训练:联合训练检索器与生成器,避免两阶段模型的误差累积。
- 多模态扩展:将检索范围从文本扩展到图像、视频等(如CM3模型)。
当前应用与挑战
2023年后,RAG被广泛应用于问答系统、客服机器人等领域。挑战包括:
- 检索质量依赖:检索结果偏差直接影响生成效果。
- 实时性要求:动态知识库的更新与检索延迟需平衡。
RAG的发展体现了AI领域对“知识动态性”与“生成可控性”的持续探索。
2.4 怎么实践
理解RAG的基本概念
RAG(Retrieval-Augmented Generation)结合了信息检索和文本生成的能力,通过从外部知识库检索相关文档,增强生成模型的输出质量。这种技术特别适合需要准确性和实时信息的场景。
选择合适的RAG工具
根据具体需求选择合适的RAG工具或框架。例如:
- LangChain:提供灵活的RAG实现,支持多种数据源和语言模型。
- LlamaIndex:专注于高效检索和文档索引,适合结构化数据。
- Hugging Face Transformers:内置RAG模型,可直接调用预训练版本。
构建知识库
知识库是RAG的核心组成部分,需确保其覆盖相关领域且数据质量高:
- 从企业内部文档、行业报告或公开数据集中收集信息。
- 对文档进行预处理,包括分块、去噪和向量化。
- 使用向量数据库(如FAISS、Pinecone)存储嵌入向量,加速检索。
集成检索与生成模块
将检索模块与生成模型无缝集成:
- 在用户输入查询时,先从知识库检索最相关的文档片段。
- 将检索结果与原始查询拼接,输入生成模型(如GPT-3.5、GPT-4)。
- 生成模型基于检索内容生成更准确的回答。
优化检索策略
提高检索效率和质量:
- 调整分块大小,平衡信息完整性与检索速度。
- 使用混合检索(如关键词+向量搜索)提升召回率。
- 对检索结果进行重排序,优先选择相关性高的文档。
处理生成结果
确保生成内容符合预期:
- 设置后处理规则,过滤无关或低质量输出。
- 添加引用机制,标明生成内容的数据来源。
- 通过人工审核或自动化指标(如ROUGE、BLEU)评估效果。
部署与迭代
将RAG系统部署到实际工作流程中:
- 通过API或插件形式集成到现有工具(如Slack、Teams)。
- 收集用户反馈,持续优化知识库和模型参数。
- 定期更新知识库,保证信息的时效性。
典型应用场景
- 客户支持:快速回答技术问题,减少人工介入。
- 市场分析:生成基于最新数据的行业报告摘要。
- 内部知识管理:帮助员工查找公司政策或项目文档。
- 内容创作:辅助撰写需要引用外部资料的文本。
注意事项
- 确保知识库的隐私和合规性,避免敏感数据泄露。
- 监控生成内容的准确性,防止幻觉(hallucination)问题。
- 平衡成本与性能,检索和生成可能消耗较多计算资源。
langChain

后续补充
... |
所有评论(0)