ByteByteGo Newsletter

The New American AI Model Designed to be Customized

8.5内容质量
The New American AI Model Designed to be Customized

TL;DR · AI 摘要

Thinking Machines发布的新AI模型Inkling通过混合专家架构和独特设计实现36%的token节省,支持用户自定义训练。

核心要点

  • Inkling采用66层混合专家架构,每层256专家仅激活6个
  • 结合局部与全局注意力层实现百万级token上下文窗口
  • 模型权重在Hugging Face开放,支持用户自定义训练

结构提纲

按章节快速跳转。

  1. 介绍Thinking Machines新模型Inkling的发布及其核心优势。

  2. 详细解析Inkling的混合专家架构和上下文窗口实现方式。

  3. 说明位置编码方法选择及多模态输入处理机制。

  4. 分析模型开放授权对行业自定义训练的推动作用。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Inkling模型架构
    • 混合专家架构
      • 66层/256专家/6激活
    • 上下文窗口
      • 局部+全局注意力层
      • 百万token窗口
    • 开放授权
      • Apache 2.0许可证

金句 / Highlights

值得收藏与分享的关键句。

#AI模型#机器学习#定制化#Hugging Face
打开原文

新一代可定制的美国AI模型

ByteByteGo

2026年8月18日

将您的标记使用量减少高达36%(赞助)

AI编码代理可以快速生成代码,但CI检查通常发生在代理完成工作之后。Sonar Vortex改变了这一模式。Sonar Vortex在代理的编码循环内部运行,在代理编写代码前为其提供架构上下文,并在生成代码时实时验证输出。内部测试发现标记消耗量降低36%,缺陷数量减少92%。

探索Sonar Vortex

Thinking Machines于2026年7月15日发布了一个名为Inkling的模型。其介绍中提到的几个有趣要点如下:

  • Inkling有66层,每层包含256个专家,其中仅6个会针对任意给定标记激活[2]。
  • 大多数层只能访问最近文本的短窗口,而少数层可以访问全部内容[1]。
  • 词位置使用了一种大多数实验室多年前就弃用的编码方法。

由前OpenAI首席技术官Mira Murati创立的Thinking Machines将使命描述为构建能够延伸人类意志和判断力的AI。公司列出了四个研究方向:训练强模型、构建允许用户用自己的知识定制模型的工具、开发扩展人机通信渠道的接口,以及发布关于模型构建方法的研究[3]。

在Inkling之前,公司推出了Tinker,这是一个用于微调开源模型的服务[4]。Inkling是公司首次从零开始训练的模型[1]。模型权重托管在Hugging Face上,采用Apache 2.0许可证[2],因此任何人都可以下载并在自己的数据上重新训练模型。

在本文中,我们将探讨Thinking Machines在构建Inkling时做出的各种选择。以下是本文将涵盖的内容:

  • 专家混合(MoE)架构,以及9750亿参数与410亿参数之间的差距。
  • 在百万标记上下文窗口背后,局部注意力层与全局注意力层的组合方式。
  • 位置编码,以及Thinking Machines选择使用的一种较旧方法,而非当前标准方法。
  • 图像和音频如何在没有单独预训练编码器的情况下进入模型。
  • 思维努力(Thinking Effort),一个在0到1之间的设置,用于调整模型在回答前进行推理的程度。

免责声明:本文基于来自多个来源的公开信息。文末有参考文献。如果您发现任何不准确之处,请在评论中指出。

下图展示了这五个要素在模型中的位置。

基础知识

