我们先看下面这个图:
简单理解大模型是通过海量训练数据训练出来的,它的能力非常强,但是有时候会给出错误的回答。那产生错误的原因可能是什么呢?
1.提问错误(提示工程)
在我们提问的方式不对的情况下,大模型可能会给出不合理的回答,利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理能力。
2. 缺乏相关知识(检索增强-RAG)
另外一个原因可能是大模型的虽然是通过海量数据训练,但它的训练数据大部分是互联网公开数据,且数据有时效性,一些垂直领域的知识和实时性的知识它是缺乏的。利用检索增强(RAG)先检索相关知识,把相关知识通过prompt提供给大模型,再生成答案往往能得到解决。
3. 模型能力不足(微调)
大模型的在通用场景时有不错的能力,但是可能会缺乏特定领域的解决能力,例如:医学、金融领域等。通过提供特定领域的知识对模型进行微调训练,让模型记住特定领域的知识,可以有效减少对应领域的幻觉。
附录
-
提示工程(Prompt Engineering)
- 是什么?
- 提示工程是通过精心设计输入给语言模型,以获得更好的输出结果。
- 适合场景:
- 当你需要快速尝试不同任务,或者不想修改模型时。
- 适用于生成文本、回答问题等任务。
- 是什么?
-
检索增强生成(RAG)
- 是什么?
- RAG结合了信息检索和文本生成,首先从数据库中检索相关信息,再用生成模型产生答案。
- 适合场景:
- 当需要结合外部知识库或文档进行回答时。
- 适用于问答系统、文档摘要等。
- 是什么?
-
微调(Fine-tuning)
- 是什么?
- 微调是在特定任务或数据集上进一步训练预训练模型,使其更适合特定应用。
- 适合场景:
- 当你有特定领域的数据,并希望模型在该领域表现更好时。
- 适用于情感分析、特定领域的文本生成等。
- 是什么?
对比表格
特性 | 提示工程 | RAG | 微调 |
---|---|---|---|
操作难度 | 低 | 中 | 高 |
灵活性 | 高 | 中 | 低 |
依赖数据 | 无需额外数据 | 需要外部知识库 | 需要特定领域数据 |
适应性 | 一般 | 高 | 高 |
响应速度 | 快 | 中 | 慢 |
开发成本 | 低 | 中 | 高 |
适用场景 | 快速原型开发 | 需要外部信息的复杂任务 | 特定领域的精准任务 |
应用场景选择
-
使用提示工程:
- 当需要快速试验不同任务,或在没有特定数据的情况下进行文本生成。
-
使用RAG:
- 当任务需要结合外部文档或知识库来提供更准确的信息时。
-
使用微调:
- 当有足够的特定领域数据,并需要模型在该领域达到最佳性能时。
参考资料:
- 通俗易懂理解提示工程、RAG和微调
- 提示工程指南