迈向可信 AI:LLM 幻觉的分析与优化

本文深入探讨了 LLM 幻觉(即模型生成与事实不符或虚构信息)这一关键挑战。文章首先简要介绍了 LLM 的训练(预训练、后训练、对齐)和推理(分词、嵌入、Transformer 处理、采样)原理,解释了模型因概率性生成和训练数据限制而产生幻觉的内在原因。随后,详细分析了幻觉的优点(如创造性)和缺点(如误导用户、污染数据)。文章的核心在于提出了一系列多维度的优化方案,包括:通过精准无歧义的 Prompt 工程和预填充控制模型输出;利用 RAG(检索增强生成)引入外部知识以减少编造;调整采样参数以平衡确定性与多样性;运用 SFT(监督微调,特别是 LoRA)提升模型在特定任务上的表现;通过 RLHF(基于人类反馈的强化学习)使模型输出更符合人类偏好;引入思维链(CoT)和推理增强以提升复杂任务的准确性;以及构建多 Agent 或 Workflow 系统来解决复杂任务。文章强调了数据质量、模型评估和工程实践在幻觉治理中的重要性,为 LLM 的可靠性与价值创造提供了全面的理论与实践指导。





作者:lingyuhuang

丨 导语 随着LLM的广泛应用,其生成内容的准确性和可靠性成为AI落地的关键挑战之一。幻觉(Hallucination)现象,即模型生成与事实不符或虚构的信息,不仅影响用户体验,更可能带来实际风险。本文将系统性分析LLM幻觉产生的根本原因,探讨其在实际应用中的优缺点,并结合RAG、SFT、强化学习、思维链、Agent Workflow等技术,提出多维度的优化方案。旨在为构建更可信、可控的大模型应用提供理论基础与实践路径,助力AI迈向更高的可靠性与价值创造。

LLM的工作原理简介

在进入正题之前,我们先初步了解一下LLM的工作原理,有利于后面理解为什么LLM会出现幻觉。

一,训

迈向可信 AI:LLM 幻觉的分析与优化

1.训练过程

大语言模型(LLM)的训练通常分为三个主要阶段:

预训练(Pre-training):在大规模无标注文本数据上进行自监督学习,模型学习语言的基本结构和表达规律。


后训练(Post-training/Fine-tuning):在特定任务或领域的数据集上进行有监督微调,提升模型在特定任务上的表现。


对齐(Alignment):通过人类反馈(如RLHF,基于人类反馈的强化学习)等方式,使模型输出更符合人类价值观和实际需求,减少有害或不准确的内容。

2.数据来源

预训练阶段的数据主要来自于海量的互联网无标注文本,包括网页、百科、新闻、论坛、书籍等多种类型。

这些数据中不可避免地包含错误、虚假、过时的信息,甚至有些内容带有偏见或噪声。模型在训练时会无差别地学习这些内容,通过调整参数权重来拟合数据分布

3.训练目

预训练的核心目标是让模型具备强大的自然语言理解和生成能力,而不是让模型记住或判断事实的正确与否。因此,模型学到的是“语言模式”而非“事实真理”。


通过对海量数据的学习,LLM能够掌握丰富的语言结构、表达方式和上下文关联,从而具备在多种任务(如问答、摘要、翻译、对话等)中迁移和泛化的能力。


二,推理

1.预测流程

迈向可信 AI:LLM 幻觉的分析与优化

(1) 分词与编码(Tokenization)


首先,将用户输入的文本进行分词处理,转换为一系列token,并进一步编码为token ids。这些token ids是模型能够识别和处理的数字序列。

(2)嵌入映射(Embedding)

将token ids映射为高维的嵌入向量,形成一个Embedding矩阵。每个token对应一个语义向量,作为后续计算的输入。

(3)位置编码(Positional Encoding)

让模型理解每个token的位置顺序。

(4) Transformer层处理