让我们先理解四个对理解架构至关重要的关键术语:

  • 标记(Token):标记是文本的一段。模型处理的文本片段通常比句子更小,也通常比单词稍小。例如,“Inkling was released in July”这句话可能被拆分为六个标记,常见词每个占一个标记,而罕见词可能被拆分为两个或三个标记。
  • 参数(Parameter):参数是模型内部存储的一个数字,通过训练学习得到。当您读到某个模型有9750亿参数时,这意味着文件中存储的独立数字数量。每个参数最初都是随机噪声,经过数百万次调整后,模型才能生成有意义的文本。
  • 训练:其原理是向模型展示文本,让模型预测下一个标记,将预测结果与实际出现的标记进行对比,然后根据预测结果的优劣方向对所有参数进行微调。每次调整的幅度和方向称为梯度,而一次性计算所有梯度的过程称为反向传播。通过在数万亿个标记上重复这一过程,参数最终会收敛到能够产生有效预测的值。
  • 层:它是标记处理过程中的一个阶段。Inkling 模型中共有 66 层按顺序堆叠 [2]。标记的表示形式进入第 1 层,经过变换后传递到第 2 层,依此类推,直到第 66 层,之后模型预测下一个标记。每一层都包含两个相同的部分:一个注意力步骤,用于从序列中的其他标记获取信息;一个前馈步骤,用于对结果进行变换。

稀疏性

Inkling 将模型存储成本与运行成本分开计算,这正是该模型如此庞大却仍具备可负担性的原因。

在普通变压器中,每一层的前馈步骤都是一个完整的网络,所有标记都必须经过该网络的全部处理。如果这个网络包含 50 亿个参数,那么处理每个标记时都需要使用全部 50 亿个参数。

Inkling 将单一网络替换为 256 个更小的网络,称为专家网络。对于每个标记,选择步骤会从 256 个专家中挑选出 6 个。只有这 6 个专家网络会被激活,其余 250 个专家网络在处理该标记时处于空闲状态,转而处理其他标记 [2]。这种设计模式称为专家混合(Mixture of Experts),Thinking Machines 表示他们的实现方式主要遵循 DeepSeek 发布的方案 [1][8]。

请参见下图:

通过一个简单示例来理解这一机制:

  • 假设你构建了一个包含 10 个专家的层,每个专家有 10 亿个参数,并为每个标记运行其中的 2 个专家。
  • 磁盘上的文件包含了全部 100 亿个参数,在运行模型之前必须将所有参数加载到内存中。
  • 处理单个标记时仅涉及 20 亿个参数,因此每个标记的处理成本约为同等规模普通层的五分之一。

Inkling 在规模上实现了这一设计。整个模型的参数总量达到 9750 亿个,但处理任何单个标记时仅涉及约 410 亿个参数 [1]。这相当于模型运行部分的约 4%。

硬件需求使这一特性更加清晰。检查点是指保存所有训练参数的文件。Inkling 的全精度检查点需要至少 2TB 的 GPU 内存总容量,模型卡片显示需要八块 NVIDIA B300 显卡或十六块 H200 显卡 [2]。

Thinking Machines 还提到了量化检查点。这意味着使用较低的数值精度存储相同参数,类似于用 3.14 代替 3.14159265 以节省空间但牺牲部分精度。这种版本需要约 600GB 存储空间,可容纳在四块 B300 显卡上 [2]。

什么让 FDE 职位具有可信度?(赞助内容)

优秀的候选人会对模糊的前部署工程师职位描述持怀疑态度,仅凭头衔本身无法赢得他们的信任。

《2026 年 FDE 职位市场报告》免费提供候选人关注的内容、市场发展趋势以及雇主如何让这些职位更容易理解。

正在招聘?你也可以将职位信息发布到 forwarddeployedengineer.com,这是面向前部署工程师的专注招聘平台。

探索招聘平台

路由

/

