虽然语言模型在解决下游任务时非常高效,无需监督,但它们仍然面临一些实际挑战。LLM幻觉是其中之一,并且是一个非常重要的挑战。当语言模型产生幻觉时,它生成的信息看似准确,但实际上是错误的。在这篇文章中,我们将介绍三种减少这些幻觉并在生产中保持更可靠的LLM的实用方法。
减少LLM幻觉有三种实用方法:
- 高级提示:当你想依赖模型的预训练知识时,可以通过优化prompt内容减少幻觉;
- 数据增强:当需要的知识并不包含在预训练知识之中时可以使用这种方法。常见的情况是你需要模型处理一些垂直领域的内容。
- 微调模型:当你有标准化任务和足够的训练数据时,可以考虑该方法。
这些方法各有不同的技术,接下来将要介绍这些方法。
一、高级提示
如果你的用例主要依赖于模型的预训练知识,并且不需要使用特定领域的知识,你可以采用高级提示方法。这些高级提示技术可以引导模型更好地理解当前任务以及你想要得到的输出。具体包括
- 指示模型避免添加虚假信息:一个流行的做法是明确指示模型不要传播虚假或无法验证的信息。这个指示通常会被添加到“system prompt”中。例如“如果你不知道问题的答案,请不要分享虚假信息”。当然这个技巧和模型的能力有关系,有些模型即使添加了显示的提示仍然会犯错。
- Few-shot prompt: 少样本提示通过提供少量具体示例来引导模型的响应,从而减少LLM幻觉。这种方法有助于模型专注于特定主题,使其更容易掌握上下文并遵循所提供示例的格式。然而,其效果取决于这些示例的质量;不准确或有偏见的示例可能会导致准确性降低,有时还会引发更多的幻觉。请尽量保证给出的数据样例是准确并和当前任务完全相关的,这样更有助于提升模型的效果,减少幻觉
- Chain of thought 思维链提示: 思维链提示引导LLM在提供最终答案之前生成推理步骤。你可以简单地指示LLM“逐步思考”,或者你可以提供你希望LLM遵循的实际推理示例。然而,思维链可能会引入一些新挑战,其中之一是潜在的幻觉推理。常见的提示如先让模型进行任务拆解,之后再分步解决问题,或者干脆就是最简单的“step by step”类的提示。
二、数据增强
数据增强通过为预训练模型配备其不知道的专有数据或外部工具/知识的方式,减少模型的幻觉。如果你直接询问模型一些他不了解的内容,他很有可能编造一些虚假的内容,便出现了幻觉。这里介绍了两种增强模型响应并减少幻觉的方法,这些方法实现起来相比调整prompt更为复杂。
- 检索增强生成(RAG):RAG是一种特定技术,其中模型的预训练知识与专有数据的检索系统相结合。该系统主动搜索存储信息的向量数据库,以找到可用于模型响应的相关数据。RAG可以实时调用并利用专有数据,以提高响应的准确性和相关性。想要使用这种方法最好有整理过的专业相关知识以供检索。
- 使用外部工具(tool-use): 将工具与LLM集成也可以减少幻觉。一个好消息是,像那些足够智能的语言模型,可以将函数调用串联在一起,使用多个工具进行链式操作,收集数据,并计划和执行给定任务。这些工具可以包括数据库调用、API调用、执行数据处理的脚本,甚至用于特定任务(如情感分析、翻译等)的独立模型,这将进一步提高输出的准确性。处理这个过程并不简单,需要大量的测试和实验
三、微调模型
当你有标准化任务和充足的训练数据时,微调被认为是减少幻觉最有效的方法之一。要开始微调,你需要收集大量高质量的指令-回答对,然后对不同的基础模型和各种超参数(如学习率和训练周期数)进行实验,直到找到最适合你用例的最佳质量。现在你已经了解了减少LLM幻觉的各种方法,记住选择适合你的任务的技术取决于几个关键因素非常重要。你应该考虑你的项目目标、可用的数据,了解LLM幻觉发生的原因,以及你的团队是否有能力开发LLM技术。你还可以在设置中结合更多的方法,如微调和使用额外工具,以获得更好的结果。
以上便是本文介绍的减少幻觉的常用方法,如果想了解更多相关信息,可以点击这里进行查看。
延展阅读:
如何使用Ollama与AnythingLLM零成本搭建本地知识库?
如何利用KtConnect简化Kubernetes开发调试?
咨询方案 获取更多方案详情