AI 笔记
大模型
大模型幻觉(Hallucination in LLMs)
大模型一本正经地胡扯(胡扯指数,Bullshit Index)。幻觉是否是智力特征,不能从根本消除?
幻觉来源:
-
数据源 Data:
- 错误信息和偏见 Misinformation and Biases
- 知识边界 Knowledge Boundary,长尾知识、知识更新、版权敏感知识
- 次级对齐数据 Inferior Alignment Data
-
训练 Training:
- 预训练阶段 Pre-training
- 监督微调阶段 SFT(Supervised Fine-tuning)
- RLHF(Reinforcement Learning from Human Feedback)模型训练导致谄媚(sycophancy)
-
推理 Inference:
- 不完善的解码策略 Imperfect Decoding Strategies,大模型的创造性和多样性极依赖随机性
- 过度自信 Over-confidence
- Softmax 语言模型瓶颈 Softmax Bottleneck
- 推理失败 Reasoning Failure
幻觉检测:
-
事实性幻觉检测 Factuality Hallucination Detection,通常分为两类:
- 事实核查 (fact-checking),其涉及根据可信知识源验证所生成响应的真实性;
- 不确定性估计 (uncertainty estimation),其侧重于通过内部不确定性信号检测事实的不一致性。
-
忠实性幻觉检测 Faithfulness Hallucination Detection:
- 基于事实的指标,通过测量生成内容和源内容之间事实的重叠程度来评估忠诚度;
- 基于分类器的指标,利用训练过的分类器来区分生成内容和源内容之间的蕴涵级别;
- 基于问答系统的指标,采用问答系统来验证源内容和生成内容之间信息的一致性;
- 不确定性估计,通过测量模型对其生成输出的置信度来评估忠诚度;
- 基于提示的指标,其中 LLM 被引导作为评估者,通过特定的提示策略来评估生成内容的忠诚度。
幻觉缓解 Hallucination Mitigation:
- 数据过滤,仔细筛选来自可靠源的高质量预训练数据,并对其做数据采样
- 模型编辑,通过引入额外知识来纠正模型行为,分 locate-then-edit(定位模型参数中有缺陷部分,然后编辑)和 meta-learning(训练外部超网络来预测源模型的权重更新)。
- RAG(Retrieval-Augmented Generation),将外部知识与 LLM 解耦,RAG 可以有效缓解知识缺口造成的幻觉,同时不影响 LLM 的性能。根据检索的时机分3类:一次性检索、迭代检索和事后检索。
- 训练相关缓解:关注模型架构固有的局限性,设计针对性新模型架构;改进预训练策略;聚合多种人类偏好提高反馈质量,从而减少谄媚
- 推理相关缓解:事实增强解码,通过优先考虑 LLM 生成信息的真实性来提高其输出的可靠性,以及利用 LLM 的自我校正能力来细化最初生成的内容;忠实性增强解码,增强上下文一致性和逻辑一致性。
幻觉引发的可靠性问题已经成为制约大模型在企业级应用落地的瓶颈。一种新的缓解策略是通过工程化方式,工程化在不同的领域有着不同的表现形式,可以归纳为2点:分解与核验。
- 分解可参考标准作业程序(SOP),通过“动作分析”将操作流程、作业方法、工具使用、时间安排等要素进行系统化、规范化的设计,形成可重复、可量化、可优化的操作标准。
- 核验可参考检查清单,使用检查清单,弥补人类与生俱来的认知缺陷,如记忆不完整或注意力不集中。
行业最佳实践往往存在于专家的大脑中,任务执行依赖人的随机应变。但这种方式难以规模化,并且容易因个体差异导致执行出现偏差。将业务逻辑程序化,避免自然语言的歧义与模糊性,并将复杂业务逻辑分拆到可核验的颗粒度,以支撑后继的高效核验,同时提供与编程语言类似的大规模可扩展能力。
AI
社会影响
如果人们不再想为互联网生产内容,那 AI 又将从哪里获取它所需要的信息?如果人类不再亲自阅读互联网内容,因此也不再看广告。
好的 AI 用例--安全漏洞赏金项目。项目会收到海量的报告——某个研究员声称在我们的应用里发现了漏洞。我们必须处理这些报告。我们大概会收到……可能一个季度 300 份报告之类的数量。但真正“靠谱、有效、值得修”的——大概只有 3 份。 真正有价值的比例大概只有 1%。而这个 1% 非常重要,因为它们可能真的指出了一个严重问题,我们必须修。但为了抓住这 1%,你必须花巨大精力去验证剩下 99% 的垃圾——这对团队来说是巨大的麻烦、巨大的时间黑洞、巨大的烦躁来源。 AI 能在报告进来时就先处理一遍,给我们一个初步判断——“这到底是扯淡,还是不扯淡?”然后还会帮我们写回复邮件。 而写回复其实才是痛点的一半:当 99% 的提交都是彻头彻尾的狗屎,写这些狗屎的人还常常—— 根本不懂自己在说什么,却又特别理直气壮,还特别不耐烦,甚至还一副“你必须立刻给我 5000 美金赏金”的态度。 这时候让人类程序员保持冷静、不直接对他们开喷,是很难的。AI 就完全没这个负担。它特别乐意用一种非常冷静的语气写一大段回复:“为什么你这个东西不成立。”它帮我们省了大量时间。 以前要看 100 份报告,现在可能只要看 5 份——这就是真实的生产力提升。就算你最后要看 10 份、20 份,只要你能把原本 100 份的工作压缩到 20 份,这就是 AI 承诺的生产力收益。如果我们能把这种压缩能力用到业务的其他方面——那简直太好了。
待改进的 AI 用例--客服支持(support)。support 很微妙:如果你只能 90% 正确,那其实很糟糕。因为这意味着你会有 10% 的概率把事情说错——而且是对着客户说错。如果给客户一个完全错误的答案,让客户体验很差,客户可能就直接流失了。 那这个客户的终生价值是多少? 你以为 AI 带来的那点“节省成本”,可能瞬间就被一次流失抵消得干干净净。目前效果不太行。但一切都在飞速变化。
作为一个文明整体,我们最终仍然会在更多类别、更多细分领域里,更快地获得更好的软件。问题的一部分在于:无论是 Web 开发圈,还是独立开发者(indie hacker)圈,很多讨论都过于短视地集中在那些我们一直反复折腾的“通用大类”上。当你解决的是自己的问题时,你立刻就能判断你做出来的软件到底好不好。
更新于[2026-01-23]
文章参考