从256个专家中挑选出六个听起来很简单,但实际上并非如此。以下是选择过程的工作原理:

  • 一个名为路由器的小型组件会为每个专家生成一个分数。
  • 每个专家都附带一个数字列表,这些列表是在训练过程中学习得到的。
  • 路由器将输入的token表示与每个专家的列表进行比较,得到一个原始数值,当两者匹配度高时数值会更高。
  • 这些原始数值可以是任意大小,因此会通过一个sigmoid函数进行处理。sigmoid是一种数学函数,它能将任意数值转换为0到1之间的值。例如输入8会得到约0.9997,输入0会得到0.5,输入-4会得到约0.018。非常大的数值会趋近于1,非常小的数值会趋近于0,其他数值则会落在中间范围。Inkling的路由器使用sigmoid函数生成专家分数[1]。
  • 评分完成后,得分最高的六个专家会运行,它们的输出会使用相同的评分作为权重进行组合。得分0.9的专家对结果的贡献会比得分0.4的专家更大。

这种方法会使特定类型的故障更有可能发生。要理解这种故障,需要考虑在数百万次训练步骤中会发生什么。假设早期偶然地专家47被选中的频率略高于平均水平。它会接收到更多token,因此会接收到更多梯度更新,从而比邻近专家更快改进。由于它表现更好,路由器会给予它更高的评分。因为评分更高,它会被选中更多次。

如果我们让这个循环持续足够长的时间,最终可能会得到一个256专家层,其中可能有20个专家处理几乎所有任务,而其他236个专家则发展不足。这种现象被称为路由崩溃。换句话说,虽然我们支付了存储256个专家的代价,但实际只获得了20个专家的能力。还有一个额外的成本。由于专家通常分布在不同的机器上,持有四个热门专家的机器可能会成为瓶颈,而其他机器则处于空闲状态[9]。

传统的解决方案是在训练目标中添加一个惩罚项,当专家使用不均衡时,这个惩罚项会增大。这意味着模型需要同时训练两个目标:正确预测下一个token,以及保持专家使用平衡。

问题是这两个目标会产生方向不同的梯度。预测梯度可能会说"增加这个参数",而平衡惩罚则会说"减少它"。其中一个会占据上风,无论哪种情况,模型都会偏离你真正想要的方向。如果我们设置惩罚强度过高,文本质量会下降。如果我们设置得太低,专家仍然会崩溃[9]。

Thinking Machines采用了一种由Wang及其同事提出的方法,该方法也被DeepSeek采用[1][8][9]。这种方法通过为每个专家保持一个单独的偏置值来完全消除冲突,这个偏置值只是简单地加到该专家的评分上。关键在于偏置的应用位置。

让我们来模拟一个token到达这种结构中的某一层的情况。假设路由器为四个专家生成了这些sigmoid评分。

专家47最近负载过高,导致其偏差下降至-0.15。这使其选择得分低于专家88,专家88取而代之。偏差改变了被选中的专家。当专家88的输出合并到最终结果时,其权重为0.80(原始路由得分),偏差被完全排除。换句话说,偏差仅影响选择过程,从不涉及权重计算,且其更新完全由一个独立于反向传播的简单计数规则完成。主要目标是降低繁忙专家的权重,同时为较少使用的专家提供机会。

结果是专家使用保持平衡,训练目标完全不会受到竞争梯度的影响。

需要特别注意的是,无论路由如何,每个标记都会运行两个额外的专家[2]。这两个专家称为共享专家,负责几乎所有标记都需要的通用处理。Thinking Machines指出,六个被选中的路由专家和两个共享专家的得分在用作权重前会一起进行归一化处理[1],这意味着所有八个专家都会被缩放到同一范围并按比例贡献。换句话说,每个标记总共运行八个专家。

注意力机制

稀疏性处理了前馈步骤的成本。注意力步骤具有独立的成本,其增长速度要快得多,Inkling通过让大多数层仅关注极少量信息来管理这一成本。

对于每个标记,模型会计算三组数字:

  • 一个查询,描述该位置需要什么类型的信息。
  • 一个键,描述该位置提供什么类型的信息。
  • 一个值,携带该位置传递的实际内容。

每个标记的查询会与所有先前标记的键进行比较。强匹配会产生高分,这些分数决定了每个先前标记的值有多少被拉入当前位置。这就是句子中代词“it”最终连接到它所指代的名词的方式。

