GPT、LLama、Gemini等大语言模型虽展现出强大能力,但在实际应用中仍有问题,例如在准确性、知识更新速度和答案透明度方面,仍存在挑战。
论文“Retrieval-Augmented Generation for Large Language Models: A Survey(面向大语言模型的检索增强生成技术:调查) ”
https://arxiv.org/abs/2312.10997 对解决这些问题的模型优化方法做了分类,如下图:
图:模型优化方法的比较,两个坐标轴分别是:对外部知识的需求和模型的适配复杂度。
附:这篇论文的中文翻译推荐看宝玉翻译的版本:
https://baoyu.io/translations/ai-paper/2312.10997-retrieval-augmented-generation-for-large-language-models-a-survey
一、Prompt Engineering 提示词工程
提示词工程可以分三个层次:
- 标准提示词
- Few-shot 少量示例提示词,通过提供少量的示例来让模型回答的更精准。
- XoT 提示词,例如 CoT(思维链),ToT(思维树),参看 使用思维链写Prompt
下面是一个 Few-shot prompt的示例:
A “whatpu” is a small, furry animal native to Tanzania. An example of a sentence that uses
the word whatpu is:
“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:We were traveling in Africa and we saw these very cute whatpus.
我们在非洲旅行时看到了这些非常可爱的whatpus。To do a “farduddle” means to jump up and down really fast. An example of a sentence that uses the word farduddle is:
“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:
输出:
When we won the game, we all started to farduddle in celebration.
当我们赢得比赛时,我们都开始庆祝跳跃。
二、RAG 检索增强生成
检索增强生成(Retrieval-Augmented Generation, RAG) 特指一种模式:模型在回答问题或生成文本时,首先从广阔的文档库中寻找相关信息。然后,模型使用这些找到的信息来生成回答或文本,从而提高其预测的准确度。
论文中把RAG分成三种范式:
- Naive RAG 朴素RAG, 添加相关上下文
- Advanced RAG 高级RAG,在索引/检索前/检索后做优化
- Modular RAG 模块化RAG,有机组合多种模块
下图是三种RAG范式的比较
2.1、Naive RAG 朴素RAG
Naive RAG 的准备流程如下&#