知识生成提示进行尝试推理
随着语言模型的发展,出现了一种流行的技术是能够融合知识或信息,以帮助模型做出更准确的预测。
这种提示方式已经被 ChatGPT 等模型采用,很多时候我们不需要手动使用该方法生成知识并提示,LLM 会自动进行知识生成并判断。
2022 年 Jiacheng Liu 等的一篇论文《常识推理的生成知识提示》[1]提出这种方法, 在预测之前生成知识,将生成知识以作为提示的一部分,来帮助语言模型更好的的完成预测。
让 ChatGPT 不思考直接回答 ❌
这种提示错误揭示了LLM在执行过程中需要更多关于世界的知识的任务时的局限性。下面看一下如何通过生成知识来改进:
使用知识生成辅助提示 ❌
先生成知识:
检索增强生成 (RAG)
前面提到用语言模型生成的知识来提升推理预测的准确性。要完成更复杂和知识密集型的任务(知识在模型中不存在), 有两个方案:一是使用新知识进行微调,二是使用外部知识和语言模型结合完成。
微调很很好实现新知识的集成,但是过程复杂,并且不能使用快速变化的支持。
Meta AI 的研究人员引入了一种叫做检索增强生成(Retrieval Augmented Generation,RAG)2020[2] 的方法来完成这类知识密集型的任务。
RAG 把一个信息检索组件和文本生成模型结合在一起,基于语言模型构建一个系统,访问外部知识源实现与事实更加一性的系统, 生成的答案更可靠,还有助于缓解「幻觉」问题。
RAG 现在已经已经很广泛了,我们常见的知识库方案大多基于此实现。
我们看下论文《检索增强生成处理知识密集型NLP任务》[3]中对 RAG 的图解:
RAG 会接受输入并检索出一组相关/支撑的文档,并给出文档的来源(例如维基百科)。这些文档作为上下文和输入的原始提示词组合,送给文本生成器得到最终的输出。
这样 RAG 更加适应事实会随时间变化的情况。这非常有用,因为 LLM 的参数化知识是静态的。RAG 让语言模型不用重新训练就能够获取最新的信息,基于检索生成产生可靠的输出。
LangChain[4]、 LlamaIndex[5] 等框架都有使用 RAG 实现知识搜索的例子。大家可以翻看我之前的文章或者复制文末连接自己尝试。
引用链接
[1] 《常识推理的生成知识提示》: https://arxiv.org/pdf/2110.08387.pdf[2] 检索增强生成(Retrieval Augmented Generation,RAG)2020: https://ai.meta.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/[3] 《检索增强生成处理知识密集型NLP任务》: https://arxiv.org/pdf/2005.11401.pdf[4] LangChain: https://python.langchain.com/docs/use_cases/question_answering/how_to/vector_db_qa[5] LlamaIndex: https://gpt-index.readthedocs.io/en/latest/end_to_end_tutorials/question_and_answer.html
--- END ---

