1,RAG是什么?
RAG(Retrieval-Augmented Generation),从字面意思来看,就是检索增强生成,这里断句可以为“检索增强”、“生成”。它是一个结合了检索和生成技术的人工智能模型。
本质是一种工程系统,结合了数据检索模块(如向量数据库)和数据生成模型。
检索的知识库内容:
文本 – 文档文字
图片 – OCR
视频 – 抽取视频字幕作为检索来源
检索 – 根据指定的知识库或者数据仓库去进行快速且精准地检索相关的信息;
生成 – 结合检索信息生成相关的结果内容;
RAG的作用:
1,碎片化知识的结构化分块,然后为每一块知识添加标签(知识块附加来源、时间戳、权限等级等上下文信息)
2,数据向量化;(转换成可以进行检索的格式内容)
3,根据本地知识进行数据查询、检索、信息组织;
句子拼接:用规则合并检索结果的片段(如“根据知识库:1. A;2. B;总结:A+B”)。
模板填空:预定义模板(如复习提纲模板),用检索内容填充占位符。
RAG检索的优点:快速、精准(相关性、可靠)、不依赖模型内部知识而是外部知识库;
RAG生成的优点:符合自身偏好和风格(知识库)、总结(生成)纲要、给出建议、去重等。
RAG本身没有生成功能,只有信息检索、信息组织、信息总结的功能。还有一些RAG系统概念中是包含大模型的,所以它是可以进行信息生成的:
应用:检索内容、提炼总结
备注:RAG是一个系统,并不是一个工具,所以RAG系统需要多个工具去组成,个人知识库的数据向量化+数据检索+数据生成
推荐的框架:LangChain、LlamaIndex
2,个人知识库的数据向量。
(1),收集知识;
(2),清洗数据(去重、打标签、分层);
(3),存储及向量化,便于RAG检索;
个人推荐工具Obsidian;
3,结合LLM的应用。
个人知识库结合LLM的核心流程:
1,数据存入个人知识库 → 2,RAG检索相关片段 → 3,问题+检索结果输入LLM生成答案
这里的LLM可以是云端API,也可以是本地部署的大模型;
具体流程:
数据层:
1,上传数据,个人文档(PDF、Word、Markdown)、网页存档、邮件、聊天记录、图片(需OCR识别)、音视频(需语音转文本)等;
2,数据处理,清洗与分段、格式化与标注、向量化存入向量数据库;
RAG检索
3, 用户提出问题;
4,RAG检索和生成;
生成阶段
5,将问题+RAG检索结果按预定格式组装成提示词发给大模型;
6,大模型输出,限制大模型,仅依赖检索内容生成答案;要求大模型标明引用来源;
案例:
1,学习助手:学生上传教材、论文、笔记,RAG辅助整理知识框架、生成复习提纲,大模型解答复杂问题。
2,写作辅助:作者调用过往作品库,告诉大模型保持风格一致性,或避免重复观点,输出写作文案。
3,项目管理:关联任务记录、会议纪要,大模型自动生成进度报告或待办提醒。
例如:
/** 请基于以下上下文回答问题: [检索到的文本片段1] [检索到的文本片段2] ... 问题:如何设计分布式系统的容错机制? /**
个人知识库结合大模型有什么作用?
1,多轮对话的上下文理解;
2,更好的理解用户的提问,然后进行复杂的查询;
3,可实现多文档的夸文档推理和比对;
4,可以将静态知识库与LLM的动态知识结合,然后进行问题的回答;
5,回答时可以不全本地知识的片面性,也就是所谓的“知识库数据+常识推理”;
6,LLM可以总结并生成摘要;
7,可通过LLM对本地知识进行智能标签构建;
8,LLM可对文档质量检测,知识库中内容的错误及不全面的内容进行检测;
9,通过自然语言进行多条件查询;
10,对查询结果可输出不同格式的文件,例如markdown、表格、图表等;
……
典型应用场景
1,技术文档系统:工程师用自然语言查询”2023版与2024版安全规范的差异点”,系统自动比对文档并生成对比报告
2,医疗知识库:结合患者病历和医学文献库,生成个性化治疗建议方案
3,法律知识系统:自动关联相关法条和判例,预测案件走向并提示风险点
4,企业知识中枢:自动生成季度知识运营报告,识别各部门知识孤岛并建议整合方案