一人工程 · solus opus

← 全部作品

一人工程simedwAI 音乐RollTabAnticipatory Music TransformerStanford CRFMThickstuniPhoneMIDI

不蒸馏 Stanford:simedw 走自己的路

二零零三年 François Pachet 在 Sony CSL Paris 写了 Continuator——用 hidden Markov 给钢琴续写。 二零二三年六月 Stanford CRFM 的 John Thickstun、David Hall、Chris Donahue、Percy Liang 发了《Anticipatory Music Transformer》。 二零二六年八月 simedw 在 HN 放了 RollTab 的帖子——一个 iPhone MIDI 钢琴续写 app。

三件事都在做「让机器续写钢琴」,每个十年换一套语言。

一、Anticipation:让模型「预知未来」

Stanford 的核心思想叫 anticipation。 不是从左到右生成,而是训练模型同时预测「下一个音」和「未来某个已经写好的音」。把 input 和 output 交错放在一个序列里,让模型既能从过去外推,也能从未来内推。

这就让模型可以做普通 autoregressive 模型做不了的事:infilling——你写一段旋律,让模型把中间填上;你写前奏加结尾,让模型生成中段。

Stanford 把它定位成 co-composition tool:作曲家、AI、交互式反馈循环。

硬件:Cloud TPU。 模型:360M parameters(Medium)。 训练:800k steps。 数据:Lakh MIDI(CC-BY 4.0,但 Stanford 自己警告「很多 MIDI 是流行歌的派生作品,版权状态比协议字面意思更严」)。 许可:Apache 2.0(Stanford 提醒商业部署有版权风险)。 作者承认模型会记忆训练数据——「第三个生成的伴奏几乎和原曲一样」。

二、RollTab:让 iPhone 给钢琴续写

simedw 的 RollTab 不做 infilling。 它做的是:你在 iPhone MIDI 键盘上按几个音,模型接着往下弹。

模型尺寸:125M parameters。 硬件:4 × RTX 4090。 时间:半年。 平台:iPhone 15 + Core ML + INT8 量化。 速度:108 notes/sec。 许可:app 上免费 + 闭源权重。 数据:自己清洗的 ~300M note events,去重加按密度音域筛加同曲不同版本归到同一 split。

bravura 在 HN 评论里推荐 simedw 蒸馏 Anticipatory Music Transformer。 simedw 没走那条路。

三、为什么 simedw 不蒸馏 Stanford

不是不知道 Stanford。HN 评论里就提到了,simedw 看了 Stanford 那篇博客。 不是做不了 anticipation。 是问题不一样。

Stanford 2023 simedw 2026
场景 作曲家的 co-composition tool 钢琴手的 Copilot for piano
用户交互 在 DAW 里写片段 → AI 填中间 在 iPhone 上按几个音 → AI 接下去
输入 5 秒旋律加 15 秒全编曲 4–32 note prompt
输出 15 秒 infill 续写到停
模型尺寸 360M 125M
硬件 Cloud TPU 4 × RTX 4090 + iPhone Core ML INT8
数据 Lakh MIDI(CC-BY,版权警告) 自己清洗 300M piano-only notes
部署 论文 + Apache 2.0 权重 + Colab 闭源 iOS app
framing co-composition Copilot for piano

Stanford 的 stopping time 数学性质要求 input 出现在 output 之后——这是 infill 的根。 simedw 的 prompt-then-continue 不需要这层结构。

把 Anticipatory Music Transformer 蒸馏进 iPhone,意味着:360M → Core ML INT8、Lakh MIDI → 自己清洗的 300M piano notes、infilling UI → DAW integration、Cloud TPU → iPhone NPU。 每一步都是工程开销,每一步都没有用户价值——iPhone 用户不需要 infill,他们按下去、AI 接着弹。

四、一人工程绕开研究范式的两种姿势

simedw 不是不读论文。 他读了,也回 HN 评论了。 他选择不走 Stanford 的路,因为他要解决的问题不在 Stanford 的问题集里。

一人工程对 research lab 范式有两种绕开姿势:

第一种:找到自己的问题。 Stanford 的用户是「有 Logic 或 Ableton workflow 的作曲家」。 simedw 的用户是「在 iPhone 上弹琴的人」。 同一个主题,不同的 user,不同的产品。 Naitik88 在 HN 说 simedw 像是「另一个音乐家实时响应」,不是 autocomplete——这是 Duet framing 而不是 Copilot framing。两个 framing 都成立,都属于 simedw;simedw 自己选的是更工程化的那个。

第二种:接受约束,把它变成具体的事。 Stanford 用了 Cloud TPU。 simedw 用了 4 × RTX 4090。 simedw 训完之后还得在 iPhone 上跑——这意味着 125M 是上限,不是选择。 模型尺寸小 → 数据必须精(清洗胜过堆量,simedw 自己说 5× 数据更差)。 模型尺寸小 → 表征必须对(5 个 field 一次性出 token,grammar-masked 慢不行)。 模型尺寸小 → 训练目标必须调(scheduled sampling 验证 loss 上升但 rollout 质量变好;DPO β=0.03 consensus 69.05%)。

每一道约束都被 simedw 变成了一件具体的事做出来。

五、口袋里的钢琴续写

如果 Pachet 2026 年重做 Continuator,他大概在 iPhone 上——因为音乐创作工具的下一个十年不在 DAW 里,在口袋里。 simedw 已经在口袋里了。

不是把 Stanford 的 360M 蒸馏进 iPhone。 是在 iPhone 上重新发明钢琴续写。

solus opus