由于每个标记都要与所有先前标记进行比较,比较次数会随着序列长度的平方增长。例如:

  • 1000个标记产生约100万次比较。
  • 10000个标记产生约1亿次比较。
  • 100万个标记产生约1万亿次比较。

Inkling支持100万个标记的上下文窗口[2],但66层每层进行1万亿次比较的总量远超任何合理硬件配置的处理能力。

这就是滑动窗口层的作用:将每个标记的注意力范围限制为固定数量的最近标记,而不是所有先前标记。如果窗口大小为1000,那么第500000个标记仅与第499000至500000个标记进行比较,然后停止。这样比较次数从50万次减少到1000次,整个序列的总比较次数呈线性增长,而非平方增长。

这引发了一个显而易见的问题:如果每一层只能看到一个小窗口,长文档第一页的信息如何传递到第400页?

Inkling以5:1的比例交替使用滑动窗口层和全注意力层[1]。vLLM项目的集成说明为这一划分提供了具体数字,将66层描述为55个滑动窗口层和11个全注意力层[7]。

信息需要穿越这十一层完整的层才能传递。例如,设想在第200个标记处存在一个对第900,000个标记处预测至关重要的事实。在第6层这个首个完整注意力层中,第900,000个位置的表示可以直接回溯并获取该事实。之后,它通过局部表示继续向前传递,在第12层和第18层等位置被刷新。这种长距离路径大约每六层出现一次,其余五层则以极低的成本处理邻近上下文。

Inkling还使用了8个键值头[1]。通常注意力机制会并行运行多次,使用不同的查询、键和值集合,每个并行副本称为一个头。通过在多个查询头之间共享少量键和值集合,可以在生成文本时减少内存占用。

请参见下图,该图以简化方式展示了这种架构:

这种方法会产生一个实际影响。长上下文模型通常能很好地处理大型文档的一般内容,但仍可能遗漏隐藏在中间的某个具体细节。

位置

处理百万级标记带来了另一个问题:模型如何表示每个标记在序列中的位置?

Thinking Machines选择了比当前标准更早的技术。这是由于模型在训练过程中从未接触过某些长度的序列。

查询与键的比较过程不包含任何关于顺序的信息。例如,“the cat bit the man”和“the man bit the cat”包含相同的五个标记,因此在没有位置信号的情况下,注意力步骤对两者会产生相同的比较结果。必须有某种方式告诉模型“cat”在某个情况下出现在“bit”之前,在另一个情况下则出现在之后。

几乎所有近期的开源模型都使用旋转位置嵌入(Rotary Position Embedding),简称RoPE。每个标记的查询和键被视为点,这些点会根据其在序列中的位置以成比例的角度进行旋转。第1个标记旋转角度较小,第500个标记旋转角度则大得多,依此类推。

这种设计的实用性在两个标记进行比较时体现出来。由于两者都根据各自的位置进行了旋转,它们之间的比较取决于这两个旋转角度的差异,而这种差异能反映它们之间的距离。

然而,这些旋转角度只在模型实际训练过的位位置上出现过。如果训练时使用的序列长度为32,000个标记,那么模型学到的每个角度都来自这个范围。当我们询问第900,000个位置时,涉及的旋转角度将超出模型经验范围。

存在一系列专门用于将RoPE扩展到训练数据范围之外的技术。

Inkling采用了类似Shaw及其同事[1][10]的相对方案。这种方法不是编码每个标记的位置,而是为两个标记之间的每个距离学习一个值,并将该值直接加到比较得分中。例如,位置5和9的标记相距4个位置,位置500,005和500,009的标记也相距4个位置。相对方案会将这两组视为相同的情况,因为无论出现在哪里,4就是4。超过某个阈值(比如128)的距离都会使用相同的已学习值,因此相距900,000个标记的配对使用的是模型在训练中无数次见过的值。无需进行任何外推。

