- # why
- 事实性问题上会瞎说,产生幻觉。
- # what
- 早期经过[[SFT 监督微调]]后的模型,如果遇到现实世界未出现过的问题,LLM 不会回答“我不知道”,而是仍然会生成内容,并且专业又自信,但内容本身并不存在。这是因为在监督微调的训练中,人类标注员总是自信而正确的回答问题。并没有告诉模型可以说“我不知道”。
- 在LLM 的内部,也许模型是知道的,当有一个它不知道的问题出现时,模型内的神经元可能被“激活”了,但是这个神经元和表达(预测下一个词)没有连接在一起,因为生成不允许说”我不知道“。
- # how
- **如何改进**
- 我们如何知道 LLM 何时知道?何时不知道?
- 使用模型询问来发现模型的知识,并在模型不知道的情况下,以编程方式使用基于知识的拒绝来扩充其训练数据集。这个解决办法最早出现在 Llama3 论文中,叫做 Factuality(*[The Llama 3 Herd of Models](https://scontent-sea1-1.xx.fbcdn.net/v/t39.2365-6/468347782_9231729823505907_4580471254289036098_n.pdf?_nc_cat=110&ccb=1-7&_nc_sid=3c67a6&_nc_ohc=MV3ga1PekW0Q7kNvwHp3j-A&_nc_oc=Adn9leNMnGEyXva-Mf-Fr3wShp0AO3TQNq79DZNfwDllUo4t16cz1QEML9mh_k3Q2Wk&_nc_zt=14&_nc_ht=scontent-sea1-1.xx&_nc_gid=pFUyW6Um1Q0BhMqFreaoFA&oh=00_AfEnqNJp_iRRqJ6_LMRG6kO_cJ9CijLGnRWCZM4-4nG0RQ&oe=68067E80)2024*)
- 先询问模型知道什么,不知道什么,找到模型的知识边界
- 然后加入模型不知道的知识的数据,然后给出回答“我不知道”
- 用 LLM 生成 Q&A,然后给测试模型来回答
- 对于回答错误的答案,训练它正确答案是”我不知道“
- 这就是解释了为什么新模型,如 GPT-4o、4.5会回答不知道
- use tool,上网搜索。
- [[SearchGPT]]
- 
- 当模型看到`<SEARCH_END>`的 token 时,将不会生成下一个词,而是暂停,然后打开 bing.com,把问题复制进去,然后把搜素结果放进[[context length 上下文长度|上下文窗口]]`[...]`,上下文窗口就像是模型的工作记忆。它可以用刚刚搜到的信息来回答你的问题。
- **继续自主学习**:模型会根据上千份数据来自我训练,能够很好地知道何时使用工具,何时不使用。
- # how good
- [诚实面对“不知道”](https://mp.weixin.qq.com/s/VueVt0LAhia9pLIoEUOh3Q)
- [[meta promot 尽可能使用上下文窗口]]
- [[2025世界读书日:今天是世界读书日]]
- # Ref.
- [[Deep Dive into LLMs like ChatGPT]]