向量计算-第08章-大模型时代的基石-RAG技术_第1页
向量计算-第08章-大模型时代的基石-RAG技术_第2页
向量计算-第08章-大模型时代的基石-RAG技术_第3页
向量计算-第08章-大模型时代的基石-RAG技术_第4页
向量计算-第08章-大模型时代的基石-RAG技术_第5页
已阅读5页,还剩35页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

清华大学出版社《向量计算》配套课件·课堂讲义第8章大模型时代的基石:RAG技术换个角度学AI,打通任督二脉刘鹏著·清华大学出版社为大模型装上可随时更新的“外挂大脑”——向量计算驱动检索增强生成《向量计算》配套课件第8章大模型时代的基石:RAG技术第8章大模型时代的基石:RAG技术2/40教学目标1理解大模型幻觉与知识截止的成因及传统方案的局限2掌握RAG标准架构:离线索引与在线查询两大阶段3熟练运用文档切片策略、混合检索与重排序的关键技术4掌握RAG系统的评估指标与关键参数调优方法5了解对话式、多模态与Agent驱动的RAG进阶应用重点与难点1重点:RAG双阶段流程与向量检索在其中的核心作用2难点:切片粒度的权衡——语义完整性与检索精度的平衡3难点:混合检索的分数融合与两阶段重排序的原理与选型《向量计算》配套课件第8章大模型时代的基石:RAG技术第8章大模型时代的基石:RAG技术3/40本章内容导航8.1什么是大模型幻觉与知识截止8.2RAG的标准架构8.3文档切片与混合检索策略8.4RAG的进阶应用8.5本章小结《向量计算》配套课件·第8章大模型时代的基石:RAG技术8.1什么是大模型幻觉与知识截止幻觉的表现与成因·知识截止·传统方案局限·RAG核心理念与价值《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术5/40大模型幻觉:一本正经地胡说八道●幻觉:生成内容看似合理流畅,却与事实不符或完全编造●典型表现:事实性错误·逻辑矛盾·虚构引用·过度自信–好比博览群书但想象力过度的学生:不会就“编”●危害集中在严肃场景:医疗误诊建议·金融编造财报–法律引用不存在的条文·学术虚构实验结果图8-1大模型幻觉问题《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术6/40幻觉的根源:大模型是“概率预测机器”●本质:给定前文,预测下一个最可能的词●遇到训练数据罕见的内容,就按语言模式“脑补”●例问:“爱因斯坦2024年获诺贝尔奖了吗?”–答:“是的,获物理学奖,表彰相对论研究……”●语法正确✓逻辑合理✓事实全错✗(1955年已去世)图8-2产生幻觉的原因《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术7/40知识截止:大模型的记忆局限●知识截止:训练数据有明确时间边界,此后事件一概不知–GPT-3.5:2021年9月·GPT-4:2023年12月–Claude3.5Sonnet:2024年4月·国产模型各不相同●新法案、新芯片、上周新闻:答“不知道”,更糟是“脑补”●重训代价惊人:数千张GPU数周、数百万至数千万美元●结论:知识更新不能靠重训——这正是RAG的用武之地《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术8/40RAG之前:三种传统方案的局限●PromptEngineering:提问时直接粘贴背景知识–受2048~4096tokens限制,无法处理大规模知识库●Fine-tuning:用领域数据持续训练,把知识“教”进模型–成本高·更新慢·可能损伤通用能力·知识相互混淆●Search-then-Generate:传统搜索引擎检索后再生成–关键词匹配语义理解差·噪声大·对话上下文断裂《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术9/40RAG核心思想:先检索,再生成●生成前先从外部知识库检索相关真实信息●把检索结果作为“上下文”交给大模型参考●兼具向量检索的语义理解与LLM的生成能力–实时可更新·成本低·有据可依可追溯来源图8-3使用RAG与传统方法的区别《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术10/40RAG与传统解决方案的对比(表8-1)方面RAG传统搜索微调语义理解强(向量相似度)弱(关键词匹配)N/A知识更新实时更新实时更新需要重新训练成本中低高准确性高(基于真实数据)低(噪音大)中(可能忘记)可解释性强(可追溯来源)弱弱《向量计算》配套课件8.1什么是大模型幻觉与知识截止第8章大模型时代的基石:RAG技术11/40RAG架构:给大模型装上“外挂大脑”●好比配上“资料室”与“图书管理员”(检索器)●检索器:Query向量化→搜向量库→返回Top-K片段●生成器:Query+检索上下文→LLM整合→有依据答案●流程:问题→向量化→检索→Top-K文档→提示词→生成→答案–例:检索到5段文档后提示“请基于以下信息回答……”图8-4RAG架构《向量计算》配套课件·第8章大模型时代的基石:RAG技术8.2RAG的标准架构离线索引·在线查询·RAG与普通问答对比·参数调优·评估指标《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术13/40系统总览:两个阶段、十个步骤●离线索引:把原始文档加工成可检索的向量索引–①文档加载:PyPDFLoader等,支持txt/pdf/docx/网页/代码–②文档切片③向量化(Embedding)④存入向量数据库●在线查询:实时处理用户问题的“运行阶段”–①接收查询②查询向量化③向量检索④构建提示词–⑤大模型生成⑥返回答案《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术14/40离线索引②:文档切片(LangChain)//pythonfromlangchain.text_splitterimportRecursiveCharacterTextSplitter#创建切片器:每个片段1000字符,重叠200字符text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000,chunk_overlap=200,length_function=len)#执行切片chunks=text_splitter.split_documents(documents)注:每个片段是独立索引单元;切片是长文档进入向量空间的前提《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术15/40为什么要切片?三种策略一览●向量相似度在较短文本上精度更高●控制上下文长度,避免超出模型限制●细粒度检索:命中文档中具体小节而非整篇–固定长度:简单,但可能切断语义–语义切片:保完整,但片段长短不一–滑动窗口:重叠防切断,代价是索引变大图8-5文档切片《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术16/40离线索引③:主流向量化模型对比(表8-2)模型维度特点适用场景OpenAItext-embedding-3-small1536性价比高通用场景OpenAItext-embedding-3-large3072精度高对精度要求高BGE-large-zh1024中文优化中文文本jina-embeddings-v2768轻量快速实时检索《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术17/40离线索引④:向量与元数据入库●“量子计算芯片采用超导…”→[0.12,-0.34,…](768维)●Chroma.from_documents(chunks,embeddings)一行建库–Milvus性能强开源百万级+·Pinecone云原生商业–Chroma轻量十万级·Weaviate模块化·FAISS千万级+●向量连同元数据(来源、页码)存储,便于追溯图8-6将文本向量化并存储到向量数据库《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术18/40在线查询阶段:六步实时应答●查询经embeddings.embed_query转化为向量●与全部文档向量算余弦相似度、降序排序–similarity_search返回Top-K(K通常取3~10)●提示词模板:【参考信息】{context}+【用户问题】{question}–加约束:“不要编造信息,信息不足请明确说明”●LLM(如gpt-4-turbo,temperature=0)生成最终答案图8-7RAG的查询阶段《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术19/40同一问题看效果:有无RAG的天壤之别●问:“2024年我司量子芯片有何技术突破?”–无RAG:泛泛而谈通用知识,甚至基于旧知识编造–有RAG:先命中产品手册第3章·白皮书·新闻稿●答:72个量子比特·相干时间+30%·功耗-40%–并标注来源(产品手册V3.0等),完全可追溯●RAG优势:具体·准确·有据可依·实用价值高图8-8完整的RAG工作流程《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术20/40关键参数调优:五个旋钮(8.2.3)●ChunkSize:256~512简短问答·1024~2048长文档理解–ChunkOverlap:取切片大小的20%~30%(如1000/200)●Top-K:3~5简单问题·5~10复杂问题·10~20综合分析●相似度阈值:低于阈值不返回,如仅返回相似度>0.7–用similarity_search_with_score得分过滤实现●Embedding:中文选BGE/m3e·英文选OpenAI·实时选轻量《向量计算》配套课件8.2RAG的标准架构第8章大模型时代的基石:RAG技术21/40评估指标:衡量RAG系统的三把尺子(8.2.4)●检索质量:Precision@K·Recall@K·MRR(平均倒数排名)●生成质量:Faithfulness——答案是否基于检索、有无幻觉–AnswerRelevancy是否直接回答·Completeness是否完整●用户体验:响应时间(<3秒为佳)·可追溯性·自然度–书中伪代码:逐题检查faithfulness/relevancy/precision《向量计算》配套课件·第8章大模型时代的基石:RAG技术8.3文档切片与混合检索策略切片的艺术与最佳实践·混合检索·重排序·元数据过滤《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术23/408.3.1为什么切片是“一门艺术”●100页手册问“芯片功耗是多少?”最见功力–坏:整页→噪声多·整本→向量模糊·随机→切断“功耗:40W”●好:按段落成完整语义单元·含标题首句·保留重叠●四大策略:固定长度·递归·语义·结构化切片–选型(表8-6):技术文档结构化·新闻递归·代码按函数·对话按轮次《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术24/40策略2·递归切片:按优先级尝试分隔符//pythonfromlangchain.text_splitterimportRecursiveCharacterTextSplitter#递归切片,按优先级尝试不同分隔符text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000,chunk_overlap=200,separators=["\n\n","\n","。","!","?",";","",""])chunks=text_splitter.split_documents(documents)注:依次尝试段落(\n\n)→句子(\n)→标点→空格→字符强制切分,尽量保持语义完整《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术25/40策略3·语义切片:相似度骤降处开新块#伪代码示例defsemantic_chunking(text,embedding_model,threshold=0.7):sentences=split_into_sentences(text)chunks=[]current_chunk=[sentences[0]]forsentenceinsentences[1:]:#计算当前句子与chunk中最后一句的相似度similarity=cosine_similarity(embedding_model.encode(sentence),embedding_model.encode(current_chunk[-1]))ifsimilarity<threshold:#相似度低,开始新chunkchunks.append("".join(current_chunk))current_chunk=[sentence]else:#相似度高,加入当前chunkcurrent_chunk.append(sentence)chunks.append("".join(current_chunk))returnchunks注:语义完整、长度自适应,但计算量大;策略4结构化切片则按Markdown标题层级(#/##/###)切分并保留标题上下文《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术26/408.3.2切片最佳实践:四招●附元数据:source·page·chunk_id·title·timestamp●加摘要:让LLM为每切片写一句话总结,提升检索精度●父子切片:子切片短而准(500字)用于检索–命中后回取父切片(2000字)用于生成,上下文完整●多粒度:段落级/章节级/文档级三层切片共同入库《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术27/408.3.3为什么需要混合检索●问“GB200芯片型号是什么?”,纯向量易偏到“GPU”等泛泛结果●关键词检索(BM25):精确匹配专名,但不理解同义词●向量检索:懂“笔记本=笔记本电脑”,却可能混淆多义词●混合检索:语义理解+精确匹配,两者兼得●三种实现:分数融合·查询扩展·两阶段检索《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术28/40方法1·分数融合:加权求和Score=α×S_vector+(1−α)×S_keywordS_vector:向量检索得分(归一化后);S_keyword:BM25关键词得分(归一化后)α为向量权重,建议0.5~0.8(表8-7);关键词权重相应取0.2~0.5●两路各自top-10检索,归一化后加权融合、统一排序●查询扩展:LLM生成3~5个同义变体,分检后去重合并–如“量子计算芯片性能如何”→“量子芯片的技术指标”等《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术29/40方法3·两阶段检索:粗排+精排//pythondeftwo_stage_search(query,vectorstore):#第一阶段:向量检索,top-100stage1_results=vectorstore.similarity_search(query,k=100)#第二阶段:对候选结果进行交叉编码重排序fromsentence_transformersimportCrossEncoderreranker=CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')#为每个候选文档生成(query,document)对pairs=[[query,doc.content]fordocinstage1_results]#交叉编码评分scores=reranker.predict(pairs)#重新排序stage2_results=sorted(zip(stage1_results,scores),key=lambdax:x[1],reverse=True)[:10]return[docfordoc,scoreinstage2_results]注:重排序(8.3.4)即第二阶段思想:交叉编码器比单一向量更能刻画query-文档相关性《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术30/40不同检索方式的性能对比(表8-8,模拟数据)检索方式MRR@10NDCG@10响应时间向量检索0.720.6850ms关键词检索0.650.6220ms混合检索0.780.7480ms混合+重排序0.850.82150ms《向量计算》配套课件8.3文档切片与混合检索策略第8章大模型时代的基石:RAG技术31/408.3.5元数据过滤:按条件精准圈定检索范围//python#仅检索"芯片手册"中"2024年"之后更新的文档filtered_results=vectorstore.similarity_search(query="量子计算芯片",filter={"document_type":"产品手册","update_time":{"$gte":"2024-01-01"}},k=10)注:四类常见过滤:时间(最近N天)·来源(内部/权威)·类型(新闻/技术文档/FAQ)·标签(已验证/官方发布)《向量计算》配套课件·第8章大模型时代的基石:RAG技术8.4RAG的进阶应用多轮对话·多模态·Agent驱动·系统监控与优化《向量计算》配套课件8.4RAG的进阶应用第8章大模型时代的基石:RAG技术33/408.4.1多轮对话:ConversationalRAG●三大挑战:积累检索信息·避免重复检索·处理指代省略●方案:ConversationalRetrievalChain+ConversationBufferMemory●①问题重述:“它的功耗是多少?”→“量子计算芯片的功耗?”●②基于重述后的独立问题再做检索增强●③记忆管理保存对话历史,支持长期记忆《向量计算》配套课件8.4RAG的进阶应用第8章大模型时代的基石:RAG技术34/40对话式RAG的代码要点(LangChain)//pythonfromlangchain.chainsimportConversationalRetrievalChainfromlangchain.memoryimportConversationBufferMemory#创建记忆组件memory=ConversationBufferMemory(memory_key="chat_history",return_messages=True)#创建对话式RAG链conversational_rag_chain=ConversationalRetrievalChain.from_llm(llm=llm,retriever=vectorstore.as_retriever(),memory=memory,condense_question_prompt=PromptTemplate.from_template("以下是历史对话和当前问题,请将当前问题重新表述成一个独立的完整问题。\n\n""历史对话:\n{chat_history}\n\n""当前问题:{question}\n\n""重新表述后的问题:"))注:condense_question_prompt负责把带指代的追问改写为完整独立问题,再交给检索器《向量计算》配套课件8.4RAG的进阶应用第8章大模型时代的基石:RAG技术35/408.4.2多模态RAG:让图像表格进入向量空间●加载:PyPDF+UnstructuredImage/ExcelLoader多源文档●多模态Embedding(如CLIP)把图文映射到统一向量空间●典型场景:图文问答·表格问答·音频问答●例:上传电路图问“这个组件是什么?”–流程:图像识别→向量检索技术文档→结合两者生成答案《向量计算》配套课件8.4RAG的进阶应用第8章大模型时代的基石:RAG技术36/408.4.3Agent驱动的RAG:检索成为一件“工具”●把similarity_search封装为Tool“知识库检索”●create_react_agent:LLM自主决定何时调用检索●ReAct循环:Thought→Action→ActionInput→Observation–例:“芯片发热严重”→Thought先检索→得到散热方案●从固定流水线到自主决策,支撑复杂多步任务《向量计算》配套课件8.4RAG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论