使用 GPT-Neo 和 Hugging Face Accelerated Inference API 进行少样本学习

Hugging Face 详细介绍了如何使用 GPT-Neo 和 🤗 Accelerated Inference API 实现少样本学习,使开发者能够以极少的标注数据执行 NLP 任务。这种方法通过在推理时提供少量示例来引导模型预测,从而克服了对大型数据集的需求障碍。

理解 NLP 中的少样本学习

少样本学习是指为机器学习模型提供极少量的训练数据——通常是在推理时提供几个示例——而不是使用需要大型标注数据集的标准微调。在自然语言处理 (NLP) 中,大语言模型 (LLMs) 利用其在海量文本数据集上的预训练,隐式地学习各种任务,使其能够在极少引导的情况下泛化到先前未见过的任务。

一个少样本 NLP 提示词由三个主要部分组成:

  • Task Description:对目标的简洁指令(例如,“Translate English to French")。
  • Examples:展示预期输出的一组小型演示(例如,“sea otter => loutre de mer")。
  • Prompt:模型需要完成的新示例的开头(例如,“cheese => ")。

研究表明,随着模型参数数量的增加,少样本提示能力通常会提高。

GPT-Neo:一个开源替代方案

GPT-Neo 是由 EleutherAI 开发的一系列基于 transformer 的语言模型,旨在成为 GPT-3 的开源许可等效模型。这些模型是在 Pile 数据集上训练的,这是一个大型且文档详尽的文本语料库。由于这种训练方式,GPT-Neo 预计在与 Pile 数据集分布一致的文本上表现最为有效。

通过 🤗 Accelerated Inference API 进行部署

🤗 Accelerated Inference API 是一个托管服务,允许用户在 Hugging Face Model Hub 的 10,000 多个公开模型以及私有模型上运行推理。该 API 在 CPU 和 GPU 上均提供加速,与标准的开箱即用的 Transformers 部署相比,提供高达 100 倍的加速。

要将 GPT-Neo(特别是 2.7B 参数版本)集成到应用程序中,开发者可以使用简单的 POST 请求发送到推理端点,并使用特定参数来控制生成:

  • max_new_tokens:限制生成的 token 数量。
  • temperature:控制输出的随机性;较低的值会产生更具确定性的文本,而较高的值会增加随机性。
  • end_sequence:一个停止序列(例如,“###"),用于防止模型生成超出预期答案的文本。

实践实施洞察

由于 GPT-Neo (2.7B) 比 GPT-3 (175B) 小约 60 倍,它在零样本问题上的泛化效果不如后者。为了获得高质量的结果,GPT-Neo 通常需要在提示词中提供 3-4 个示例。当提供足够的示例时,模型能更好地理解任务并遵循 end_sequence 以进行受控文本生成。

负责任的使用与偏见缓解

少样本学习对预训练期间习得的关联非常敏感,这可能导致自动化歧视。例如,一个情感分析提示词可能会由于训练数据中固有的偏见,将短语 "I'm a disabled happy person" 错误地分类为 "Negative"。

为了最大限度地降低风险,Hugging Face 建议遵循以下最佳实践:

  • Transparency:告知用户其体验的哪些部分是由 ML 输出驱动的。
  • User Control:提供退出机制以及让用户提供反馈或覆盖模型决策的机制。
  • Monitoring:积极跟踪模型失败的情况,特别是对于可能受到不成比例影响的群体。
  • Human-in-the-loop:避免在没有人类监督的情况下使用模型对用户做出自动决策,这符合 GDPR 等法规,这些法规要求对自动化决策提供解释。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch