跳转至

推理性能侦察

2026年9月4日。未更改任何生产性能默认设置。

结果

本地推理是首要优化目标,尤其是偶发的长时间停顿,而不仅仅是中位数。较小的 Parakeet CPU 线程数表现出有潜力的中位数,但最坏情况不稳定,因此未被采纳。

现有的转录基准提供重复运行、JSONL 计时输出和词错误统计。其 7 月的结果是历史性的,不是本次调查的基线。

方法与限制

实验在配备 96 GiB RAM 和交流电源的 M2 Max 上进行。其他构建和应用程序处于活动状态。这些是探索性结果,并非受控的前/后性能声明。未使用麦克风、个人音频、剪贴板、实时提供程序或更新器。

发布基准使用了固定目录中的 Parakeet Unified English Q8_0 和 Cohere Q8_0,六个合成英语片段,一次语料预热和七次测量通过。模型顺序为 Parakeet、Cohere、Cohere、Parakeet。片段时长约为 1.5、2.6、3、19、57 和 73 秒,包括停顿。长文本来自 cohere-long-form.txt;回归脚本记录了合成过程。

两次调用中,预热中位数推理范围:

  • Parakeet:短片段 79–115 毫秒,19 秒片段 276–350 毫秒,57 秒片段 713–759 毫秒,暂停的 73 秒片段 873–896 毫秒。
  • Cohere:短片段 92–127 毫秒,19 秒片段 409–440 毫秒,57 秒片段 1,161–1,287 毫秒,暂停片段 1,436–1,463 毫秒。
  • 使用可重用系统缓存的新进程模型/会话加载,Parakeet 为 292–317 毫秒,Cohere 为 869–1,222 毫秒。这不是首次安装冷启动计时。

Parakeet 在暂停的测试样本上的一次运行耗时 7,322 毫秒,而中位数为 873 毫秒。这确定了在没有应用 UI 或粘贴路径的情况下的离群值,但不是其成因。Parakeet 还使用了比 Cohere 多很多的 CPU 时间。标准基准省略了已保存的语言/提示和生产环境的 Unified English 尾部填充,因此这些值不能从实时计时中减去以推断开销。

合成语音不是具有代表性的语言质量语料库。两个模型都将口语数字词渲染为数字,基准将其计为词编辑。不要通过接受缺失段落或撤销 Cohere 窗口修复来进行优化。

线程数实验

固定的原生 Parakeet 实现使用 Metal 编码器和 CPU 预测器/解码器。自动线程选择最多使用八个可用 CPU。原生 SessionOptions::n_threads API 允许在不更改模型权重或后端的情况下进行有界比较。

一个独立的测试框架使用相同的适配器和模型,带有词时间戳、最小填充和生产环境的 200 毫秒 Unified English 音频尾部。它测试了 3/19/73 秒的测试样本,顺序镜像:auto、1、2、4、8、8、4、2、1、auto。每个会话接收一次语料预热和七次测量通过。所有 210 个测量转录与其对应的自动线程预热完全匹配。

八线程对四线程的中位墙钟时间:

3-second fixture    // 75.38 -> 65.09 ms; 13.7% lower
19-second fixture   // 256.50 -> 225.59 ms; 12.1% lower
73-second fixture   // 852.57 -> 820.79 ms; 3.7% lower

四线程并未始终如一地改善尾部:中型测试样本的最差样本从 545 毫秒增加到 1,067 毫秒,包括 729 毫秒的解码时间。单线程在每次中位数比较中都较慢。自动和显式八线程的结果也有所不同,显示出运行顺序/主机噪声。

在任何配置中,Metal 编码器都主导了正常时间。在八线程下,编码中位数为 58/174/579 毫秒,而解码为 13/75/265 毫秒。CPU 解码导致了几个尖峰,但仅靠线程数并不能证明是修复方法。每个测试样本/配置 14 次测量太少,无法声称精确的尾部分布。独立的测试框架也没有应用实时工作线程的用户发起的 QoS 策略。

决定: 保持当前默认设置。一个有价值的确认试验将在与生产等效的 QoS、更多短语音测试样本以及分开的静默主机和争用条件下,交错进行四/八线程试验。同时记录原生 mel/编码/解码计时和转录等效性。

其他值得测量的边界

  • 模型准备会加载并预热一个候选模型,然后将其丢弃。保存后,推理工作线程会再次加载它。避免重复工作需要经过测试的所有权和激活设计,而不是移除验证或预热。
  • 可选生成将服务发现与生成请求结合在一起。在将整个延迟归因于提供程序之前,请分开测量这些计时。
  • 粘贴在 100 毫秒稳定等待之前发布快捷方式。恢复单独运行,HUD 具有完成动画。完成时间、视觉消失和目标应用文本消耗是不同的测量。
  • Sparkle 检查不是推理依赖项。UI 轮询和原生更新器初始化在优化之前需要自己的延迟/能量测量。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 hex19/hex