模型蒸馏

使用蒸馏技术改进较小的模型。

模型蒸馏允许您利用大型模型的输出来微调较小的模型,使其能够在特定任务上实现类似的性能。此过程可以显著降低成本和延迟,因为较小的模型通常效率更高。source

以下是它的工作原理:source

  1. 使用store参数来存储它们。
  2. 使用大型和小型模型评估存储的完成项,以建立基线。
  3. 选择要用于蒸馏的 stored completions,并使用它们来微调较小的模型。
  4. 评估微调模型的性能,以查看它与大型模型的比较情况。

让我们通过这些步骤来了解它是如何完成的。source

存储大型模型的高质量输出source

蒸馏过程的第一步是使用大型模型生成良好的结果,例如o1-previewgpt-4o符合你的标准。生成这些结果时,您可以使用store: trueChat Completions API 中的选项。我们还建议您使用 metadata 属性来标记这些完成,以便以后轻松筛选。source

然后,可以在 dashboard 中查看和筛选这些存储的完成。source

存储大型模型的高质量输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import OpenAI from "openai";
const openai = new OpenAI();

const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [
    { role: "system", content: "You are a corporate IT support expert." },
    { role: "user", content: "How can I hide the dock on my Mac?"},
  ],
  store: true,
  metadata: {
    role: "manager",
    department: "accounting",
    source: "homepage"
  }
});

console.log(response.choices[0]);

使用store: true选项,则完成将存储 30 天。您的完成项可能包含敏感信息,因此,您可能需要考虑创建一个具有有限访问权限的新项目来存储这些完成项。source

评估以建立基线

您可以使用存储的完成来评估较大模型和较小模型在任务中的性能,以建立基线。这可以使用 evals 产品来完成。source

通常,大型模型在评估中的表现会优于小型模型。建立此基线可以让您衡量通过蒸馏/微调过程获得的改进。source

创建训练数据集以微调较小的模型

接下来,您可以选择存储的补全子集作为训练数据,以微调较小的模型,例如gpt-4o-mini.将存储的补全过滤到你想用来训练小模型的补全,然后点击 “Distill” 按钮。几百个样本可能就足够了,但有时数千个样本的更多样化范围可以产生更好的结果。source

distill results

此作将打开一个对话框以开始微调作业,并将您选择的完成项作为训练数据集。根据需要配置参数,选择要微调的基本模型。在此示例中,我们将选择 GPT-4o-mini 的最新快照source

fine tune job

配置完成后,点击 “Run” 开始微调作业。该过程可能需要 15 分钟或更长时间,具体取决于训练数据集的大小。source

评估微调的小模型

微调工作完成后,您可以对其运行 evals 以查看它与基本小型和大型模型的叠加情况。您可以在 Evals 产品中选择微调模型,以使用微调的小模型生成新的完成。source

eval using ft model

或者,您还可以存储微调模型生成的新聊天补全,并使用它们来评估性能。通过不断调整和改进:source

  • 训练数据的多样性
  • 大型模型的提示和输出
  • 评估分级机的准确性

对于特定的任务子集,您可以将较小模型的性能提升到与大型模型相同的级别。source

后续步骤

将大型模型结果提取到小型模型是改进模型生成结果的一种有效方法,但不是唯一的方法。查看这些资源以了解有关优化输出的更多信息。source