Prhub

#32951 Add Inkling-Small cookbook

原始 PR 作者 ispobock 合并时间 2026-07-31 01:59 文件变更 7 提交数 1 评论 1 代码增减 +1699 / -30

执行摘要

为 Inkling-Small 模型新增部署 cookbook

Inkling-Small 是 Thinking Machines 新推出的模型,需要官方部署文档以便用户快速上手。现有 Inkling 模型的镜像方案也需统一对齐。

本 PR 以文档为主,但其中的 _deployment.jsx 改进值得关注:它展示了如何将硬编码提示变为通用逻辑,减轻未来维护负担。适合想了解 SGLang 文档组件架构的开发者阅读。

讨论亮点

无显著讨论。PR 由 ispobock 提交,zijiexia 审核批准,无 review 评论。

实现拆解

  1. 新增 Inkling-Small 配置数据文件 docs_new/src/snippets/configs/thinkingmachines/inkling-small.jsx,导出 config 对象,包含模型名称、支持硬件、变体、量化、策略、精度标签、HF 模型仓库映射、占位符、Docker 镜像、交互式面板功能定义等,共 1260 行。
  2. 新增基准数据文件 docs_new/src/snippets/configs/thinkingmachines/inkling-small-benchmarks.jsx,导出 benchmarks 数组,为各硬件/变体/量化/策略/节点组合记录已验证的 SGLang 版本与精度指标。
  3. 新增 cookbook 页面 docs_new/cookbook/autoregressive/ThinkingMachines/Inkling-Small.mdx,引入上述配置与基准组件,提供安装说明、交互式部署面板、curl 示例和额外部署提示。
  4. 修改部署组件 docs_new/src/snippets/_deployment.jsx,将投机解码提示从仅判断 --speculative-algorithm 是否存在并硬编码为 "MTP",改为动态检测实际算法值并映射为友好名称(如 EAGLE->MTP, DSPARK->DSpark),同时新增 pinned 值提示(specPinnedHint)。
  5. 更新 Inkling 配置 docs_new/src/snippets/configs/thinkingmachines/inkling.jsx:将 Docker 镜像从 inkling-cu13 等统一为 dev-inkling-dspark 系列,简化 DSpark 备注,DSpark 配方中添加 --enable-multimodal 标志。
  6. 更新导航配置 docs_new/docs.json,在 Thinking Machines 分组下添加 Inkling-Small 页面条目。
  7. 微调 Inkling.mdx 页面(无实质内容变化)。
文件 模块 状态 重要度
docs_new/src/snippets/configs/thinkingmachines/inkling-small.jsx 模型配置 added 7.81
docs_new/src/snippets/_deployment.jsx 部署组件 modified 7.11
docs_new/src/snippets/configs/thinkingmachines/inkling-small-benchmarks.jsx 基准数据 added 6.93
docs_new/src/snippets/configs/thinkingmachines/inkling.jsx 模型配置 modified 6.09
docs_new/cookbook/autoregressive/ThinkingMachines/Inkling-Small.mdx 部署指南 added 6.02
docs_new/docs.json 导航配置 modified 3.0
docs_new/cookbook/autoregressive/ThinkingMachines/Inkling.mdx 部署指南 modified 2.96

关键符号

specAlgoName

关键源码片段

docs_new/src/snippets/configs/thinkingmachines/inkling-small.jsx core-logic

新增 Inkling-Small 模型的核心配置数据,包含所有硬件、变体、量化、策略、精度标签、HF 模型仓库映射、Docker 镜像及交互式面板定义,共计 1260 行。