vLLM 的说明中描述该实现为在将注意力分数转换为权重之前添加的一个学习到的相对位置项 [7]。

Thinking Machines 表示在他们的测试中,这种方法的表现优于 RoPE,并且对更长序列的外推能力更好 [1]。

卷积

Inkling 添加了一个名为卷积的小型操作,用于处理注意力机制原本需要从零开始学习的任务。

这里的卷积指的是将序列中的每个位置与前几个位置进行组合。Inkling 使用窗口大小为四 [7],因此位置 100 的数值会与位置 97、98 和 99 的数值通过一组小型学习权重进行混合。位置 101 则会与 98、99 和 100 的数值进行相同操作。这是一个成本低廉、固定且严格局部的操作。

为了更好地理解,可以考虑组成“New York”的两个词。第二个词单独存在时的含义与跟随第一个词时的含义差异很大。注意力机制可以学习建立这种联系,而且必须学习,因为注意力机制最初是一个没有内置邻近词偏好的通用比较机制。卷积则通过其结构直接提供这种局部混合,无需任何训练来发现邻近词的重要性。

Thinking Machines 将这些卷积操作放置在两种类型的位置:

  • 首先,放置在每个注意力层内部的键和值中
  • 其次,放置在注意力和前馈步骤的输出中,这些输出在重新连接到模型主路径之前 [1]。

这样做的效果是,即时上下文已经预先混合,注意力机制可以将其计算能力集中在真正需要学习的连接上。

多模态

到目前为止的所有内容都涉及文本在模型中的处理。图像和音频需要首先进入模型,而 Inkling 接受这两种输入而无需在前面单独训练编码器。

大多数多模态模型会向语言模型附加三个训练组件:

  • 一个在之前单独训练的视觉编码器,将图像转换为数字列表。
  • 一个音频编码器对声音执行相同操作。
  • 投影层随后将两者转换为语言模型使用的格式。

然而在 Inkling 的情况下,声音以 mel 频谱图形式输入,这是一种将音频表示为数字网格的标准方式。频率带沿一个轴延伸,时间的短片段沿另一个轴延伸,每个单元格保存一个响度值。三秒的音频片段会变成几百列的网格。

随后 dMel 方法将这些响度值四舍五入到一个固定级别的集合中,就像将 0.73 四舍五入到 0.7 一样 [1][11]。这就是全部转换过程。无需预先训练单独的音频模型,因为四舍五入数字不需要训练。

对于图像,图像被切割成 40x40 像素的正方形块 [1]。因此,一个 400x400 像素的图像会变成 100 个块。每个块通过一个名为 hMLP stem 的小型四层网络,该网络在块内部组合像素,并独立处理每个块 [1][12]。描述该方法的论文报告称,与最简单的替代方案相比,这仅增加了不到 1% 的计算量 [12]。

努力程度

模型在回答前进行推理的时间长度是可调节的,这一特性是通过模型训练实现的,而不是通过语言表述请求的。这会影响模型的基准测试表现。

努力程度是一个介于 0 到 1 之间的数值。文档中记载的预设值从 0(无努力)开始,依次为 0.1(最小努力)、0.2(低努力)、0.7(中等努力)、0.9(默认值)和 0.99(最大努力)[6]。这些数值之间的间隔并不均匀,这暗示该数值代表的是模型学习到的响应方式,而非单纯的 token 数量限制。

从机械实现角度看,该参数以文本形式传入。在对话开始前,系统会插入一条声明努力程度的消息,该消息会出现在所有内容之前 [6]。

推理模型在最终答案前会产生一段推理过程。这一推理阶段会消耗 token,与其它操作一样。Thinking Machines 在强化学习阶段训练了 Inkling 对努力程度参数的响应,该阶段模型会完整尝试任务并为每次尝试获得评分,然后向表现优异的方向调整。

