Skip to content

模型蒸馏(distillation)是用大模型输出训练小模型的技术,但许多模型明确禁止将输出用于训练。OpenRouter 通过 is_trainable_text 属性标记允许蒸馏的模型,并提供两种筛选方式:在 Models 页面开启 "Distillable" 过滤器查看,或在 API 请求中设置 provider.enforce_distillable_text: true(OpenRouter SDK)强制只路由到允许蒸馏的模型。注意:OpenRouter 提供的蒸馏信息是尽力而为,使用前仍需验证具体许可协议。

模型蒸馏(Model Distillation)是用大模型(教师模型)的输出来训练小模型(学生模型)的技术,广泛用于构建轻量化专用模型。但使用模型输出训练其他模型,需要遵守模型提供方的服务条款——部分模型明确禁止此类用途。

为什么蒸馏合规很重要

未经授权使用模型输出进行训练可能:

  • 违反服务条款(Terms of Service),导致账号被封
  • 在某些情况下构成法律风险

OpenRouter 通过 is_trainable_text 属性追踪各模型是否允许其输出用于训练,帮助你保持合规。

OpenRouter 提供的蒸馏信息是尽力而为(best-effort)。建议始终核实具体使用场景对应的许可协议,因为许可要求可能因使用方式不同而有所差异。

在模型页面筛选可蒸馏模型

最直观的方式是使用 Models 页面的 Distillable 过滤器

  1. 访问 openrouter.ai/models?distillable=true
  2. 过滤器面板中的 Distillable 选项已设为 Yes,只显示允许蒸馏的模型

通过 API 强制路由到可蒸馏模型

对于需要编程化控制的场景,在 API 请求中使用 enforce_distillable_text 参数:

字段类型默认值说明
enforce_distillable_textboolean设为 true 时,只路由到允许文本蒸馏的模型

当设为 true 时,若当前没有可用的可蒸馏模型,请求会返回错误。

使用 OpenRouter SDK(TypeScript):

typescript
import { OpenRouter } from '@openrouter/sdk';

const openRouter = new OpenRouter({
  apiKey: '<OPENROUTER_API_KEY>',
});

const completion = await openRouter.chat.send({
  model: 'meta-llama/llama-3.1-70b-instruct',
  messages: [{ role: 'user', content: 'Explain quantum computing' }],
  provider: {
    enforceDistillableText: true,
  },
  stream: false,
});

使用原始 API(直接调用):

json
{
  "model": "meta-llama/llama-3.1-70b-instruct",
  "messages": [{ "role": "user", "content": "Explain quantum computing" }],
  "provider": {
    "enforce_distillable_text": true
  }
}

使用场景

场景说明
构建训练数据集收集模型输出用于训练/微调自己的模型时,确保只使用授权来源
蒸馏流水线从大模型提炼小模型时,强制过滤可蒸馏的教师模型
合规工作流有严格合规要求的组织可通过 API 参数在所有请求中强制执行蒸馏政策

更多文档

常见问题

Q: is_trainable_textis_trainable_image 是同一回事吗?

A: 不是。is_trainable_text 指允许将文本输出用于训练,is_trainable_image 指允许将图像输出用于训练(针对多模态模型)。两者是独立的许可属性,需要分开判断。

Q: OpenRouter 如何确认一个模型是否允许蒸馏?

A: OpenRouter 参考各模型的官方许可文档和服务条款,手动标记 is_trainable_text 属性。这是尽力而为的标注,不代表法律意见,使用前仍需自行核实。

Q: 如果 enforce_distillable_text: true 时没有可用模型,会发生什么?

A: 请求会返回错误,说明当前没有符合条件的可蒸馏模型可供路由。建议在设置此参数时,同时通过 Models 页面预先确认目标模型是否支持蒸馏。