// Inkling-Small 资源配置
// 此文件导出供 Deployment 组件使用的配置对象
export const config = {
  modelName: "Inkling-Small",  // 支持的硬件平台(结构与 Inkling 相同系列)
  supportedHardware: [
    "h200", "b200", "b300", "gb200", "gb300",
    "mi350x", "mi355x",
  ],  // 变体:默认与 LoRA
  variants: [
    { id: "default", label: "Default" },
    { id: "lora", label: "LoRA" },
  ],  // 量化:NVFP4 与 BF16
  quantizations: [
    { id: "nvfp4", label: "NVFP4" },
    { id: "bf16", label: "BF16" },
  ],  // 策略:每种硬件提供一个 verified 的 balanced 配方
  strategies: [
    { id: "balanced", label: "Balanced" },
    { id: "mtp", label: "MTP" },
    { id: "dspark", label: "DSpark" },
    { id: "long_context", label: "Long Context (MXFP8 KV)" },
  ],  // 节点选项
  nodesOptions: [
    { id: "single", label: "Single Node" },
    { id: "multi-2", label: "Multi-Nodes" },
  ],  // 精度标签数组(用于表格展示)
  accuracyLabels: [
    ["gsm8k_pct", "GSM8K", "%"],
    ["bfcl_pct", "BFCL (EXACT)", "%"],
    ["mmau_pct", "MMAU", "%"],
    ["mmmu_pro_pct", "MMMU-Pro", "%"],
    ["aime25_pct", "AIME25 (pass@1)", "%"],
    ["aime26_pct", "AIME26 (pass@1)", "%"],
    ["niah_512k_pct", "NIAH @512K", "%"],
    ["niah_1m_pct", "NIAH @1M", "%"],
    ["hle_pct", "HLE", "%"],
  ],  // HF 模型仓库映射:variant|quant -> repo name
  modelNames: {
    "default|nvfp4": "thinkingmachines/Inkling-Small-NVFP4",
    "default|bf16": "thinkingmachines/Inkling-Small",
    "lora|nvfp4": "thinkingmachines/Inkling-Small-NVFP4",
    "lora|bf16": "thinkingmachines/Inkling-Small",
  },
  // ... 后续 placeholder、curl、dockerImages、playgroundFeatures 等
};
docs_new/src/snippets/_deployment.jsx core-logic

修改部署组件,将投机解码提示从硬编码 'MTP' 改为动态检测算法名称,提升通用性,支持 MTP、DSpark 等。

// 检测投机解码算法名称,用于提示横幅
const specAlgoFlag = effFlags.find(
  (f) => f.split(/[\s=]/)[0] === "--speculative-algorithm");
const specMrrFlag = effFlags.find(
  (f) => f.split(/[\s=]/)[0] === "--max-running-requests");// 两种情况:标志缺失(SGLang 静默限制 48)或已固定
const mtpHint = !!specAlgoFlag && !specMrrFlag;
const specPinnedHint = !!specAlgoFlag && !!specMrrFlag;
const specMrrValue = specMrrFlag
  ? (specMrrFlag.split(/[\s=]/).filter(Boolean)[1] || "")
  : "";// 算法标签映射:将 --speculative-algorithm 的值转换为用户友好名称
const SPEC_ALGO_LABEL = {
  EAGLE: "MTP", EAGLE3: "MTP", FROZEN_KV_MTP: "MTP",
  DSPARK: "DSpark", DFLASH: "DFlash", NGRAM: "N-gram",
  STANDALONE: "standalone draft",
};// 生成算法名称,默认兜底为 "MTP"
const specAlgoName = (() => {
  if (!specAlgoFlag) return "MTP";
  const v = specAlgoFlag.split(/[\s=]/).filter(Boolean)[1] || "";
  return SPEC_ALGO_LABEL[v.toUpperCase()] || v || "MTP";
})();
docs_new/src/snippets/configs/thinkingmachines/inkling-small-benchmarks.jsx core-logic

新增 Inkling-Small 基准精度数据,覆盖各硬件和策略组合,用于部署面板的准确度展示。

// 基准数据数组:每个条目按 (hw, variant, quant, strategy, nodes) 匹配配置,
// 提供 accuracy 指标,key 对应 config.accuracyLabels
export const benchmarks = [
  { match: { hw: "b200", variant: "default", quant: "nvfp4", strategy: "balanced", nodes: "single" },
    sglang_version: "dev-inkling-dspark (b7252cc)",
    accuracy: { aime26_pct: 95.42, bfcl_pct: 76.54, mmau_pct: 76.30 } },
  { match: { hw: "b300", variant: "default", quant: "nvfp4", strategy: "balanced", nodes: "single" },
    sglang_version: "dev (cb12a15)",
    accuracy: { gsm8k_pct: 96.29 } },
  // ... 更多条目
];

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

主要风险在于:_deployment.jsx 的投机解码提示改动影响了所有使用该组件的 cookbook 页面,需确保新逻辑覆盖所有算法值;Docker 镜像标签统一可能影响现有用户锁定的版本;新增配置数据的 accuracyLabels 与基准数据需保持对齐,避免显示错误。

对用户:Inkling-Small 用户获得官方部署指南;现有 Inkling 用户看到更新后的 Docker 镜像。对系统:无代码逻辑变更,仅前端展示组件调整。对团队:增加一份维护的 cookbook,但基础设施(_deployment.jsx 组件)已通用化,后续添加新模型只需新增配置和基准数据文件。

组件通用性验证不足 镜像标签变更影响现有用户

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论