Embedding矩阵依次通过多层Transformer block进行处理。每个block包含多头自注意力机制、前馈神经网络、归一化等操作,模型在此过程中充分捕捉上下文信息和词间关系。

(5)线性变换与概率归一化(Linear + Softmax)

对最后一层的输出嵌入进行线性变换,将其映射到词表空间,随后通过Softmax归一化,得到下一个token的概率分布。

(6)采样生成(Sampling)

根据设定的采样策略,从概率分布中选取下一个token。

(7)自回归生成(Autoregressive Generation)

将新生成的token追加到已有的token序列中,重复上述推理过程,持续生成下一个token,直到遇到终止符(EOS)或达到最大token数限制(MaxTokens)为止。

整个推理过程以自回归方式逐步生成文本,每一步都依赖于之前生成的内容,确保输出的连贯性和上下文相关性。通过多层Transformer的深度建模,模型能够理解复杂的语言结构,并生成高质量的自然语言文本。

2.采样参数

通过调整采样参数,可以控制模型的输出结果。下面列举几个常见的参数,方便大家理解采样过程。


(1) Top-k


Top-k会从所有候选token中,保留概率最高的K个作为候选集。模型只会在这K个token中进行采样,能够有效过滤掉低概率、无关或不合理的词汇,从而提升生成内容的质量和相关性。K值越小,输出越确定;K值越大,输出越多样。

(2)Top-p

Top-p会从所有token中,按照概率从高到低累加,直到总概率达到设定的阈值P为止。只在这部分token中进行采样。相比Top-k,Top-p能够根据实际概率分布动态调整候选集大小,更灵活地平衡输出的多样性和合理性。两个参数都设置的时候,必须同时满足的token才加入预测候选集。

(3)Repeat Penalty(重复惩罚)

重复惩罚参数用于降低模型重复生成已输出过的token的概率。参数值越大,对重复内容的惩罚越强,有助于减少文本中的重复现象,使生成结果更加丰富和自然。(有些小尺寸模型容易陷入循环输出,调大这个参数可以有效缓解。)

(4)Seed(随机种子)


随机种子用于初始化伪随机数生成器,决定本次推理过程中的随机数序列。设置相同的seed可以保证每次同输入的生成的结果一致。

(5)Temperature(温度系数)


温度参数用于调整softmax输出的概率分布(即 logits /= temperature)。温度越高,概率分布越平坦,模型输出更具多样性;温度越低,概率分布越尖锐,模型更倾向于选择高概率的token,输出更确定。通过调节temperature,可以灵活控制生成文本的创造性和保守性。

例如,经过topk&topp之后,保留了4个候选token,权重分别为0.5,0.2,0.2,0.1

不同温度下经过softmax变换,每个token的概率为:

迈向可信 AI:LLM 幻觉的分析与优化

什么是幻觉?

LLM的幻觉(Hallucination)现象,即模型生成与事实不符或虚构的信息。

例如:

在实际应用中,LLM幻觉不只表现在随意“编造”信息,其内容和表现形式多样。细分类型有助于更准确地定位问题,并为后续优化方案提供针对性思路。常见幻觉类型包括:

事实性幻觉(Factual Hallucination):模型输出明确违背客观真实的信息,如“水的沸点是150°C”。

上下文幻觉(Contextual Hallucination):模型对用户输入理解出现偏差,输出内容与问题语境不符,如用户询问“苹果公司”,模型却误答为“水果种植技术”。

逻辑幻觉(Logical Hallucination):模型生成内容存在自相矛盾、不合理、违背常识的推理,如“一个人同时在北京和纽约开会”。

不同类型幻觉的成因各异,对应的优化手段也各有侧重。下一节将结合具体幻觉类型,系统介绍多维度的优化方案。

一,产生幻觉的原因

通过前面的介绍,我们可以得到以下结论:


1. LLM在生成文本时,是根据每个token的概率分布进行采样的,因此输出结果具有一定的随机性和多样性。


