获取 AX Code · 免费文档

本页译自英文文档。命令、标识符和示例保持原样。运行时 7.24.5 · SDK 2.6.9。 英文原文

Tiel Coder 原生预填充与解码测量

状态:历史本地快照 最近审阅:2026-09-21 负责人:AX Code 维护者 日期:2026-09-19 范围:AX Code 选定的两个 Tiel 包、AX Engine 对比 MTPLX、Apple M3 Max 128 GiB

排名已被取代。 2026 年 9 月 20 日的四机原生 API 活动是当前的 Tiel 对比 MTPLX 比较,其中包括默认包在 M5 Max 上的完成速度 194.88 tok/s,以及 Cyber-Tiel 的峰值解码 249.01 tok/s。见 Tiel 对等摘要。请把本页保留为 9 月 19 日的 M3 Max 阶段快照(引擎自报为 7.4.0;三次的中位数)。不要混用这些表。

这些结果保留原始的 agentic 配置档基线。随后的 Tiel MTP 配置档比较 测量 AX Code 现在选定的 auto 配置档,包括其随工作负载变化的权衡。

新的 Tiel 包在两个被测运行时上都以活动 MTP 运行。AX Engine 的源码构建在四个用例上达到 47.36–58.53 解码 token/秒;MTPLX 达到 92.13–96.26。预填充大约为 1,190–1,446 token/秒。这些是 Apple M3 Max、128 GiB 上的原生推理阶段测量,不是 AX Code 或 OpenCode 的端到端编码吞吐。

构建要求: 已安装的 Homebrew AX Engine 7.4.0 无法以 Engine(MlxMtpRequiredButUnavailable) 启动 Tiel。下方 AX Engine 结果使用提交 51137c71a6794964d52c32c95e275c0923ed8d0b 的优化本地构建,其中加入了 Tiel MTP 命名空间加载器修复。该构建仍自报为 7.4.0。其结果并不能证明现有 Homebrew 二进制文件或已发布版本提供支持。MTP 仍然必需;不包含禁用 MTP 的回退运行。

结果

每个值都是三次试验的中位数。所有试验恰好生成 256 个 token,并报告缓存输入 token 为零。预填充和解码都使用每秒 token 数。

模型 输入 token AX Engine 预填充 AX Engine 解码 MTPLX 预填充 MTPLX 解码
Tiel Coder,短 458 1,255.61 57.03 1,207.01 92.27
Tiel Coder,上下文 3,182 1,424.24 55.25 1,279.48 96.26
Cyber-Tiel Coder,短 483 1,226.86 58.53 1,189.60 95.09
Cyber-Tiel Coder,上下文 3,207 1,446.19 47.36 1,427.62 92.13

解码差异存在于 AX Code 智能体循环之前、输入匹配的直接运行时请求中。因此这次本地比较定位的是运行时层面的差异;它并不把某个单一内核或策略指认为原因。这些配置之间的预填充要接近得多。没有运行禁用 MTP 的对照,因此这不是对 MTP 加速的测量。

本报告附有 已清理的输入、全部 24 份试验回执、阶段计数器、模型修订以及客户端接受结果。

精确产物与环境

模型 Hugging Face 仓库 修订
Tiel Coder(AX Code 默认) 仓库 AutomatosX/AX-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP 5ab39b24bfd7f65203be9b7823b1840486f58b6d
Cyber-Tiel Coder 变体 仓库 AutomatosX/AX-Cyber-Tiel-Coder-35B-A3B-MLX-AXQ-MXFP4-MTP fe05e871ec69ad9ae8eac01fd285555514ac7daf
  • AX Code 源码:205cb556b;选择使用 mlx 以及发布者的 MXFP4 权重。
  • 主机:Apple M3 Max,137,438,953,472 字节内存;macOS 27.0,构建 26A428。
  • AX Engine:51137c71a6794964d52c32c95e275c0923ed8d0b 的 release 配置档构建,MLX 0.32.2。服务器 SHA-256:1fbe7fc50ea16448f98350616273214c0475bffb3ef509fceb3f8849163e97f5。
  • MTPLX:2.11.3,MLX 0.32.2,Python 3.12 环境。
  • 两个运行时读取每个模型相同的共享 Hugging Face 快照。模型下载、权重加载和服务器启动不计入阶段计时。

这些包是开发用重新量化。这些测试不认证模型质量、数值一致性、长上下文行为、其他硬件或未来发行版的性能。它们不能替代历史上的 Qwen3.8 真实客户端矩阵,后者使用了不同模型并测量了不同边界。

测量方法

提示要求一个通用的 TypeScript LRU 缓存和测试,前面有 8 或 96 个合成的 TypeScript 函数。消息保存在 JSON 回执中。每个模型的固定分词器使用 enable_thinking=false 和 add_generation_prompt=true 渲染其官方聊天模板。得到的整数 token 原样发送给两个后端。AX Engine 的 /tokenize 输出也对照这些 ID 做了检查。Cyber-Tiel 的模板增加了身份文本,因此多出 25 个 token;同一模型内跨后端的输入是匹配的。

请求使用 temperature 0.55、top-p 1、top-k 0、seed 0,以及 256 token 上限。每个后端在被测试验之前会收到一次显式的 64 token 预热。MTPLX 还会执行其正常的启动/后台预热。预热不算试验。运行顺序为 MTPLX/Tiel、AX Engine/Tiel、MTPLX/Cyber-Tiel、AX Engine/Cyber-Tiel。同一时间只有一个推理后端处于活动状态;编译在被测试验开始前完成。这一小样本固定顺序并不是耐力测试或平衡的热研究。

