编者按:OpenAI 前几日突然在 Twitch 展开直播。此前,OpenAI 的每次 DOTA2 直播都是在这里进行的,但这次的内容不再是电子游戏了,而是直播 AI 创作的曲子。OpenAI CTO Greg Brockman 都调侃说:「六个月前我也想不到我们会把直播频道的分类从 DOTA2 换成音乐和表演」。
直播的主角是 OpenAI 新创造的作曲 AI「MuseNet」,它可以创作不同风格的、时长达 4 分钟的乐曲,风格可以根据不同的作曲者变化(巴赫、贝多芬、Oscar Peterson、Frank Sinatra、Bon Jovi)、不同的风格变化(Jazz、Albeniz、电影配乐、乡村、印度宝莱坞、迪士尼),而且乐曲中可以使用 10 种不同的乐器。「MuseNet」使用的是和前段时间 OpenAI 的文本生成模型 GPT-2 类似的大规模 Transformer 模型,而且为了增强它的长序列建模能力,「MuseNet」也使用了雷锋网 AI 科技评论刚刚介绍过的稀疏注意力技术。继上次用 GPT-2 生成接近人类水准的短文之后,OpenAI 俨然已经成为了长序列建模的小能手。
学习音乐毕竟是一件有难度的任务,不同的乐器有不同的音色,不同的曲风也有各自的微结构。所以 OpenAI 的做法是让模型学习并预测 MIDI (音符、控制参数等组成的数字音频信号,可以用 MIDI 播放器播放),而不是学习原始音频波形;同时 OpenAI 也为模型设计了对应作曲者和乐器的 token,简化数据参数。
在稀疏 Transformer 的重新计算以及优化过的核心帮助下,MuseNet 被设计为一个 72 层、具有 24 个注意力头的网络,它可以在 4096 个元素长度的内容上进行完整的注意力操作。正因为它能够处理的序列足够长,所以它可以记住曲子中的长段结构,完成段落的重复以及变化。
为了让模型更好地控制乐曲主体内容的结构,OpenAI 为模型设计了多种不同的嵌入。除了正常的位置嵌入之外,他们额外让模型学习一个嵌入,用它来追踪每个样本中已经经过的时间。这样,所有同时响起的音符都会具有同样的时间嵌入。他们还为和弦中的每个音符增加了一个嵌入(这种做法类似于相对注意力,当模型需要生成第四个音符的时候它会提供第三个音符作为参考,也就让模型更容易学习)。***,他们还增加了两种不同的结构嵌入,它们的共同作用是告诉模型某一段音乐在更大的曲目范围内的位置;其中,***个嵌入会把大段音乐分为128个部分,第二个嵌入会从127到0倒数,表示距离结尾还有多远。
模型的效果是惊人的,不仅当天的 Twitch 直播中演示的不同风格的曲目辨识度高、旋律自然,而且 OpenAI 在介绍博客中展示的混搭生成结果(从某首知名乐曲中取一个小节作为开头,然后让模型以其他的风格续写,模型会给出四种结果),以及好奇的网友们利用 OpenAI 提供的试验工具生成的乐曲都让大家无比钦佩。我们推荐大家到 MuseNet 的官方介绍页面亲自尝试混搭续写工具以及听听已有的生成乐曲。
用Lady Gaga曲风续写贝多芬的《致爱丽丝》,来自 OpenAI 技术博客
用肖邦曲风续写Adele的《Some One Like You》,来自 OpenAI 技术博客
4 月 25 日的 Twtich 作曲直播录像,此前OpenAI自己的工作人员都没有听过这些乐曲;来自 OpenAI 技术博客
OpenAI 还根据嵌入的学习结果制作了不同作曲者之间的相似度关系图,也和我们日常的认知非常相符。
在 OpenAI 的研究人员们看来,音乐生成任务的难度介于文本和图像之间,它具有和文本类似的灵活的序列结构(比如图像中可以固定地参照前 N 个元素,而文本和音乐中的这个数字大小是不固定的)。他们收集了训练数据集并尝试了不同的训练技巧。
这项研究实在是生动有趣,OpenAI 也希望大家多多参与活动,多多讨论和反馈,也帮助他们选定这项研究的下一步目标。公开参与的时间一直持续到 5 月 12 日,大家快到 openai.com/blog/musenet/ 玩玩听听看吧!
本文转自雷锋网,如需转载请至雷锋网官网申请授权。