查尔斯·福斯特

在 Finetune,我们正在构建 AI 解决方案来解决教育技术领域一些最具挑战性的问题,包括自动内容生成和 AI 驱动的学习资源分类和推荐。由于我们的工具必须处理的主题涵盖从 K-12 到劳动力发展,因此我们正在大力投资能够扩大模型覆盖范围广度和深度的方法。这种方法的关键组成部分是灵活的方法,用于在通用模型不足的领域训练专用神经网络。在这篇博文中,我想分享我们探索这些方法的一些历程。

微调

神经语言模型的典型微调涉及同时优化其所有可训练参数,对于 GPT-J 等网络来说,这些参数可能达到数十亿。在这样的规模下,微调和推理过程都不是小事,因此很难广泛部署。在我们自己的调查中,几个关键问题似乎最为突出:

  • 仅仅运行这些变压器模型就已经达到了 GPU 内存(VRAM)的限制,并且在微调期间,优化的参数数量与消耗的额外内存量之间存在直接关系。
  • 通过修改网络中的所有参数,预训练期间学习到的信息流可能会被破坏,从而导致遗忘和少样本能力的丧失。
  • 为每个用例提供定制的多 GB 模型会产生不可接受的延迟和成本负担。

这些综合问题促使我们探索近期文献中的其他方法来调整我们的神经语言模型。幸运的是,在过去的一年里,自然语言处理研究领域已经开发出一系列方法来降低定制预训练语言模型行为的成本。

及时调整

我们最初采用的方法称为“提示调整”“软提示” (Lester 等人,2021 年)。在这种方法中,网络的预训练参数保持不变。相反,我们在输入提示标记前面添加少量可学习的嵌入向量(通常为 10 到 20 个),并使用微调数据集上的常规语言建模目标调整这些嵌入。这些嵌入并不代表语言标记;我们可以将它们视为密集的上下文存储,网络可以通过注意力机制对其进行调节,因为它会对序列中的标记进行预测。


提示调整只会给模型增加很小的运行时成本,因为软提示在千字节范围内,并且可以并行运行在网络中。这些功能使它们对于服务许多并发用户具有吸引力,正如该技术在AI 讲故事中的最新部署所表明的那样。然而,将软提示集成到流行的框架(如 HuggingFace 的transformers)中是复杂的,因为接口主要设计为对 token 索引序列而不是密集向量进行操作。此外,随着在软提示和生成之间添加更多上下文,我们开始看到软提示和 token 上下文的条件强度之间的不平衡。保留在运行时灵活添加数百个上下文 token 的能力对我们来说很重要,因为它在项目创作过程中提供了额外的细粒度可控性杠杆。如果我们想引导模型专注于教科书特定页面的内容,或者创作阅读理解项目,或者提供少量示例,那么长篇语境化就很重要。

低阶适配器 (LoRA)

后来,我们过渡到了一种称为LoRA低秩适配器(Hu 等人,2021) 的方法。这项技术是由微软研究 GPT-3 大小模型的研究人员开发的,并以早期的适配器方法为基础。如果我们将转换器视为使用每个残差层逐步细化其标记潜在状态,则适配器的概念是在给定层上向这些潜在状态添加一个小的、与输入相关的增量(初始化为无操作)。然后,这种温和的推动能够通过强调与任务相关的输入部分来调节其下游行为。


低秩适配器是一种针对低秩子空间的适配器,它可以减少我们需要训练的新参数数量(从 D 2到 2 × D × r,其中 D 为数千)。与软提示一样,我们冻结网络的原始参数以保留它们包含的来自预训练的任何知识,并且只调整这些新的适配器参数。在我们的内部测试中,我们看到了来自 LoRA 的良好指标。除了使我们能够在较小的硬件预算上调整大型模型之外,散布适配器层的模型还保留了其大部分原始的少样本能力,同时仍能适应目标域。值得注意的是,将低秩适配器集成到其他框架中非常简单,因为我们可以根据需要将现有的线性层换成线性 + 适配器层。

展望

为了展示我们在探索中看到的改进,下面我们分享了使用不同调整方法训练的模型的一小部分代数。这些项目都是使用与护理服务相关的三个输入提示生成的:第一个侧重于优先考虑多个客户的需求,第二个侧重于在团队环境中采取行动。

Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.

Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.

Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.

我们可以观察到,虽然基线模型中的最佳项目在很大程度上是流畅且逻辑连贯的,但它们往往约束不足(如 #1)或需要很少的护理领域知识(如 #3)。与基线项目相比,来自提示调整和低秩适配器模型的项目在刺激、词干和选项中包含更多细节。主题与领域相关,需要护理管理方面的特定知识,而不是仅仅依靠背景知识。此外,来自低秩适配器模型的项目具有更一致的形式。例如,这些项目始终指“客户”而不是“患者”,这与评估中可能出现的语言一致(比较 #5 与 #1 和 #3)。它还成功地跟踪了场景中对多个人的引用(比较 #6 与 #4)。

领域覆盖范围、文体一致性和逻辑连贯性的改进可以转化为神经语言模型实用性的显著提升。这只是一个开始:随着技术的成熟,人们将发现更多方法来大规模创建定制的、可控的自然语言模型。随着这些方法的发现,我们将继续将学术界、行业和独立研究的最佳成果融入 Finetune 产品中。

真诚感谢 Nick Koprowicz、Jesse Hamer、Saad Khan 和 Ogden Morse 在撰写本篇博文过程中提供的善意、有益的反馈。

参考

Hu, EJ、Shen, Y.、Wallis, P.、Allen-Zhu, Z.、Li, Y.、Wang, S. 和 Chen, W. (2021)。Lora:大型语言模型的低秩自适应。arXiv 预印本 arXiv:2106.09685。

Lester, B.、Al-Rfou, R. 和 Constant, N. (2021)。规模的力量,实现参数高效的快速调优。arXiv 预印本 arXiv:2104.08691。