ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

训练 1.25 亿参数模型实现钢琴自动续写,多策略优化显著提升 AI 续写效果

训练 1.25 亿参数模型实现钢琴自动续写,多策略优化显著提升 AI 续写效果 训练一个 1.25 亿参数的模型实现钢琴自动续写简而言之训练了一个 1.25 亿参数的 Transformer 模型实现钢琴演奏实时自动续写在 iPhone 15 上约每秒 108 个音符。显著改进源于找到合适 MIDI 表示方法、清理训练数据以及训练后添加直接偏好优化DPO。大约一年前有想法经 14 次实验效果满意。有 MIDI 键盘和 iPhone/iPad可免费下载 RollTab 应用。一些声音样本每个音频开头是提示旋律随后是模型续写部分有《宝可梦真新镇》《最终幻想 VI泰拉主题曲》《致爱丽丝》等示例。MIDI 文件的构成MIDI 文件与 MP3 等音频格式不同存储音乐为事件序列如按键按下、释放、延音踏板状态改变等事件通常组织成多个音轨此项目专注钢琴续写保留类似钢琴素材移除或简化其他部分。如何对音乐进行分词训练 Transformer 模型需将 MIDI 事件转换为离散序列。直接映射方式词汇表规模大常见改进方法是用语法分解表示还尝试过其他表示方法有不同优缺点。最终确定表示方法为 NOTE(音高, 起始时间差, 持续时间, 力度)无单独 TIME_SHIFT 事件静音通过起始时间差表示和弦用多个起始时间差 0 的音符表示按音高排序。Transformer 每次完整推进一个音符的音乐生成使大模型在 iPhone 上速度快。内部每个音符有五个分类字段有各自词汇表时间量化为固定步长音符标记是所有嵌入总和模型有单独输出头字段间有嵌套解码器。延音踏板不添加延音踏板事件在预处理阶段将延音效果融入音符持续时间虽失去踏板操作信息但使建模问题简单模型只需预测音高、起始时间、持续时间和力度。数据集搜索大量公开数据集关注古典音乐数据质量参差不齐编写清理脚本。最终数据集含几十万份 MIDI 文件约代表 3 亿个音符事件。数据处理流程包括选钢琴素材、移除或简化异常多音轨混合、过滤、去重、分组等。扩大数据集规模效果不佳清理和筛选数据更重要。训练最初训练对五个输出头交叉熵损失计算后相加可分别跟踪准确性。训练目标有局限性交叉熵不能很好代表完整续写听觉效果。采用数据增强方法如全局转调、统一节奏缩放等。主要训练三种规模模型小型适合快速实验中型表现更好大型性能更佳但提升幅度不大正让中型模型达大型模型质量水平。表现最好的基础模型在字段间用计划采样虽增加验证损失但改善续写效果。评估起初评估靠亲自聆听用不同数量音符提示生成续写后手动比较无提示生成效果不一。编写自动评估指标但不足以选最佳模型。最终用 Gemini 3.5 Flash 进行成对评估构建偏好数据集用于 DPO。评估分续写得分和听觉得分将续写得分作为 DPO 主要信号。直接偏好优化DPO预训练后 DPO 改进最大让模型更可靠。生成多个续写选较好和较差的进行 DPO 训练使选中续写更可能出现与原始模型保持接近度。经 DPO 处理后超 69% 的续写更受青睐。不同 β 值对模型性能有不同影响“共识”数据集产生最好结果。未成功的尝试很多尝试未成功如音符开启/关闭表示方法偏差大、语法屏蔽标记流速度慢等。打包部署将 PyTorch 模型导出为 Core ML 格式权重量化为 INT8首次启动慢。模型在最多 512 个音符上下文训练支持更长演奏会话接近限制时保留最近 384 个音符重建上下文。用旋转位置编码Core ML 未直接暴露查询、键和值。结论项目有趣起初避免读文献后与现有文献比较。目前效果不完美有循环、短提示处理困难等问题可想象成钢琴领域的 GPT - 2但已能享受创作过程。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进