大型语言模型(LLMs)正在不断突破AI能力的边界。每一次模型的迭代都在推理、适应性和任务执行方面展现出更好的表现,使它们在各个行业中变得不可或缺。然而,随着它们越来越多地被集成到现实世界的应用中,它们的有效性不再仅仅是在基准测试中的表现——而是它们在实际场景中服务用户的能力。这就是反馈变得至关重要的地方。没有模型是完美的,用户交互提供了洞察模型优势和劣势的宝贵信息。无论是细化响应、减少偏见还是提高事实准确性,持续的反馈循环都有助于缩小AI能力和用户期望之间的差距。

强化学习从人类反馈(RLHF):提升LLMs的广泛认可方法

强化学习从人类反馈(RLHF)是提高LLMs的最广泛认可的方法之一,模型根据人类偏好进行微调,以更好地符合用户期望。尽管RLHF被广泛讨论和记录,但对其他反馈驱动方法的关注却少得多。本文旨在填补这一空白。我们将探索LLM反馈循环,分解其关键阶段,并展示如何利用不同的反馈机制——包括有和没有微调的——来改进LLM驱动的应用。到文章结束时,你将对可用的方法有一个更清晰的理解,并掌握实施其中一种方法的实践方法。

什么是LLM反馈循环?

反馈循环是一个持续的过程,其中用户交互被收集、分析并用于细化模型。这有助于模型发展以更好地满足用户期望,提高准确性和整体可用性。这个循环的关键阶段包括:

  1. 产品部署:使LLM驱动的应用对用户可用。
  2. 反馈收集:收集显性和隐性用户反馈。
  3. 模型增强:利用反馈通过各种技术细化和优化模型。

反馈技术

一旦收集到反馈,理解各种实施技术变得至关重要。大致上,这些技术分为两类:需要微调模型的技术,以及不需要微调的技术。

需要微调的技术

微调涉及通过在目标反馈数据集上进一步训练来适应特定任务或领域的现有模型。这个过程细化了模型的能力,增强了其在专业应用中的性能,并适应了用户需求。

强化学习从人类反馈(RLHF)

RLHF是一种LLM直接从人类反馈中学习以改进其响应的技术。这种方法通过使用强化学习算法,将模型输出与人类偏好对齐。

  • 涉及的步骤
  • 偏好数据收集:收集人类标注的反馈以创建反映用户偏好的数据集。
  • 奖励模型训练:使用监督学习开发奖励函数,预测人类偏好的输出。
  • 策略优化:利用强化学习算法微调LLM,根据奖励模型优化其输出。

强化学习从反思反馈(RLRF)

RLRF使LLM能够通过自我反思和自我评估来增强其输出,无需外部/人类输入。这种方法允许模型通过评估自己的输出来迭代改进其响应。

  • 涉及的步骤
  • 初始响应生成:LLM产生初始输出。
  • 自我反思和评估:模型评估其响应,提供描述性反馈并评分其性能。
  • 迭代细化:基于自我评估,LLM细化其输出。
  • 微调:使用细化的输出和相关反馈微调模型,以提高未来性能。

LLMRefine

LLMRefine是一种推理时优化方法,专注于通过识别和纠正生成文本中的具体错误来细化LLM输出。这种方法提高了响应的质量,而无需大量重新训练。

  • 涉及的步骤
  • 初始响应生成:LLM生成初始响应。
  • 错误识别:一个专门的模型指出文本中的缺陷,提供关于它们的性质和位置的详细反馈。
  • 输出细化:细化模型(可能是与初始LLM相同或不同的LLM)使用反馈生成改进的文本。
  • 迭代增强:多次重复步骤2和3,以实现最高质量的输出。

不需要微调的技术

这些方法在不改变模型底层参数的情况下增强模型性能。示例包括提示工程、增强型检索生成(RAG)和技术,这些技术利用自我评估而不是人类反馈。

自我细化(Self-Refine)

Self-Refine方法使LLM能够通过自我生成的反馈改进其输出,无需额外的训练数据或模型调整。

  • 涉及的步骤
  • 初始响应生成:LLM产生初始输出。
  • 自我反馈生成:将输出反馈回同一个LLM,提示其批评其响应。
  • 输出细化:使用其反馈,LLM修订其响应。
  • 迭代过程:重复步骤2和3,直到输出达到期望的质量。

MemPrompt

MemPrompt允许LLM在不需要重新训练的情况下从用户反馈中学习,通过维护过去互动和更正的动态记忆。

  • 涉及的步骤
  • 记忆维护:系统记录模型误解查询并收到纠正性反馈的实例。
  • 反馈检索:对于新查询,系统在记忆中搜索与过去误解相关的相关反馈。
  • 知情响应生成:原始查询以及检索到的反馈和提示一起提供给LLM,以生成改进的响应。

可回溯的自回归推断(RAIN)

RAIN通过整合自我评估和修订生成文本中特定段落的能力,增强LLM的对齐,而无需额外的数据或模型微调。

  • 涉及的步骤
  • 初始响应生成:LLM对输入查询生成响应。
  • 自我评估:模型评估其响应,根据属性如有帮助性和无害性为不同段落打分。
  • 回溯和修订:LLM“回溯”到文本中的先前点,重新生成得分低的段落。
  • 迭代细化:重复此过程,使模型能够更紧密地与人类价值观对齐,而无需改变其参数。

实施自我细化(Self-Refine)

现在我们已经探讨了不同的技术,让我们看看如何实施Self-Refine。这个实施应用了一个迭代细化过程,以会议记录为例。LLM首先生成一个初始摘要,然后根据预定义的指南对其进行评估,确保保持正确的格式并满足所有要求,然后产生最终细化的版本。

步骤1:导入所需库

我们从LangChain和LangGraph导入必要的模块。

步骤2:初始化LLM

我们使用Ollama定义一个LLM实例,指定llama3作为模型。要设置Ollama并下载所需的模型,请参考这里提供的步骤。

步骤3:定义生成和反思节点

定义生成节点和反思节点,这些节点将指导LLM生成会议记录摘要并根据提供的指南进行验证。

步骤4:定义停止标准

自我细化作为一个连续的生成和反思循环,定义一个停止标准至关重要,以防止无限迭代。这个标准可以根据特定需求进行调整。

步骤5:构建迭代图

创建一个基于图的工作流,以迭代生成和细化响应。

步骤6:定义生成和反思提示

这个系统提示指导LLM根据记录生成会议记录摘要,并根据提供的指南进行验证。

步骤7(可选):查看图

使用以下代码,可以生成工作流的图形表示,以可视化自我细化过程的结构。

步骤8:执行自我细化过程

最后,记录通过图进行迭代处理。LLM首先生成摘要,反思节点对其进行审查并提供反馈,直到不需要进一步更改为止。

通过遵循这些步骤,你可以构建一个自我细化循环,通过结构化反馈迭代改进AI生成的响应。在应用反馈驱动方法时,正确的技术选择取决于可用资源和正在解决的具体问题。一些方法通过重新训练提供更大的控制和定制,而其他方法则在不修改模型的情况下提供灵活性。随着AI的不断发展,利用有效的反馈机制将在增强现实世界应用的可靠性、适应性和整体性能方面发挥关键作用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注