1. 数据层面
-
数据量够吗?
- 少量样本(几千条以下)容易导致过拟合和幻觉。
-
数据是否高质量?
- 是否有事实错误、模糊答案?
-
覆盖范围够吗?
- 是否只覆盖了窄领域,而推理时遇到"未见过"的问建议:扩大数据集规模、清洗低质量样本、增加多样化覆盖。
2. 模型层面
-
基座模型本身是否容易幻觉?
- 有些大模型本来就事实性较差,LoRA 无法根本修复。
-
LoRA rank / α 参数是否过小?
- 表达能力不足,导致模型无法学到可靠约束。
-
是否考虑了 PEFT 以外的方法?
- 比如 Adapter、Prefix Tuning,某些任务比 LoRA 更合适。
建议:调大 LoRA rank,或者尝试混合参数高效微调方法。
3. 训练策略层面
-
训练目标是否合理?
- 仅 SFT(监督微调)可能让模型"会说话",但不会"说真话"。
-
是否做了对齐训练(RLHF / DPO / contrastive loss)?
- 没有对齐,模型更容易随便编造。
-
是否检查过过拟合?
- 训练集上表现很好,但验证集/推理时出现幻觉 → 过拟合信号。
建议:在 SFT 后补充对齐训练,引入 fact-check loss 或 RLHF。
4. 推理层面
-
解码策略是否过于自由?
- Temperature 太高、top-p 太大 → 输出更随机 → 幻觉增多。
-
是否提供了足够的上下文?
- 提示词没给足背景,模型就会凭空填补。
-
是否尝试过工具调用 / RAG?
- 纯模型生成往往难以保证事实性,可以加外部知识库检索。
建议:
-
降低 temperature(如 0.2~0.5),收紧 top-p。
-
优化 prompt,加入"不要编造,如果不知道就回答不知道"。
-
加入 RAG(检索增强生成),让模型有知识支撑。
总结路径
-
先看数据 → 够不够、准不准。
-
再看 LoRA 参数 → rank、适配能力。
-
再看训练方式 → 是否仅做了 SFT,缺乏对齐。
-
最后看推理设置 → 解码参数、上下文、工具辅助。