当前位置: 首页 > article >正文

模型蒸馏(ChatGPT文档)

文章来源: https://chatgpt.cadn.net.cn/docs/guides_distillation

模型蒸馏

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

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

以下是它的工作原理:

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

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

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

蒸馏过程的第一步是使用像 OR 符合您的标准的大型模型产生良好的结果。生成这些结果时,您可以使用 Chat Completions API 中的选项存储它们。我们还建议您使用 metadata 属性来标记这些完成,以便以后轻松筛选。o1-previewgpt-4ostore: true

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

存储大型模型的高质量输出
JavaScript (英语)
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]);

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

评估以建立基线

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

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

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

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

distill results

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

fine tune job

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

评估微调的小模型

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

eval using ft model

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

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

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

文章来源:模型蒸馏 -- ChatGPT中文版|ChatGPT开发文档|ChatGPT教程|ChatGPT官方文档


http://www.kler.cn/a/531346.html

相关文章:

  • 【leetcode练习·二叉树拓展】快速排序详解及应用
  • 图像处理之图像灰度化
  • 蓝桥杯备赛经验帖
  • FBX SDK的使用:基础知识
  • 【UE】 APlayerState
  • 【MySQL】语言连接
  • npm知识
  • Smart contract -- 钱包合约
  • 代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 17.3.5 添加水印
  • Linux环境下的Java项目部署技巧:项目部署
  • 评估分类模型性能:ROC曲线和AUC值
  • 麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置
  • PentesterLab 24周学习计划
  • 【游戏设计原理】97 - 空间感知
  • 【翻译】OpenAI Deep Research (2025年2月2日OpenAI发布)
  • Spring中@Conditional注解详解:条件装配的终极指南
  • 8、面向对象:类、封装、构造方法
  • pandas中的关系型连接操作
  • 1.5 Go切片使用
  • 浅谈量化感知训练(QAT)
  • 机器学习--学习计划
  • Intel 与 Yocto 项目的深度融合:全面解析与平台对比
  • 变形金刚多元宇宙
  • 【汽车电子软件架构】AutoSAR从放弃到入门专栏导读