OpenAI GPT-3 微调指南
本文详细介绍了 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 微调如何比普通的旧提示更好?
这在很多方面都有用
- 它可以为您提供更高质量的输出,而提示中没有或更少的示例。
- 您可以在数百个示例上训练您的模型 - 每个数据集总计最多 80-100MB
- 由于提示中的示例较少或没有示例,您将节省 API 使用成本。
- 您的 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 涉及三个步骤。
- 准备训练数据集
- 训练新的微调模型
- 使用新的微调模型
让我们一一介绍上述每个步骤。
- 准备训练数据集
与使用基本 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 格式的文件传递给此工具,它将帮助您将其转换为可微调的数据集。
- 训练新的微调模型
从命令行程序运行以下命令来训练您的微调模型。
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
替换文件名并选择模型所基于的模型名称。目前的选择是curie, babbage, 或 ada.。
微调完成后,您将看到模型 ID。
- 使用新的微调模型。
使用新微调模型的一种方法是通过命令行
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 引擎。