RAG技术通过检索外部知识库增强大模型回答能力,解决模型知识时限和空间局限导致的幻觉问题。分为检索(问题向量化与知识库匹配)和生成(结合相关知识提示大模型)两阶段。相比微调,RAG成本更低且更新便捷。实现包括数据准备、索引构建、检索和生成,可通过dify等平台或langchain等框架编码实现。未来将向多模态检索和结合agent架构发展。
前言
大模型诞生之初,伴随而来的就是和AI聊天对话,但是要可以解决实际工作问题,就得用到RAG,也就是目前大模型应用普及率最高的知识问答场景。今天就讲下RAG相关的内容。
RAG的概念与背景
RAG即增强检索生成,大模型就可以生成为啥还需要增强检索增强?
我们举一个很直观的例子,你问大模型你们公司的管理制度,他知道吗?他不知道,那么就需要用到RAG,也就是你问了一个公司制度相关的问题,不是直接调用大模型回答,而且先去公司知识库检索相关内容,再把这个检索内容作为参考加上提问,让大模型参考着回答问题。
RAG的过程
RAG分为检索、生成两个阶段
1、在线检索,对用户输入进行向量化,然后比较用户输入的向量与知识库向量,计算语义相似性;同时也可以结合关键词检索,尽可能扩大召回率
2、在线生成,将召回的相关知识+用户提问,利用提示词工程调用大模型,最终输出问题的答案
说明
1)当然RAG离不开离线知识库构建,将文档切片、向量化,存储到向量数据库,文本内容也会做存储,同时标签、摘要、文件名这些元数据也可以存储,丰富检索维度。
2)向量化是个啥?简单理解就是通过向量化对文本内容做一个编码处理,这样可以方便的比较文本之间的语义相似度,也就是可以把和用户问题相关的文本内容给检索出来。
为什么需要RAG?
1、大模型的知识是有时间限度的(模型截止训练时间),也是有空间限度的(有些专业领域知识模型是没有的),这些缺失的知识,就会导致模型幻觉。这个时候,就需要借助私有知识来弥补大模型知识的不足
2、通过大模型微调也可以实现类似效果,但是微调成本很高,当基座大模型更新有更新或者私有知识有更新的情况,又面临再次微调的问题,而RAG可以随时更新知识内容
RAG的改进
由于生成阶段的输出,依赖检索阶段的结果,因此对于检索前后的优化,就是RAG优化的重点。
1、在检索前,对问题进行改写,检索后进行重排序(保证最相关的结果排最前面)
2、Agentic RAG,将RAG过程模块化,可以灵活组合,增加意图路由、问题的扩写、拆分,上下文记忆、多路召回等,复杂度更高
RAG的挑战
1、难于评估,一个是召回率,一个是生成质量
2、未来方向,目前主要是文本检索,后续还会涉及多模态检索。以及结合agent架构的RAG,比如可以在生成完成后,自我评价结果,根据情况进行改进。
RAG的实现
RAG的基础实现过程
1、数据准备与清洗,对word、pdf等文档进行解析,并选择的合适的切片策略,尽量避免不同分块语义的断裂 2、索引构建,将分块后的文本调用嵌入模型(embedding)生成向量,存入向量库,可以关联元数据(页码、作者、主题等信息,方便后续引用、多维护检索) 3、检索,最基本的是向量检索,同时也可以进行关键词检索,从而实现混合检索,检索之后还可以增加重排序 4、生成,基于提示词模板,让大模型基于参考文档、用户问题,回答用户问题,需要强调“依据参考文档无法回答,则回复不知道”,避免模型幻觉问题
RAG具体实现方式
1、dify、豆包、fastgpt、毕昇这些智能体平台,直接创建知识库,进行知识问答
2、编码实现,基于langchain、LLamaIndex等AI开发框架
langchain是一个全面的AI应用开发框架,相比较而言LLamaIndex主要是用于RAG应用开发。这里我们举一个langchain实现简单RAG过程的代码案例。
import os# hugging face镜像设置,如果国内环境无法使用启用该设置os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"from dotenv import load_dotenvfrom langchain_community.document_loaders import UnstructuredMarkdownLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_huggingface import HuggingFaceEmbeddingsfrom langchain_core.vectorstores import InMemoryVectorStorefrom langchain_core.prompts import ChatPromptTemplatefrom langchain_deepseek import ChatDeepSeekfrom langchain_openai import ChatOpenAIload_dotenv()markdown_path = "test.md"# 加载本地markdown文件loader = UnstructuredMarkdownLoader(markdown_path)docs = loader.load()print("load ok")# 文本分块text_splitter = RecursiveCharacterTextSplitter(chunk_size=512, chunk_overlap=100)chunks = text_splitter.split_documents(docs)print("split ok")# 中文嵌入模型embeddings = HuggingFaceEmbeddings( model_name="BAAI/bge-small-zh-v1.5", model_kwargs={"device": "cpu"}, encode_kwargs={"normalize_embeddings": True},)print("embedding ok")# 构建向量存储vectorstore = InMemoryVectorStore(embeddings)vectorstore.add_documents(chunks)print("add doc ok")# 提示词模板prompt = ChatPromptTemplate.from_template( """请根据下面提供的上下文信息来回答问题。请确保你的回答完全基于这些上下文。如果上下文中没有足够的信息来回答问题,请直接告知:“抱歉,我无法根据提供的上下文找到相关信息来回答此问题。”上下文:{context}问题: {question}回答:""")# 配置大语言模型llm = ChatOpenAI( # model="deepseek-chat", model="qwen3-max-2025-09-23", temperature=0.7, max_tokens=4096, api_key=os.getenv("DASHSCOPE_API_KEY"), base_url=os.getenv("DASHSCOPE_BASE_URL"),)# 用户查询question = "rag的过程是什么?"# 在向量存储中查询相关文档retrieved_docs = vectorstore.similarity_search(question, k=3)docs_content = "\n\n".join(doc.page_content for doc in retrieved_docs)answer = llm.invoke(prompt.format(question=question, context=docs_content))print(answer.content)通过以上代码,可以看到RAG的几个主要过程:
1)文档加载
2)文本分块
3)分块向量化
4)写入数据库
5)内容检索
6)利用提示词模板,调用大模型,生成回复
如上代码只是示例,真实场景中,知识库构建和问答的分开的。知识库会提前构建好,然后就可以随时问答,而不需要每次问答都需要文档加载分块向量化入库等操作。
AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。
掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2025最新大模型全套学习资源》,包括2025最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!
这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】