当前位置: 首页 > article >正文

4. 如何减少大模型幻觉?⸺大模型外挂向量数据库的分析(知识延伸版)

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 

目录

1. 大模型幻觉

1.1 大模型幻觉的含义

1.2 大模型幻觉产生的原因

2. 缓解大模型幻觉方案的比较与选择

2.1 Prompt优化

2.2 微调大模型

2.3 外挂知识库

3. 向量数据库

3.1 向量

3.2 Vector Embbeding

🛠️ 传统做法:特征工程

📦 什么是 Embedding?

🧠 向量是怎么生成的?

⚖️ 如何选择嵌入模型?

3.3 向量数据库

3.3.1 什么是向量数据库

3.3.2 向量数据库工作原理:

3.3.3 衡量向量数据库的指标

3.4 如何构建大模型外挂向量数据库

🔹 一、数据和索引模块

🔹 二、查询检索模块

🔹 三、响应生成模块

3.5 大模型外挂向量数据库的不足

🚨 向量数据库存在的主要不足与改进思路:

❶ 排序不敏感,影响回答逻辑

❷ 匹配能力受限,难处理模糊或复杂提问

❸ 综合性提问难召回,影响知识点拼接

❹ 大模型知识“盲区”仍然存在

✅ 总结建议:


💡 本文是笔者第一篇AI知识学习的输出。最近,业界关于大语言模型的落地思考,慢慢聚焦于RAG(Retrieval Augment Generation,检索增强生成)和Agents。此篇是笔者从减少大模型幻觉的角度入手,对RAG下的大模型外挂知识库(向量数据库)的总结输出。目前有关向量数据库的营销非常多,令人眼花缭乱,本文对重要资料进行梳理,较为系统地对其进行了介绍,并总结了大模型外挂向量数据库的一些不足。

1. 大模型幻觉

1.1 大模型幻觉的含义

大语言模型(LLM)有两个突出能力:一个是自然语言的理解和生成能力🗣️,另一个是逻辑推理能力🧠。然而,大模型也存在短板,比如大模型会产生幻觉:即大模型的输出内容,与输入内容或现实不相符😵,也就是“大模型在绘声绘色地胡说八道”🎭。不同的应用场景,对大模型幻觉的容忍度不同⚖️。比如,在要求严谨和精确的领域📊,大模型幻觉就是个必解的问题❗

1.2 大模型幻觉产生的原因

  1. 想象学生回答文科题目时的情境:当遇见不会的题目,学生根据过往经验,会做出如下判断:多写不扣分,少写或没写要扣分!因此,学生遇见不会的题目,一般也要强行回答,绝不留白,至少能得个辛苦分。同理,由于大模型预训练的目标,是基于之前文本,生成下一个最有可能的词,却缺乏有效的机制来让模型明确知道:对于不会的问题,可以拒绝回答!因此,模型在遇见不会回答的问题时,不愿意回答“不知道”,而是输出概率最高的词,为了回答而回答,就会产生看似合理,实则虚构的答案。

  2. 多数学生很少去怀疑出题人给出的信息。如果出题人给出的信息不够明确和精准,就会导致学生写出不符合要求,甚至是错误答案。具体有两种情况:一是给出的信息没有限定范围和约束条件,导致学生的回答范围过广或偏离,不符合出题人原本预期。二是给出的信息有误,对学生产生了误导。同理,大模型很少去质疑提问者给出内容的正确性。因此,如果提问者给出了错误内容,模型会认为这些内容是数据的一种正常分布,并基于这些错误内容进行推理,从而产生错误结果。比如,经典的“林黛玉倒拔垂杨柳”问题。

  3. 学生需要通过大量刷题,去巩固和加深对知识点的掌握。当学生遇见比较少见的题目或知识点时,由于对该题目类型的熟练度不够、知识点模糊,答题时就需要依靠猜测。同理,当大模型遇见出现次数少的知识点时,也需要去“猜测”。不过一旦采用了猜测,很大可能会猜错。

  4. 学生在学校里犯错,为了不被老师批评,倾向于撒谎掩盖错误。此时,为了圆一个谎,就需要说更多的谎。同理,如果模型产生了一个错误,当它认为必须继续回答下去,就会把产生的错误当成是数据分布的一部分,并以错误内容为基准预测下一个词。这意味着模型为了强行回答而撒谎,从而导致幻觉。