2. 模型通过对大规模训练数据的学习,统计并拟合了token之间的概率关系。训练数据的质量和多样性直接影响模型的表现。


3. 通过调整如Top-k、Top-p、Temperature等采样参数,可以控制生成文本的多样性和确定性。但这些参数的变化会影响每一个token的输出,从而影响整体生成结果。


4. LLM的所有参数都来源于训练阶段,无法实时获取和学习新数据。因此,模型对训练数据之后发生的事实和知识无法感知,存在信息时效性限制。


5. 每个token的生成都涉及大量的矩阵运算,消耗显著的计算资源和存储空间。模型的上下文窗口不可能无限长,只能处理有限长度的输入,可能导致信息丢失或理解偏差。


6. LLM采用自回归生成机制,每个token的生成都依赖于前面已生成的内容,保证了文本的连贯性和上下文相关性。但前面token的错误也会导致后面的结果都偏离事实。


LLM通常采用自回归方式,通过预测next token来生成文本,本质是计算下一个token的概率分布,而非像传统数据库的准确检索。因此,模型在生成内容时,优先考虑的是自然语言的流畅性和上下文关联度,而非优先考虑事实的准确性。既然是概率计算,说明本身就有随机性,有概率生成出不符合实际的文本。简单来说,当信息不足的时候,大模型存在“虚构症”,导致LLM的生成产生了幻觉。

二,幻觉的优点

如果LLM总是只能生成符合事实依据的内容,那就会失去很多创造性。

在音视频、虚拟角色、文学创作等领域,正是由于LLM的随机性,才能生成出新颖、独特的内容,为用户提供创造力和灵感。

在头脑风暴、方案设计等场景下,幻觉生成的“异想天开”内容有时能启发新的思路和解决方案。

三,幻觉的缺点

在追求正确事实的场景下,LLM的幻觉也会带来很多弊端:

1.  提供错误回复,虽然LLM生成内容效率很高,但阅读者需要消耗精力去验证内容。


2. 普通用户难以辨别回答的真实性,可能导致误导用户,长时间的错误会导致用户不再信任AI。


3. 大量AI生成的内容涌入互联网,导致虚假信息传播,污染下一代模型的训练数据,更难以鉴别事实。

在绝大部分业务场景里,我们需要AI提供正确的答案,所以要尽可能让LLM生成出符合事实的token,减少幻觉的产生。

多维度优化方案

下面从输入、采样参数、后训练提升模型能力这几个方面来介绍优化方案。

一,Prompt

(1)准确无歧义

Prompt是使用LLM的第一步,可以尽可能挖掘出基座模型的潜力。

例如,新来的实习生掌握了很多理论知识,但是你在给他一个工作任务的时候,他可能由于缺少经验,最终做出来的可能不符合你的预期。这里面有哪些问题可以优化呢?

1.任务清晰明确、无歧义

2.任务的边界说清楚

3.任务进行拆解,复杂的任务拆解为子任务再一个个解决

4.给出示例( In-Context-Learning

例如,你想基于LLM给你的结果进一步编写代码,那么要求明确的输出格式,更便于代码进行解析。

prompt: 帮我提取播放周杰伦和蔡依林合唱的歌的槽位 

output: "intent""播放歌曲""slots": { "歌手": ["周杰伦""蔡依林"], "合唱"true } }




prompt:帮我提取播放周杰伦和蔡依林合唱的歌的槽位,提取出intentsingersong等信息,如果某个槽位存在多个值,

| 隔开,务必返回一个map形式的Json

