资讯动态

Agent学习(二)

发布时间:2026/10/9 2:04:50 来源:尧图企业网站定制
大模型幻觉几种幻觉幻觉的根本原因在于transformer的原理基于文本之间的统计学相关性主要有两种幻觉自相矛盾结果和原文不一致可验证错误无中生有结果和原文无关无法验证真假原因1. 数据输入瑕疵 garbage in garbage out训练的原始信息存在矛盾虚假事实陈旧信息模型无法分辨2. 基于概率的本质当概率空间缺少正确信息时模型会在知识空白处虚构以满足输出需求3.推理策略的局限比如temperature top_p设置不合理会导致模型选中概率较低但错误率较高的词。减轻幻觉1. 输入层面通过数据清洗优化训练数据比年数据中的噪音比如文本的拼写或格式错误词语的用词不当句子的语法逻辑2. 模型层面2.1 增加反馈RLHF利用人类反馈进行强化学习对产生幻觉的行为“惩罚”对诚实回答“奖励”2.2 增加知识输入更多正确知识比如应用RAG外部知识。内部可以从原文中提取关键词等。2.3 增加约束prompt中详细描述对输出结果的约束2.4 改进模型在encoder-decoder的结构上进行改进如dual encoder在原有的encoder处理序列文本的基础上新增structured graph encoder处理新知识2.5 特定领域用专业数据训练和微调模型3. 输出层面对模型具有幻觉的成果验证和修改3.1 训练模型根据原文和有错误的生成结果还原出正确结果用含有幻觉的数据去训练3.2 上下文感知解码3.3 多模型交叉验证大模型可调参数这些参数都和模型输出的候选词的概率有关系1. temperature代表温度/随机性调整模型输出候选词的概率分布形状高数值 1.0 2.0概率分布更平滑低概率词被选中的机会增加幻觉概率增加低数值 0.0 0.5概率分布更锐利高概率词会被更稳定的选中特殊值0 几乎每次生成相同内容确定性最高2. top_p核采样从概率分布中截取核包含的词从高到低累加候选词的概率只在累积概率达到p的词汇集合中采样比固定选择前k个词更加灵活。比如p 0.9意味着从累积概率为90%的词中选择。3. top_k采样从最可能的k个词中选择下一个词RAGRetrieved Augmented Generation通过外接知识源为大模型提供额外知识核心目的是检索到和用户问题最相关的信息源最终将检索到的信息和用户问题一起给LLM生成最终的回答。RAG的整个流程可以简化为三个步骤第一步骤是输入的文档文字图像等等包括对这些输入需要做的预处理。第二步骤就是检索。第三步骤是输出RAG的输出就是检索到的源信息。围绕三个步骤每个步骤都有自己的处理方法和优化策略。让我们一起来看看吧~输入1. 数据加载非结构化文档转换为程序可以处理的结构化数据将不同格式的原始文档解析为可处理的纯文本解析过程中同时抽取文档来源页码作者等关键信息作为元数据文本和元数据最终合成统一的数据结构sample[data:xxxxxxx,dataSource:xxxxx, Page:x]工具doclingunstructured可以将非结构化的文本转化为结构化的元素比如titletableListItem等处理大量文档用elasticSearch混合搜索2.文本分块加载后的长篇文档被切分更小的chunk以便更精确的匹配到相应信息。为什么要做chunk1.嵌入式模型由输入长度上限 2. LLM根据检索到的上下文生成答案LLM也有context的限制。在这里对RAG用的embedding和transformer在输入时也需要做的embedding做一个区分。transformer的embedding是对每个token做的而RAG的embedding是对每个chunk做的一个chunk如果越长则表示该chunk的向量需要表示的信息就越多但是向量化的维度是不变这样就只能稀释该向量承载的信息。chunk切分的几种方式1. 固定大小按照固定字符个数不考虑语义边界适合结构规整的文本比如日志。2. 按分隔符递归按照分隔符列表递归切分[\n\n, \n, , ]分别代表双换行单换行空格空字符。recursiveCharacterTextSplitter从分隔符列表中从前到后遍历找到第一个在当前文本中存在的分隔符如果都不存在就用最后一个空字符串来分割。3. 语义分块在语义发生显著变化的地方分块。3.1 句子分割基于句子的结尾符号3.2 上下文感知嵌入通过buff_size捕捉上下文信息。每个句子与其前后各buff_size个句子组合起来然后对组合后的文本进行embedding。这样每个句子的嵌入向量就融入了其上下文的语义中。。3.3 计算语义距离比如计算余弦距离3.4 识别断点即如何识别显著语义跳跃用百分位法计算所有相邻句子的语义差异值并将差异值排序当某个差异值超过阈值时认为出现语义跳跃则产生该差异值的位置为一个断点。4. 按文档结构分块比如markdown形式中有标题列表等等按照大小标题去分块。3.向量构建多模态嵌入将不同类型的数据图像/文本映射到一个共享的向量空间中。4.向量库ChromaDBpineconeelasticSearch检索1.基本检索余弦距离2. 检索优化混合检索稀疏向量 稠密向量稀疏向量 - 精确性 使用BM25方法基于词频统计的传统信息检索方法维度高绝大多数元素为0的向量。也被称为“词法向量”一对一匹配特定术语。比如无法区分“西红柿”和“番茄”对所有词建立词表维度表示词在表中的权重。稠密向量 - 泛化性使用向量检索方法所有维度都有值也被称为“语义向量”是通过深度模型学习得到的数据的浮点数表示。可以知道“西红柿”和“番茄”是近义词混合检索就是并行执行上面这两种检索方式将两组异构的结果融合成一个统一的排序列表。常用的有RRF 倒数排序融合d - 待评分文档k - 检索系统的数量这里是稀疏系统 稠密系统共两个rank - d在第i个检索系统中的排名c - 常数通常是60用于降低排名靠前文档的相对权重RRF不关心不同检索系统的原始得分只关心每个文档在各自结果集中的排名。排名越靠前RRF score越高。输出1. 重排序 reRankreRank是对初步检索结果进行再次排序让与用户最相关、最准确的文档排在前面帮助LLM生成更高质量的答案RAG会先用向量检索或关键词检索快速找到一批可能相关的候选文档这些文档通常是基于简单的相似度分数进行排序的但这种排序只看表面相似度容易吧不相关的或者质量差的文档排在前面。重排序顾名思义就是对候选文档再做一次排序力求将最相关的文档排到最前面。参考RAG中的Rerank重排序简单易懂全面介绍及实战案例在RAG检索增强生成技术中rerank重排序是对初步 - 掘金Rerank解决的核心问题克服初步检索的局限向量检索只看向量距离忽略了文本的深层语义和逻辑容易出现误差。剔除无关信息减少干扰初步检索的上下文里有很多无关内容rerank能降低这些内容的权重减少对LLM生成的负面影响。提高生成效率和准确率更精准的上下文意味着LLM输入的token更有效推理速度更快答案更准确。融合多种特征rerank不仅用相似度还能结合文档长度、主题、实体频率等多维度信息进行综合排序。整合多路检索结果当有多个检索系统时rerank能统一排序提升整体效果。常见的Rerank算法和模型1. 基于深度学习的rerank模型BGE-Reranker智源开源支持中英文输入查询和文档对输出相关性分数轻量且效果好适合实际部署。Cohere Rerank商业API效果优异能显著提升答案质量但收费。Big-Reranker系列开源性能接近Cohere适合无付费需求。基于BERT、RoBERTa等预训练模型微调的rerank通过训练让模型更懂查询和文档的语义匹配2. 基于大语言模型LLM的rerank方法Zero-shot rerank提示工程用GPT-4、ChatGPT等大模型设计提示让模型直接给文档排序理解更深层语义。RankGPT等端到端排序让LLM输出完整排序列表配合滑动窗口解决输入长度限制。微调LLM rerank对大模型专门微调rerank任务提升准确率但成本高3. 多阶段rerank策略粗排精排先用BM25或向量相似度做快速粗排再用深度模型或LLM做精排。融合多特征评分结合检索分、文档特征、上下文信息等综合评分。结合外部知识利用领域知识库、常识推理辅助排序提升专业性和准确性

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