DeepSeek GRPO实现信息提取

自 DeepSeek R1 发布以来,我一直在复现它,以下是我获得的早期见解。

我主要关注信息提取,特别是零样本文本到图形提取。这是一项任务,当给出实体和关系类型列表时,我们会从目标文本中提取实体列表及其之间的关系。

文本到图输出的示例

{
    "entities": [
        {
            "id": 0,
            "text": "Microsoft",
            "type": "company"
        },
        {
            "id": 1,
            "text": "Satya Nadella",
            "type": "person"
        },
        {
            "id": 2,
            "text": "Azure AI",
            "type": "product",
        }
    ],
    "relations": [
        {
            "head": "Satya Nadella",
            "tail": "Microsoft",
            "type": "CEO of"
        },
        {
            "head": "Microsoft",
            "tail": "Azure AI",
            "type": "developed"
        }
    ]
}

这是一项相当复杂的任务,尤其是对于小型生成语言模型而言。如果我们不通过所需的实体和关系类型来限制输出,并允许模型自由地从文本中提取所有实体和关系,语言模型可以相对较好地完成此任务。但是,当我们根据实体和关系类型来设定输出条件时,它就变成了语言模型的噩梦。从我的实验来看,很难以监督的方式训练小型语言模型,以便根据输入的实体类型有条件地从文本中输出图形。强化学习方法给了我们希望,所以让我们详细讨论一下。

强化学习与监督学习的不同之处在于,我们不会明确告诉模型要采取哪些行动来实现理想的里程碑。在我们的例子中,里程碑是一个正确提取的图形,考虑到输入的实体和关系类型,而行动是模型生成的标记。我们可以直接告诉模型如何通过最大化以理想格式生成输出的概率来重现这个图形,比如说 JSON。

许多人都谈到思考的重要性,这是强化学习为 LLM 领域带来的主要推动力之一,虽然许多论文表明,一系列的思维可以提高模型的性能,但思考可以提高性能似乎很合理。然而,我认为强化学习的其他几个属性可能会产生重大影响。但首先让我们讨论一下 DeepSeek 引入的 GRPO 方法。我将团队使用的损失函数放在下面。

我不会深入研究数学,而是从高层次的角度讨论它的含义。基本上,我们为给定的问题生成一组候选解决方案,并根据获得的奖励最大化返回问题解决方案的概率。此外,借助 KL 收敛组件,我们尝试最小化与作为起点的原始模型之间的偏差。

这样的训练算法可以带来有趣的特性,例如,考虑到模型分配了相对较高的生成概率,我们强制模型生成多个解决方案,这些解决方案对于给定的问题而言是先验硬否定。因此,从某种意义上说,模型在训练期间既看到了正面的例子,也看到了负面的例子。

此外,正如 Andrej Karpathy 指出的那样,直接标记示例无法强制模型利用其知识来推断一些新出现的属性,例如“顿悟”时刻:

“模型永远无法通过 1(通过模仿)来学习这一点,因为模型的认知和人类标记者的认知是不同的。人类永远不会知道如何正确地标注这些类型的问题解决策略,甚至不知道它们应该是什么样子。它们必须在强化学习过程中被发现,因为它们在经验和统计上对最终结果有用。”

RL 的另一个有趣特性是,我们可以优化不同的目标并手动控制它们的影响,例如,如果我们发现我们的模型在关系提取方面遇到困难,我们可以为正确提取关系生成的示例分配比其他特征更高的奖励。

那么,让我们讨论一下我们究竟是如何训练使用 GRPO 进行文本到图形推理的模型的,你可以看到一个可视化图表:

训练过程包括三个主要阶段:合成数据生成、监督训练和强化学习 (RL) 训练。每个阶段都在提高模型执行结构化信息提取的能力方面发挥着至关重要的作用。

1、合成数据生成

为了启动该过程,我们从数据收集开始,收集与目标域相关的各种文本源。文本到图形生成步骤由 Llama 70B 结构化生成提供支持,可将非结构化文本转换为基于图的表示。然而,这一步并不完美,因此,选择和扩充数据对于过滤低质量的提取和丰富数据集以更多样化的结构至关重要。

此外,我们输入结构化预测 JSON 数据,并将它们和文本输入 DeepSeek-R1 Lla​​ma 70B,以生成可以解释提取过程的思路链。

我们尝试了启用和禁用思考的模式,发现小模型很难发现一些有趣且重要的思考策略。

2、监督训练

在开始强化学习之前,考虑到我们使用小模型,需要额外的监督训练来推动模型返回数据以正确的格式,我们仅使用了 1k 个示例。

3、使用 GRPO 进行强化学习

单独的监督训练并不能完全解决问题,尤其是在根据预定义的实体和关系类型调节模型输出时。为了解决这个问题,我们采用组相对策略优化 (GRPO) 进行强化学习。

GRPO 训练过程使用多个奖励函数优化模型:

  • 格式奖励确保输出遵循结构化格式,其中思维被封装在相应的标签中(在思维模式的情况下)。
  • JSON 奖励专门验证格式良好、机器可读的 JSON 表示,以及其结构是否与所需格式一致。
  • F1 奖励通过将提取的实体和关系与地面实况图进行比较来评估其准确性。

强化学习阶段允许模型动态调整其生成策略,在必要时强调正确的关系提取。此外,GRPO 使模型能够生成多个候选解决方案并从正面和负面示例中学习,从而实现更强大的文本到图形提取。

下面你可以看到不同奖励随时间的变化,可以看到 F1 奖励不断增长,而 JSON 奖励由于监督预训练而迅速饱和。

该模型能够在短暂的无监督学习后提高其性能,并且通过更多的强化学习训练步骤,其性能可能会更好。

我们计划使用更大的模型和更高质量的数据进行更多实验,敬请期待。与此同时,你可以尝试我们实验中的模型之一。


原文链接:Replicating DeepSeek R1 for information extraction

汇智网翻译整理,转载请标明出处