在该阶段,Thinking Machines 在不同尝试中调整了努力程度信息,并同时调整了每生成一个 token 的成本:

  • 标记为高努力程度的尝试可以产生较长的推理过程而不会受到太多惩罚。
  • 标记为低努力程度的尝试会为每个 token 产生高额成本,因此简短答案得分更高。

通过多次尝试,系统学会了信息与收益长度之间的关联。

关于限制的一些关键点:

  • 更高的努力程度会促使模型进行更多推理,但不能保证更长或更优的回答。
  • 将努力程度设为 0 会使模型倾向于最小化推理,但不会强制执行这一规则。
  • 努力程度和最大 token 限制是两个独立设置,因此高努力程度可能需要更大的 token 限制以避免被截断。

调整努力程度参数会产生一个得分与生成 token 数量之间的曲线。在编程基准测试 Terminal Bench 2.1 上,Inkling 在生成约三分之一 token 的情况下达到了与 NVIDIA 的 Nemotron 3 Ultra 相同的得分 [1]。

权衡

我们讨论的每个设计决策都存在权衡。让我们来看一些例子:

  • 稀疏路由保持了每个 token 的成本较低,但需要将整个模型加载到内存中。尽管每个 token 的成本较低,但硬件需求依然较高。
  • 局部注意力机制使百万级token窗口变得可行,同时让大多数层仅能获取序列的局部视图。
  • 相对位置编码解决了外推问题,但这也意味着每个服务框架都必须为其编写新代码,因为现有的工具链均围绕RoPE构建[7]。
  • 开放权重仅覆盖权重本身。训练数据、具体训练方案和训练代码仍保持私有,模型卡片仅以概括性描述说明数据来源[2]。该模型可被修改,但其复现和审计仍难以实现。
  • 安全行为可通过重新训练模型进行调整。模型卡片建议在模型外围添加外部内容审核工具,而非依赖模型自身的拒绝机制,尤其适用于面向消费者的部署场景[2]。

Thinking Machines指出,目前公开和闭源的其他模型整体表现更强[1]。然而,考虑到从第一天起就支持微调的可用性,以及量化检查点降低的硬件需求,显然Inkling是专为被企业采用和适配其使用场景而设计的。

结论

在理解Inkling的设计和架构决策过程中,我们遇到了以下几个关键理念:

  • 稀疏性将存储与计算分离。总参数量决定了模型所需的内存容量,而激活参数量则决定了每个token所需的计算量。Inkling存储了9750亿参数,每次运行约410亿参数。
  • 路由机制需要平衡,而平衡机制至关重要。在选择专家时引入偏差,但在加权输出时不考虑该偏差,可在不增加训练目标竞争性的前提下实现使用均衡。
  • 长上下文处理有效是因为大多数层仅处理局部信息。Inkling运行55个滑动窗口层和11个全注意力层,长距离信息通过这11个全注意力层传递。
  • 位置编码涉及未训练长度的决策。通过编码token间的距离而非绝对位置,使得相距900,000的token对使用模型已多次见过的值进行表示。
  • 推理努力可以成为训练设置的一部分。当如此设计时,基准测试得分将只是性能曲线上的一个点,而非模型的固定属性。

References

  • Inkling: Our Open-Weights Model, Thinking Machines Lab
  • Inkling Model Card, Thinking Machines Lab
  • The Future Worth Building Is Human, Thinking Machines Lab
  • Tinker, Thinking Machines Lab
  • Interaction Models: A Scalable Approach to Human-AI Collaboration, Thinking Machines Lab
  • Thinking effort, Tinker Documentation
  • thinkingmachines/Inkling, vLLM Recipes
  • DeepSeek-V3 Technical Report, DeepSeek-AI
  • Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts
  • Self-Attention with Relative Position Representations
  • dMel: Speech Tokenization made Simple
  • Three things everyone should know about Vision Transformers