综上所述,大模型幻觉具体成因如下:

  • 模型缺乏特定知识,仅能依据模型内部知识进行推理和回答,并且没有“有效机制”去告知模型:对于不会的问题可以拒绝回答。所谓“有效机制”,是要教会模型可以回答“不知道”,同时防止模型矫枉过正(即模型知道怎么回答,但还说不知道)。
  • 输入的内容不够明确精准,会误导大模型产生错误回答。
  • 大模型内部有一些知识模糊或丢失,导致其靠编和猜来回答问题。
  • 大模型调用知识或推理错误导致的问题。

当然,还有其他原因会导致大模型产生幻觉:例如,在预训练阶段,训练数据掺杂了错误信息或虚假信息,使模型学习了错误和虚假知识,也会产生幻觉。但这种问题的解决,需要重新训练模型,花费成本很高,故暂不将其纳入本文探讨范围。

2. 缓解大型幻觉方案的比较与选择

📚 上一章已梳理出大模型产生幻觉的主因。可以得知,大模型像个学生,幻觉就如校园时代学生做的蠢事,故而我们可以从“对大模型进行教育”的角度入手,分析减少幻觉的主要思路:

1️⃣ 补充大模型缺乏的知识。正如“学而不思则罔,思而不学则殆”的第二句话所言,没有充足的知识学习,思考很可能会陷入虚幻和错误之中!🧠

2️⃣ 告知大模型:可以承认其不知道答案。就像做人的处事哲学一样,犯错就要承认不足与错误,并且在下一次回答中做好,如此这般,人们就会倾向于忘记你的错误,并最终记住你的好!👍

3️⃣ 结构化和精准化用户的提问意图。“问题哪得清如许,为有源头活水来”,好的输出源自于好的输入,而垃圾输入,就会产生垃圾输出!🔁

4️⃣ 用Prompt帮助大模型进行复杂任务的拆解和推理。有时候,“慢即是快”,通过Prompt引导模型对复杂问题进行行一步步的拆解和推理,让其思考慢下来,从而得出更靠谱的结果。🧩

体到操作层面有三种案:(1Prompt优化;(2)微调模型;(3)外挂知识库。下面是对各个方案的介绍。

2.1 Prompt优化

具体地,主要有三种 Prompt 优化方式可以用来缓解大模型的幻觉现象:

1️⃣ 补充大模型所缺的外部知识,比如直接在 Prompt 中加入特定领域知识。📘
2️⃣ 告知大模型:“当你对问题没有把握的时候,不要自己编,直接回答不知道。”🙅‍♂️
3️⃣ 为了减少大模型在处理复杂问题时产生错误,可以采用诸如思维链(Chain-of-Thought)、上下文学习(In-Context Learning)、少样本学习(Few-shot Learning)等方式,引导大模型更好地推理与输出。🧠

但仅采用 Prompt 优化来缓解幻觉问题,也存在一定局限性:

⚠️ 大模型有 Token 限制(包括输入和输出内容)。如果对外部知识不加筛选而一股脑塞给模型,不仅效率低,而且成本高(包括 Token 消耗和推理资源的成本)。
⚠️ 很多时候,大模型并不能很好地遵循输入的指令,仍然可能编造答案来糊弄用户。

✅ 因此,Prompt 优化是一种值得考虑的方法,但在专业场景中,仅靠 Prompt 还远远不够,需要配合其他策略共同使用。💡

2.2 微调大模型

如果把大模型比作学生,微调就像是在考试前,告诉学生有关这门考试的规则与答题技巧,让学生记住这些要求,更好地利用自身的知识和能力进行答题,并且在考试时,能按照指定风格和术语输出答案。📖📝

不过,如果想通过微调来缓解幻觉,笔者认为这


http://www.kler.cn/a/601222.html

相关文章:

  • 城电科技|太阳能光伏座椅:点亮智慧城市的绿色便民新体验
  • MySQL 8.0 新特性详解
  • fastapi+angular商品分类和展示
  • Oracle数据库服务器地址变更与监听配置修改完整指南
  • OSI模型_TCP/IP模型_五层模型
  • 屏幕刷新机制(一):机制
  • 类与对象(中)(详解)
  • v-model 总结
  • WPF x:Static详解
  • 企业在人工智能创新与安全之间走钢丝
  • UniApp 表单校验两种方式对比:命令式与声明式
  • A2 最佳学习方法
  • 本地JAR批量传私服
  • ngx_http_index_set_index
  • Transformer、ELMo、GPT、BERT的详细理解
  • 【大模型】什么是循环神经网络(RNNs)
  • ollama迁移已下载的单个模型到服务器
  • 联核防爆无人叉车:高危环境中的安全搬运守护者
  • 【C++】深入理解list迭代器的设计与实现
  • zookeeper部署教程