output: “intent”播放歌曲""singer""周杰伦|蔡依林""song""" }




例如,你想利用多模态模型,生成对图片的简要描述:

迈向可信 AI:LLM 幻觉的分析与优化

prompt:

只用一句话准确描述这张图片,并列举出图片中非文字的内容或物体。
output: 一只蓝色企鹅图案,底色为白色。
异常: prompt有歧义,导致LLM会侧重于描述头像。

prompt: 你是检索系统中专业的图片分析识别专家,能够准确、详细地提取图片中的内容,以 JSON 形式输出。


1. 请用中文在50字以内准确描述这张图片中包含的主要内容,放到caption字段中。


2. 分析图片整体,包括事件、主题、构成、风格和背景等,输出图片的主题内容,以字符串数组形式放到core字段中。


3. 精准识别图片中的物品、动物、人物、植物、建筑、场景等局部内容,以字符串数组形式放到 exact 字段中。具体要求如下:


- 文字:识别主要标志文字或与图片主题相关的重要文字。


- 物品、动物、植物、建筑:从名称、颜色、类型等角度描述。


- 人物:从性别、角色、工作岗位、合影或自拍等角度描述。


- 场景:从活动、节日、文化、风景、夜景、天气等角度描述。


- 其他:以物品名称描述。

output:  {"caption":"腾讯公司发布关于2026校园招聘启动的微博。","core":["腾讯公司校园招聘","2026校招","技术、产品、市场、设计等岗位","AI、大模型、机器人、云计算等领域"],"exact":["腾讯公司","2026校招启动","技术、产品、市场、设计五大类","70+种岗位","蓝色企鹅图案","工作头罩","公司发布微博","招聘公告","互动图标","点赞","分享"]}

实际编写prompt的过程中,有很多细节要考虑,很难一次性写的非常完美和完善,需要不断测试并调整,让prompt适应更多的情况。


不同的提示词结果不一样,不同的模型对同一个prompt的表现也不一样。

常用的方法:

定义角色-定义任务-适当的示例-限制条件 (比如你是xxx,现在需要做xxx,例如xxx, 输出必须xxx)


定义角色-说明已有信息-询问步骤-描述期望 (比如你是xxx,已知xxx,现在请帮我制定一个执行计划, 最终需要达到什么目的)

(2)预填充

除了编写无歧义的prompt,我们还可以通过预填充,来进一步控制模型的输出行为,使其输出的格式更符合我们的要求,例如:

预填充一个工具调用,可以强制模型下一步输出一个工具调用的步骤:<|im_start|>assistant<tool_call>

预填充一个具体的工具调用,可以强制模型下一步调用联网检索:<|im_start|>assistant<tool_call>{"name":"web_search"


预填充一个业务特定json格式的输出:<|im_start|>assistant\n{"caption":"

限定输出特定schema json:

迈向可信 AI:LLM 幻觉的分析与优化

更多信息可以参考:

https://github.com/NousResearch/Hermes-Function-Calling

二、RAG(Retrieval-Augmented Generation)

虽然大模型学习了海量知识,但是总有一些没见过的知识。比如一个擅长写程序的人,让他设计UI稿,给出的结果大概率没有专业设计师设计的好。但是如果把各种背景知识和技巧告诉他,他就能给出一份不错的结果。(但是RAG也不是万能的,开卷考试也不一定能得满分。)

RAG比较典型的应用是文档问答、知识库总结、联网检索总结等。

例如,帮我总结一下微信的xx群里今天都聊了什么消息。

迈向可信 AI:LLM 幻觉的分析与优化

这就是一个经典的RAG的流程,从外部获取参考资料,带给LLM进行参考,让LLM基于参考资料进行回答。(设想一下,如果你不提供聊天记录给LLM,但是Prompt中又要求LLM总结聊天记录,LLM会发挥想象,开始瞎编聊天记录,就产生了幻觉。)

我们开源了文档问答的RAG能力,欢迎体验  https://weknora.weixin.qq.com/

三、采样参数

前面提到在模型预测的时候,具有随机性,如果模型的结果非常不稳定,可以尝试调整 temperature和seed参数,可以让模型的结果固定:

在一些有标准答案的问题上,例如单选题,可以让模型输出更加确定的结果,将 temperature 设置得更低,例如0.1;

在一些开放回答的问题上,将temperature设置得更高,可以让回答有多样性,例如>0.7;

在一些不希望LLM发散的开放题上,可以将temperature 设置为中等,例如0.3。

四、SFT(Supervised Fine-Tuning)

SFT(微调)属于后训练阶段,预训练模型已经具有强大的能力,而SFT 利用带标签的监督数据调整模型,使其在特定任务上表现最佳,提升模型在特定方面的能力。与之相比,In Context-LearningRAG都是不改变模型本身的,而SFT会改变模型的权重参数。

常见的微调种类很多,主要分为全参微调,和PEFT。在项目落地中,一般首先尝试PEFT的一种:LoRA,LoRA可以使用较低的成本获得相对较好的结果。

迈向可信 AI:LLM 幻觉的分析与优化

1.什么是LoRA?

LLM往往拥有非常多的参数,所以对于模型的训练而言,如果每个参数都需要调整,非常耗费资源。思考几个问题:

1. 大模型那么多参数,都很重要吗?就像一篇1000字的文章,核心思想可能50字就可以概括。

2. 微调往往是为了提升特定一些任务的表现,所以我们更希望调整影响这部分任务的那些参数。

3. 如果所有参数都调整,可能会导致模型其他能力丢失。(学的太多反而学坏了。

LoRA(Low-Rank Adaptation)提出了一种低秩参数化的适配方式。其核心思想是:

迈向可信 AI:LLM 幻觉的分析与优化
  • 冻结预训练模型权重,仅在每一层Transformer的部分权重矩阵(如自注意力模块的Wq、Wv等)旁路注入一对可训练的低秩分解矩阵A、B。

  • 具体而言,将权重更新ΔW表示为BA(B∈R^dr, A∈R^rk, r≪min(d,k)),即

迈向可信 AI:LLM 幻觉的分析与优化
  • LoRA只需训练极少量的参数,可以显著降低存储与计算开销。

例如:

迈向可信 AI:LLM 幻觉的分析与优化

假如一个3X3的矩阵,全参数微调需要更新9个参数,而Rank=1的时候,只需要更新3X1+1X3=6个参数。假如原始矩阵式10000X10000,全参数微调需要更新1亿参数,而Rank=8的时候,只需要更新10000X8+8X10000=16万参数。(一般Rank可以选择4或者8,如果原始模型信息本身压缩率高,可以将Rank设置的更大;如果原始模型信息冗余严重,可以将Rank设置的更小

迈向可信 AI:LLM 幻觉的分析与优化
迈向可信 AI:LLM 幻觉的分析与优化

可以看到LoRA在大大节约了训练开销的前提下,仍然保持了较高的准确率。

从论文来看,LoRA调整QV矩阵(Transformer的自注意力层),是最有效的,由于LoRA的目的就是要用较小参数的改变实现对模型的有效性调整。而Attention直接影响最终的输出,调整Q可以影响模型如何选则信息,调整V可以影响模型如何利用信息。

迈向可信 AI:LLM 幻觉的分析与优化

https://arxiv.org/pdf/2106.09685

迈向可信 AI:LLM 幻觉的分析与优化

https://arxiv.org/pdf/2304.13785

2.全参微调和LoRA微调的核心差异

  1. 全参微调会修改大模型的参数,在数据充足的情况下可以学习更多的内容,数据越多效果理论上越好,但也存在灾难性遗忘等不稳定情况。数据量小的情况下容易过拟合。
  2. PEFT只修改少量参数,需要的资源少因为大多数预训练的权重保持不变,所以更容易保留原始模型能力,但效果上限较低,如果基座模型在该领域的效果本来就很差,通过PEFT也难以提升。
  3. 如果业务落地中,只需要定制少量几类任务,而不需要担心通用能力退化的情况下,并且在有数据量支撑的情况下,全参微调可以获得更高的能力上限。

3.如何微调

我们在项目中,使用LLamaFactory进行模型微调,可以直接参考文档:

https://llamafactory.readthedocs.io/zh-cn/latest/index.html

4.微调的数据准备

一份优质的微调数据,从三个维度来衡量:多样性、质量、数量。数据往往决定了最后模型的效果。

(1)多样性

1.指令多样性:考察样本中指令的覆盖范围是否广泛,是否包含了各类任务类型、不同难度级别以及多样化的指令结构和表达方式,确保模型在微调后能应对多种复杂情境。

2.内容多样性:检查样本中提供的文本内容是否涵盖了不同主题、文体、长度以及语境,以避免模型在特定领域或文本类型上过拟合,确保其具备良好的泛化能力。

3.难易程度分布:分析样本集中简单、中等、复杂任务的比例,确保微调数据集包含不同难度级别的样本,有助于模型逐步提升处理复杂指令的能力。

(2)质量

1.准确性评估答案是否准确无误地响应了给定指令和内容,且不包含事实性错误、逻辑矛盾或语义模糊。

2.完备性考察答案是否全面覆盖了指令所要求的所有任务点,尤其对于多步骤或复合任务,答案应完整体现所有必要的操作结果。

3.简洁性与清晰度衡量答案是否言简意赅、表达清晰,避免冗余信息或含糊表述,确保模型在微调后生成的输出易于理解和使用。

4.清洗:识别并剔除标注错误或不一致的样本,确保答案与指令、内容间的映射关系正确无误。去除重复样本、无关内容、错别字、低质量文本。(可以通过dropout优化过拟合问题,而不是混入错误数据让模型学到错误信息,错误数据会提升模型的幻觉率)

(3)数量LoRA 1k-10k左右, 全参SFT100k以上。

5.SFT数据集的常见格式

{ "instruction": "计算这些物品的总费用。 ", "input": "输入:汽车 - $3000,衣服 - $100,书 - $20", "output": "汽车、衣服和书的总费用为 $3000 + $100 + $20 = $3120" }

{ "instruction":"人类指令(必填)","input":"人类输入(选填)","output":"模型回答(必填)","system":"系统提示词(选填)","history":[["第一轮指令(选填)","第一轮回答(选填)"],["第二轮指令(选填)","第二轮回答(选填)"]] }

偏好数据集: (奖励模型)

{ "instruction": "人类指令(必填)", "input": "人类输入(选填)", "chosen": "优质回答(必填)", "rejected": "劣质回答(必填)" }

图像多模态数据集:

{ "instruction": "人类指令(必填)", "input": "人类输入(选填)", "output": "模型回答(必填)", "images": [ "图像路径(必填)" ] }

……

6.训练参数设置

比较重要的参数如下表:

LR
学习率,设置的越大,模型训练的参数调整幅度就越大。
Epochs
学习轮次,对数据学习几轮。一般为2/3。太多会导致过拟合,把模型学傻,模型就只会训练的那些数据了。
BatchSize
一批的数量,越大显存需求越大。太低导致收敛难,陷入局部最优;太高容易过拟合,泛化能力差。需要结合实际情况调整。
Rank
LoRA的Rank,越大学习到的参数更多,但也会学到无关知识,一般建议在4,8,16。太高无明显性能优势,反而增加资源消耗。
Dropout
随机丢弃的概率,可以避免过拟合。对于13B等小尺寸模型可以设置为10%。对于70B等大尺寸,可以设置为5%。

更加详细的参数可以查阅https://llamafactory.readthedocs.io/zh-cn/latest/advanced/arguments.html

7.模型评测

准确地评估模型在特定任务的表现,可以为后续训练与数据迭代的方向提供参考。所以需要一份优质的数据去评估模型能力。

迈向可信 AI:LLM 幻觉的分析与优化

五、基于强化学习对齐偏好(RLHF)

RLHF(Reinforcement Learning from Human Feedback),通过人类反馈强化学习进一步微调模型,让模型有更好的泛化能力,并输出更符合人类偏好的结果,是提升模型性能、减少幻觉和有害内容的有效手段。

常见的方法如下:

1.PPO(Proximal Policy Optimization)

通过限制每次策略更新的幅度,保证训练过程的稳定性和高效性。让模型学习到人类偏好的同时,不过于丢失原有能力。

迈向可信 AI:LLM 幻觉的分析与优化

策略模型进行环境采样;SFT参考模型计算KL散度,确保更新策略不出现大变化;奖励模型评价奖励;评论模型/价值模型对每个token的收益进行预估

2.DPO(Direct Preference Optimization)

PPO 需要训练奖励模型,如何构建准确的Reward和Value Model是一个难题,直接影响强化学习的效果。DPO直接用标注好的人类偏好数据去训练。例如:

[ { "instruction": "人类指令", "input": "人类输入", "chosen": "优质回答", "rejected": "劣质回答" } ]

3.KTO

DPO类似,但是解决了DPO的chosen和rejected必须成对出现的缺点。例如:

  [ { "instruction": "人类指令", "input": "人类输入", "output": "模型回答", "kto_tag": "人类反馈 [true/false]" } ]

4.GRPO

移除对Value Model的依赖,一次生成一堆结果,组内相对优势(模型自己卷),奖励高于平均分的结果。与PPO不同的是,只对最终的结果进行奖励评估,如果过程错误但结果正确,也会获得奖励。

迈向可信 AI:LLM 幻觉的分析与优化

5.训练框架

我们在项目中,使用VERL进行强化学习训练,可以直接参考:

https://github.com/volcengine/verl

6.RL与SFT的区别

1. SFT只需要提供正例数据,告诉模型什么是正确的,让模型学习正确数据的概率分布,这会导致SFT往往记住了很多知识和格式。采样的时候也是基于概率,通过采样参数来控制,挑选出概率大的next token,以此来排除概率小的“错误”token。

2. RL可以提供正负反馈,明确告诉模型哪些是错误的,更有利于提升模型的泛化能力。

迈向可信 AI:LLM 幻觉的分析与优化

https://arxiv.org/pdf/2501.17161


3. SFT需要更多的标注数据,RL可以通过固定的规则奖励(例如math 和code只需要判断最终结果)与奖励模型提供的正负反馈不断迭代,让模型自己探索符合人类偏好的回复策略,可以减少训练数据的要求。

4. SFT是针对Token级别的反馈,而RL是针对整个答案文本的评价。

六、思维链(Chain-of-Thought)与推理增强

COT是一种用于提升大语言模型(LLM)推理能力的提示工程(Prompt Engineering)方法。其核心思想是:在模型生成答案时,不是直接输出最终结果,而是引导模型像人类一样,分步骤地展示推理和思考过程,逐步推导出答案。


人类在回答问题的时候,有些常识性问题,可以直接回答出来,而有些复杂的问题,可以经过思考和推理以后,再给出最终的答案。与人类一样,模型也可以模拟这个过程,输出慢思考的中间过程,让模型产生反思能力,提高最终答案的准确率,尤其是在复杂推理、数学、逻辑等任务上,可以有效的减少幻觉。

优点
缺点
能显著提升数学、逻辑、推理等复杂任务的表现
生成内容长,响应慢,废资源。
分步骤解决问题,容易发现和纠正中间错误,提升最终答案准确性
效果非常依赖prompt和示例。
过程可解释
中间过程可能出错,后面可能基于错误的结论进一步输出,导致浪费很多token还是得到错误答案
便于调试和优化,指出模型的错误
对简单任务基本无帮助,反而浪费token
可以引入反思机制,进一步减少幻觉

小尺寸模型效果有限,可能会不断输出错误内容

在早期项目落地时,主要是靠prompt去引导模型输出中间过程,现在已经有很多带think能力的模型。 我们在项目冷启动的时候,如果需要制造COT数据,可以直接通过已有模型进行蒸馏,或者仍然使用prompt进行引导,让模型输出业务需要的数据。也可以通过规则奖励,激发RL自行产生慢思考的数据,收集评分高的数据不断迭代模型。z

之前我们通过RL,增加推理过程提高了文档问答的效果,具体可以参考:https://km.woa.com/articles/show/622575

七、Agent / Workflow 

前面提到的所有方案,目标都是为了提升单次LLM任务的准确率。但在实际业务中,很难通过一次LLM调用将所有问题解决。这时候搭建一个多Agent协作的系统就非常有必要。

LLM Agent 是指以大语言模型为核心,具备自主感知、决策、规划和执行能力的智能体系统。它不仅能理解和生成自然语言,还能根据环境反馈和任务目标,动态调用工具、检索信息、执行代码、与外部系统交互,完成复杂任务。


Agent可以将复杂的任务拆解为子任务,通过调用工具来逐步完成。但是在落地的时候,我们可以完全让模型+FunctionCall来驱动;也可以搭建Workflow,在关键位置引入LLM强大的语义理解能力和规划能力。前者更加灵活,后者更加准确。

虽然我们采用Workflow的方式,但是通过一些工程手段,在提升任务准确率的前提下,依然没有丢弃LLM的规划能力和灵活性。下面简单介绍一些落地经验:

迈向可信 AI:LLM 幻觉的分析与优化

1. 全局planning,让LLM在制定计划的时候,有大局观,直接生成全局计划而非一步一步的生成,可以提高问题解决率,减少LLM生成后续步骤的时候,忽略前面的任务。

2. 完全由LLM决定如何解决问题,以及调用什么工具,而不是写死每个步骤。并对中间结果进行摘要,缩短上下文。

3. 引入reflection机制,让模型深入思考和研究每个步骤的解决情况。

4. replan,前面的步骤的结果可能影响后续的步骤,不断的重新制定下一步计划,并review 全局计划,进行调整。

5. 复述任务,并将重要的信息放到prompt末尾。随着上下文越来越长,对于一些能力一般的模型来说,可能顾及不到所有信息,需要将重点进行重复,并放到最接近输出的位置。

6. 不同的步骤可以尝试不同的模型,有些简单任务可以用小尺寸模型,有些复杂任务需要大尺寸模型。灵活构建。

7. 尽量少使用few shot example,除非LLM实在解决不了。 example会导致模型输出总是倾向于你给的示例,丧失多样性。如果实在要给例子,可以构造具有多样性的示例。

8. 尽量将可变信息放到prompt最后,有效利用kv缓存。

结语

随着大语言模型在各行各业的广泛落地,幻觉问题已成为影响其可靠性和实际价值的核心挑战。本文系统分析了LLM幻觉产生的原因,评估了其优缺点,并从Prompt设计、RAG检索增强、采样参数、SFT监督微调、强化学习、思维链推理、Agent Workflow等多个技术路径提出了针对性的优化方案。可以预见,未来LLM的幻觉治理将是一个持续演进的过程,需要模型架构、数据、算法、工程实践的多维协同。只有不断完善技术手段,提升模型的事实一致性和推理能力,才能真正释放大语言模型在实际应用中的潜力。


参考文献

https://arxiv.org/pdf/2106.09685

https://arxiv.org/pdf/2304.13785

https://arxiv.org/pdf/2501.17161

https://openlmlab.github.io/MOSS-RLHF/

https://arxiv.org/pdf/2402.03300

https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/data_preparation.html


AI 前线

Anthropic 预训练负责人教你如何训练大语言模型

2025-12-23 22:46:46

AI 前线

这届 WAIC,无问芯穹发布了三个「盒子」 | 机器之心

2025-12-23 22:47:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索