OpenAI GPT-3 微调指南

发布时间 2023-06-26 16:46:35作者: BOTAI

本文详细介绍了 OpenAI GPT-3 模型的微调。这包括,

  • 什么是 GPT-3 微调?
  • GPT-3 微调与提示
  • GPT-3 微调的定价
  • GPT-3微调要点
  • 微调 OpenAI GPT-3 AI 模型的步骤
  • GPT-3微调的场景

 

微调 GPT-3 模型意味着什么?

OpenAI 默认为您提供一些适合不同任务的 AI 模型或引擎。

但是,有时您得不到所需的输出,或者获得输出的成本太高。

微调使您能够采用 OpenAI 的基础模型/引擎并在您提供的精选数据集上训练新模型。

有人也将微调训练称为GPT-3。

GPT-3 微调如何比普通的旧提示更好?

这在很多方面都有用

  1. 它可以为您提供更高质量的输出,而提示中没有或更少的示例。
  2. 您可以在数百个示例上训练您的模型 - 每个数据集总计最多 80-100MB
  3. 由于提示中的示例较少或没有示例,您将节省 API 使用成本。
  4. 您的 API 调用延迟会更低。

GPT-3 微调定价

微调模型的费用为您尝试微调的模型成本的 50%。以下是当前微调 GPT-3 模型的费率。

MODEL TRAINING USAGE
Ada $0.0004 / 1K tokens $0.0016 / 1K tokens
Babbage $0.0006 / 1K tokens $0.0024 / 1K tokens
Curie $0.0030 / 1K tokens $0.0120 / 1K tokens
Davinci $0.0300 / 1K tokens $0.1200 / 1K tokens


正如您所看到的,就像模型的使用一样,也根据您尝试微调的模型而有所不同。

关于GPT-3微调的一些要点

该模型不会与其他 API 用户共享,并且对于对其进行微调的组织/用户来说是私有的。

然而,可能有可能与其他公司共享微调模型,从而为微调模型创建一个事实上的市场。

现在,您每月最多可以微调 10 个模型,每个数据集最多可包含 250 万个令牌或大小为 80-100MB。

 您可以使用 OpenAI 命令行工具、CURL 命令或在代码中从命令行使用微调模型。OpenAI Playground

GPT-3 微调训练数据集是什么样的

训练数据集必须采用 jsonl 格式,其中每个文档由换行符分隔。

典型的数据集 jsonl 文件如下所示。

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
....

GPT-3 微调步骤

微调 GPT-3 涉及三个步骤。

  1. 准备训练数据集
  2. 训练新的微调模型
  3. 使用新的微调模型

让我们一一介绍上述每个步骤。

  1. 准备训练数据集

与使用基本 GPT-3 模型一样,创造力在于为实用且新颖的用例提出创意示例。这就是领域知识发挥作用的地方。

这里的一个例子是用一种外语微调 GPT-3,其中基础 GPT-3 不是很好。实现此目的的一种方法是收集该语言的高质量代表性文本,然后准备数据集文件,其中提示为空且补全包含该语言的文本。

这就是数据集 jsonl 文件的样子。

{"prompt": "", "completion": "<ideal generated text>"}
{"prompt": "", "completion": "<ideal generated text>"}
{"prompt": "", "completion": "<ideal generated text>"}
....

您必须注意使每条记录少于 2048 个令牌。

准备好数据集后,通过 OpenAI 命令行工具运行它来验证它。

openai tools fine_tunes.prepare_data -f <LOCAL_FILE>

您还可以将 CSV、TSV、XLSX、JSON 或 JSONL 格式的文件传递给此工具,它将帮助您将其转换为可微调的数据集。

  1. 训练新的微调模型

从命令行程序运行以下命令来训练您的微调模型。

openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>

替换文件名并选择模型所基于的模型名称。目前的选择是curie, babbage, 或 ada.。

微调完成后,您将看到模型 ID。

  1. 使用新的微调模型。

使用新微调模型的一种方法是通过命令行

openai api completions.create -m <FINE_TUNED_MODEL> -p <YOUR_PROMPT>

您也可以在代码中使用它,例如在 Python 中

import openai
openai.Completion.create(
    model=FINE_TUNED_MODEL,
    prompt=YOUR_PROMPT)

该模型也将出现在OpenAI Playground的模型列表中。

微调GPT-3的场景

现在您知道微调 OpenAI GPT-3 AI 模型意味着什么以及如何进行它,您可能会考虑可以在哪些场景中使用微调模型。

以下是在以下环境中使用微调 GPT-3 模式的一些用例

个性化电子邮件生成器

根据您发送的电子邮件准备数据集,这些电子邮件都是您自己发起的,并使用本文前面提供的步骤进行回复。在此数据集上微调 DaVinci  模型。您现在将拥有一个个性化电子邮件生成器 GPT-3 AI 模型,它将在为您撰写电子邮件时遵循您的风格。然后,您可以直接在GPT-3 Playground中使用此模型,或使用代码将其集成到电子邮件客户端中

以某人的风格说话的聊天机器人

假设您希望能与一位著名作家交谈,例如艾萨克·阿西莫夫或卡尔·萨根。现在,您可以通过在这些作者撰写的书籍和文章上微调 GPT-3 模型来接近它。

在许多此类用例和场景中,微调 GPT-3 AI 模型确实非常有用。

结论

就是这样。这就是在 GPT-3 中微调新模型的方法。是否微调模型或采用普通的旧提示设计将完全取决于您的特定用例。在选择一种能够在更多场景中为您提供最高质量输出的方法和 GPT-3 引擎之前,请先尝试几种方法和 GPT-3 引擎。