AX Engine 使用原生 /v1/generate,并带 input_tokens 和 max_output_tokens。MTPLX 使用流式 /v1/completions,带整数数组 prompt,随后是 /metrics。这样避免两个服务器之间客户端提示组装和聊天模板渲染的差异。有上限的输出是吞吐工作负载,不是完整代码正确性测试。

测量 AX Engine MTPLX
预填充时长 ax_mlx_prefill_wall_us / 1e6 prompt_eval_time_s
预填充速率 未缓存输入 token / 预填充时长 prefill_compute_tok_s,对照 new_prefill_tokens / prompt_eval_time_s 审计
解码时长 ax_mlx_decode_wall_us / 1e6 decode_elapsed_s
解码速率 (output_tokens - 1) / decode duration;首个输出属于预填充 decode_tok_s,对照 completion_tokens / decode_elapsed_s 审计
缓存证据 用 AX_MLX_PREFIX_CACHE_MAX_ENTRIES=0 禁用前缀缓存;复用 token 为零 SSD 会话缓存关闭;每次完成的缓存 token 为零
MTP 证据 必需策略、活动模型起草器、正的已接受 token、报告的直接回退步数为零 generation_mode=mtp,深度 3,正的起草与接受计数

原生解码计数器的首 token 边界略有不同;它们按其实际公式报告,而不是改标成相同的计时器。两种速率都不用总 HTTP 请求时长去除输出。MTPLX 的原生 TTFT 保留在 JSON 中;AX Engine 的非流式探测不测量传输 TTFT。

运行时配置

AX Engine 使用通用的 agentic 推测配置档、32,768 token 上下文、对外公布的 8,192 token 输出预算、调度器宽度 2,048,以及一个并发请求。没有应用密集的、特定于 Qwen3.8 的 AX Code 环境覆盖。其获准的 MTP 深度为 3;引擎的正常起草门控保持活动。

等价的启动参数,其中 SNAPSHOT 设为相应的固定快照,MODEL 设为其 AX Code 别名:

AX_MLX_PREFIX_CACHE_MAX_ENTRIES=0 /path/to/fixed/ax-engine-server \
  --host 127.0.0.1 --port 18439 --model-id "$MODEL" \
  --mlx --mlx-model-artifacts-dir "$SNAPSHOT" \
  --mlx-mtp-policy required --speculation-profile agentic \
  --mlx-mtp-disable-ngram-stacking --max-concurrent-requests 1 \
  --max-batch-tokens 2048 --max-output-tokens 8192 \
  --block-size-tokens 16 --total-blocks 2048

mtplx serve --model "$SNAPSHOT" --model-id "$MODEL" \
  --host 127.0.0.1 --port 18442 --no-auth --agent-rewrites off \
  --max-tokens 8192 --context-window 32768 --reasoning off \
  --no-stats-footer --ssd-session-cache off --warmup-tokens 64 \
  --strict-warmup --fan-mode default --generation-mode mtp --load-mtp --depth 3

MTPLX 使用空的隔离配置。AX Engine 模型清单由其固定的、仅本地的下载器准备;发布者的模型权重和 MTP 张量予以保留。两种配置都没有为了得到结果而禁用 MTP。

AX Code 工具接受情况

另一次 AX Code 源码运行要求每个模型用 read 工具读取 probe.txt 并只返回其内容。状态和配置是隔离的。AX Engine 使用显式环回连接到被测源码服务器。这些运行不计入原生阶段表。

模型 运行时 完成读取 最终答案中的正确标记 严格的仅输出格式
Tiel AX Engine 源码 是 是 否;附加了正文和一个代码围栏
Tiel MTPLX 是 是 是
Cyber-Tiel AX Engine 源码 是 是 否;附加了正文和一个代码围栏
Cyber-Tiel MTPLX 是 是 是

四个客户端进程都成功退出并完成了一次真实的 read 调用。两次 AX Engine 运行未满足更严格的输出格式要求,因此这不是全绿的行为或编码质量认证。它们的提示、工具载荷、默认采样和聊天处理属于客户端/运行时路径,不同于 token 匹配的阶段基准。这些测试没有调整云端、CLI、私有 GPU 或 AX Trust 的行为。

另一次受管的 providers ax-engine start 调用省略了模型参数,并选择了 tiel-coder-35b-axq-mxfp4,位于固定修订,带有 mlx。其实时状态报告了工具支持、required/required 的 MTP 策略、活动 MTP、27 个起草 token 和 23 个已接受 token。受管服务器随后成功停止。这使用了隔离的 AX Code 状态以及现有辅助程序的 AX_ENGINE_SERVER=/absolute/path/to/fixed/ax-engine-server 覆盖;没有替换用户已安装的二进制文件和提供方配置。启动包含加载器修复的构建时,可以对 pnpm run dev 设置相同的覆盖。

目录变更通过了 11,374 项确定性测试,跳过 17 项,外加 208 项 SDK 测试、259 项脚本测试(跳过 94 项)、递归类型检查、仓库结构检查和 TUI 检查。使用新默认值之前,见 模型选择与运行时要求。