0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用语言模型技术创作人工智能音乐

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-10-11 09:32 次阅读

诸如 NVIDIA Megatron LM 和 OpenAI GPT-2 和 GPT-3 等语言模型已被用于提高人类生产力和创造力。具体而言,这些模型已被用作编写、编程和绘制的强大工具。相同的架构可以用于音乐创作。

在这些领域中使用语言模型需要大型数据集。从 50GB 的未压缩文本文件开始生成语言并不奇怪。这意味着需要 GPU 计算日志来有效地训练模型,以进行快速开发、原型制作和迭代。

这篇文章介绍了在人工智能音乐领域使用 NVIDIA DGX-2 站台 DGX-2 极大地促进了数据预处理和训练语言模型的进步。

人工智能音乐数据集

计算音乐数据集有两大类。一种方法涉及对表示为纯音频( WAV 文件或 MP3 )的音乐进行训练。第二种方法不适用于纯音频。相反,您可以将任何类似于乐谱的内容映射到标记表示。

通常,这需要标记哪个音符开始( C 、 D 、 E 、 F 、 G ),经过多少时间(例如四分之一音符或八分之一音符),以及哪个音符结束。在研究和应用中, MIDI 文件已被证明是丰富的音乐素材来源。 MIDI 标准被设计用于电子存储音乐信息

这些实验使用了几组 MIDI 文件,包括:

JS Fake Chorales Dataset 有 500 首 J.S.巴赫风格的假合唱

运行 MIDI 数据库 以及其干净的子集(分别为 176K 和 15K MIDI 文件),混合了各种类型和风格

MetaMIDI 数据集 具有 463K MIDI 文件,同样具有不同的类型和风格

MIDI 格式是非人类可读的音乐表示,为了训练因果语言模型,必须将其映射到可读的标记表示。对于此表示,我们从 mmmtrack 编码 。

这种编码将音乐片段表示为层次结构。一段音乐由不同乐器的不同曲目组成:例如鼓、吉他、贝司和钢琴。每个轨道由几个条组成( 4 、 8 或 16 条,取决于使用情况)。每个条都包含一系列音符开启、时间增量和音符关闭事件。尽管这种层次结构可以被视为一棵树,但可以将所有内容编码为一个线性序列,使其成为仅用于解码器的语言模型的理想表示。

下面的例子是一首四部分的合唱,以钢琴卷的形式呈现。合唱团有四种声音:女高音、中音、男高音和低音。女高音和女低音是女声,男高音和男低音是男声。通常,四种声音同时演唱,但音调不同。

图 1 显示了带有音调颜色编码的语音。女高音为绿色,中音为橙色,男高音为蓝色,低音为红色。您可以将这些具有时间和音调维度的音乐事件编码为一系列符号。

pYYBAGNEx66AEXtkAAGkbp3xBJk628.png

图 1.使用音高颜色编码可视化生成的音乐标记示例

在 mmmtrack 编码之后,低音部分将映射到以下令牌表示:

PIECE_START TRACK_START INST=BASS BAR_START NOTE_ON=61 TIME_DELTA=4 NOTE_OFF=61 NOTE_ON=59 TIME_DELTA=2 NOTE_OFF=59 NOTE_ON=58 TIME_DELTA=2 NOTE_OFF=58 NOTE_ON=56 TIME_DELTA=4 NOTE_OFF=56 NOTE_ON=54 TIME_DELTA=4 NOTE_OFF=54 BAR_END BAR_START NOTE_ON=59 TIME_DELTA=2 NOTE_OFF=59 NOTE_ON=58 TIME_DELTA=2 NOTE_OFF=58 NOTE_ON=56 TIME_DELTA=4 NOTE_OFF=56 NOTE_ON=58 TIME_DELTA=4 NOTE_OFF=58 NOTE_ON=59 TIME_DELTA=4 NOTE_OFF=59 BAR_END BAR_START NOTE_ON=58 TIME_DELTA=4 NOTE_OFF=58 NOTE_ON=59 TIME_DELTA=2 NOTE_OFF=59 NOTE_ON=61 TIME_DELTA=2 NOTE_OFF=61 NOTE_ON=63 TIME_DELTA=2 NOTE_OFF=63 NOTE_ON=52 TIME_DELTA=2 NOTE_OFF=52 NOTE_ON=54 TIME_DELTA=4 NOTE_OFF=54 BAR_END BAR_START NOTE_ON=47 TIME_DELTA=4 NOTE_OFF=47 NOTE_ON=49 TIME_DELTA=2 NOTE_OFF=49 NOTE_ON=51 TIME_DELTA=2 NOTE_OFF=51 NOTE_ON=52 TIME_DELTA=2 NOTE_OFF=52 NOTE_ON=54 TIME_DELTA=2 NOTE_OFF=54 NOTE_ON=56 TIME_DELTA=4 NOTE_OFF=56 BAR_END TRACK_END TRACK_START INST=TENOR

只要稍加练习,人类就能阅读和理解这种表示。表示以PIECE_START开始,表示一段音乐的开始。TRACK_START表示音轨(或乐器或语音)的开始,而TRACK_END表示音尾。INST=BASS标记表示此曲目包含低音。其他声音以相同的方式表示。BAR_START和BAR_END分别表示条形图的开始和结束。NOTE_ON=61是音调为 61 的音符的开头。

在钢琴上,这将是音符 C # 5 。TIME_DELTA=4意味着将经过四个十六分音符的持续时间。那将是一张四分之一的钞票。之后,音符将结束,由NOTE_OFF=61表示。等等等等。在这一点上,这种记法也允许复调。几个音轨将同时发出音符,每个音轨可以有平行的音符。这使得编码具有通用性。

每段音乐的小节数不同。很可能对整个歌曲进行编码将需要较长的序列长度,从而使相应 transformer 的训练在计算上非常昂贵。这些实验将大多数数据集编码为四条,少数编码为八条。 16 巴的实验正在进行中。此外,仅使用 4 / 4 计时表中的音乐。这涵盖了西方音乐的大部分。其他节拍,如 3 / 4 (华尔兹)可以作为未来工作的主题。

这一系列不同的实验将许多 MIDI 数据集映射到所描述的令牌格式。整个过程中使用了相同的预处理器。一旦预处理器处理小数据集,它立即处理大数据集。

处理时间取决于要编码的 MIDI 文件的数量,从几分钟到几小时不等。 DGX-2 在所有 96 CPU 上并行运行,最长的预处理时间为 30 小时。据估计,这将需要在最先进的 MacBook Pro 上进行大约 10-14 天的处理。

poYBAGNEx6-AbrE_AAJZ5Khy28c319.png

图 2.用于训练 GPT 模型的音乐数据集

对 MIDI 文件的数据集进行编码将产生令牌文件的集合。这些标记文件的大小取决于 MIDI 文件的数量和条形图的数量。考虑一些实验数据集及其编码数据集大小:

JS Fake Chorales 数据集: 14 MB ,每个样本有四个条

Lakh MIDI 数据集: 72 GB ,其干净子集为 19 GB ,每个样本有四个小节

MetaMIDI 数据集:每个样本 130 GB , 4 个小节, 230 GB , 8 个小节

你可以想象,在 14 MB 的 JS 假合唱团上训练只需要几个小时。在 130 GB 的 MetaMIDI 数据集上进行训练需要很多天。这些实验的训练持续了 10 至 15 天。

模型训练

许多模型使用 HuggingFace GPT-2 实现进行了训练。一些模型在 GPT-2 模式下使用 NVIDIA Megatron LM 进行了训练。

使用 HuggingFace 进行的训练归结为将数据集上传到 DGX-2 ,然后运行包含所有功能的训练脚本,包括模型和训练参数。使用了相同的脚本,只是对所有数据集进行了一些更改。这只是规模问题。

对于Megatron LM 来说,环境设置就像拉动和运行 NGC 一样简单 PyTorch Docker 容器 ,然后通过 ssh 隧道进入 DGX-2 机器,立即在浏览器中使用 Jupyter 笔记本。

大多数实验使用相同的 GPT-2 架构:六个解码器块和八个注意头;嵌入大小为 512 ,序列长度为 2048 。虽然这绝对不是一个大语言模型( LLM ),它可以有大约 100 个解码器块,但主观评估表明,对于人工智能音乐来说,这种架构工作起来很有魅力。

使用 NVIDIA DGX-2 在快速迭代中确实起到了作用。在单个 GPU 上训练多天的数据集,在 DGX-2 上只训练几个小时。在单个 GPP 上训练数月的数据集在 DGX-2 中最多两周后完成训练。特别是对于数据集< 25 GB 的实验,模型收敛非常快。

一些数据集的培训时间如下:

10 个时代和大约 1.5 万首歌曲的 10 万首 MIDI Clean 数据集耗时 15 小时

10 个时代和大约 175K 首歌曲的 Lakh MIDI 数据集耗时 130 小时

MetaMIDI 数据集历时 290 小时,涵盖了 9 个时代和大约 40 万首歌曲

请注意, JS Fake Chorales 数据集是较早训练的,而不是在 DGX-2 上。由于其体积非常小,因此不需要使用 multi- GPU 设置。它甚至可以在 MacBook Pro 上过夜训练。

NVIDIA DGX-2

本节详细介绍了 NVIDIA DGX-2 规范。如上所述,该平台在加速数据集预处理和训练语言模型方面都非常有效。这一部分将是一个令人愉快的技术部分。

pYYBAGNEx7CAa8nBAAIODuG_kQU972.png

图 3.DGX-2 站

NVIDIA DGX-2 是一个功能强大的系统,具有 16 个完全连接的 Tesla V100 32 GB GPU ,使用 NVSwitch 。它能够提供 2.4 TB /秒的二等分带宽。 DGX-2 专为需要性能和可扩展性的人工智能研究人员和数据科学家设计。

对于 transformer 型号, NVIDIA DGX-2 能够以混合精度提供敢达 517227 个令牌/秒的吞吐量,这使其特别强大。

pYYBAGNEx7GAInZpAABzhawqBIc067.png

表 1.多 – GPU 性能表e对于 DGX-2

软件框架: NVIDIA Megatron LM

要充分利用强大的计算功能,您需要稳定和优化的软件。使用 NVIDIA Megatron LM 等性能优化框架,随着 GPT 模型尺寸的缩放,性能几乎呈线性缩放。有关相关信息,请参见 Megatron LM :使用模型并行性训练数十亿参数语言模型 。

通过在单个 NVIDIA V100 32 GB GPU 上训练 12 亿个参数的模型来实现基线,该 GPU 支持 39 万亿次浮点运算。这是 DGX-2H 服务器中配置的单个 GPU 的理论峰值触发器的 30% ,因此是一个强基线。

将模型扩展到 512 GPU 上的 83 亿个参数,在整个应用程序中, 8 路模型并行度达到每秒 15.1 万亿次。与单一 GPU 情况相比,这是 76% 的缩放效率。

poYBAGNEx7OAZsHQAAMLEW8H8t0414.png

图 4.使用 NVIDIA Megatron LM 扩展到数千个 GPU ,而不损失性能

通过修正seq_len,短指针,等于 4096 ,并修改训练配置,只需几次迭代即可启动训练运行,可以计算实际应用程序作业运行中实现的万亿次浮点百分比。

在本机运行后,分析了nvidia-smi和输出 Nsight 配置文件。测试了不同的配置以获得最高可能的 teraflop ,如下表所示:

pYYBAGNEx7SAaOk-AACiKeIqm9Q736.png

表 2.使用中给出的第三个方程计算万亿次浮点 使用Megatron LM 在 GPU 集群上进行高效大规模语言模型训练

该表最后一行中显示的训练配置提供了 45.45% 的最高 teraflop 。

请注意,使用了 8 个 V100 32 GB GPU 而不是 16 GPU ,以缩短运行每个评测作业所需的时间。nvidia-smi 命令用于验证训练配置实现了 45.45% 的 teraflops 利用率,如下所示。

poYBAGNEx7aAMRdoAAKMbpNNevg842.png

图 5.通过使用 NVIDIA smi 命令以交互方式监控培训性能

总结

这里介绍的人工智能音乐实验是使用 NVIDIA DGX-2 进行的。我们使用大小从几兆字节到 230 GB 的数据集训练语言模型。我们使用了 HuggingFace GPT-2 实现,并表明 NVIDIA Megatron LM 也是一个很好的实验替代品。

NVIDIA DGX-2 在加速数据集预处理(将 MIDI 文件映射到令牌表示和训练模型)方面做出了重大贡献。这允许快速实验。 DGX-2 在训练可用的最大 MIDI 数据集(具有 400K 文件的 MetaMIDI )时发挥了巨大的作用。

关于作者

Tristan Behrens 博士是人工智能专家、人工智能作曲家和人工智能教育家。他在成功的深度学习项目中有着广泛的记录。他最大的关注点是合成的深度神经网络。他出版了几张用电脑创作的音乐专辑。

Zenodia Charpy 是高级深度学习解决方案架构师,专注于应用自然语言处理和深度学习技术来应对非英语和低资源语言的挑战,例如瑞典语、丹麦语和挪威语。作为一名数据科学家,她在解决现实世界问题、构建端到端解决方案方面拥有八年的丰富经验,她既是一名内部数据科学家,也是一名数据科学顾问。在空闲时间,她喜欢在森林里散步或跑步,做瑜伽。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4592

    浏览量

    101719
  • 人工智能
    +关注

    关注

    1776

    文章

    43845

    浏览量

    230607
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24352
收藏 人收藏

    评论

    相关推荐

    人工智能是什么?

    器人团队已在人工智能自然语言处理领域长达十数年的研究。 个人认为,随着人工智能的不断发展和技术积累沉淀,机器人一定会呈井喷式爆发,到时会出现各种各样的机器人,机器人也会变得越来越聪
    发表于 09-16 15:40

    人工智能技术—AI

      人工智能技术的概念从出来到现在已经有很多年的历史了,其实所谓的人工智能技术本身就是一种模拟人类大脑的思考方式的一种技术,它的英文简称是AI技术,在西方国家,
    发表于 10-21 12:03

    人工智能传感技术

    人工智能传感技术,希望有兴趣的人共享
    发表于 06-03 09:03

    百度人工智能大神离职,人工智能的出路在哪?

    `今天,吴恩达确认离职百度的消息迅速在业界刷屏。吴恩达曾不止一次感慨,现在人工智能最大的问题就是“机会太多,但人才太少”。AI,人工智能,该领域的研究包括机器人、语言识别、图像识别、自然语言
    发表于 03-23 17:00

    人工智能和机器学习的前世今生

    语言在机器学习和人工智能的圈子里是最强大的。还有其他语言如java、C++、Julia、SAS、MATLAB、Scala,还有很多。然而,我们讨论的仅限于Python和R这两个语言.P
    发表于 08-27 10:16

    适合人工智能开发的5种最佳编程语言优缺点对比

    熟悉Lisp编程。作为一种较古老的编程语言,Lisp需要配置新的软件和硬件来适应它的使用。PrologProlog也是古老的编程语言之一,与Lisp一样,它也是人工智能项目开发的常用语言
    发表于 09-29 10:27

    初学AI人工智能需要哪些技术?这几本书为你解答

    新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论
    发表于 01-21 14:26

    路径规划用到的人工智能技术

    路径规划用到的人工智能技术人工智能编程语言/数据结构与算法三 人工智能基础原理四 智能信息获取(简称爬虫) 与数据分析1、发起请求3、解
    发表于 07-20 06:53

    人工智能芯片是人工智能发展的

    ......无形之中,人工智能正以前所未有的发展速度渗透我们的日常生活。而作为人工智能的核心技术之一,人工智能芯片也向来备受关注。近几年,谷歌、苹果、微软、Facebook、英特尔、高
    发表于 07-27 07:02

    物联网人工智能是什么?

    2.概率推理3.机器人技术4.计算机视觉5.自然语言处理等常见人工智能产品:语音识别,指纹识别,人脸识别,视网膜识别,智能搜索,无人驾驶,机器翻译,
    发表于 09-09 14:12

    什么是人工智能、机器学习、深度学习和自然语言处理?

    垂直领域得到广泛应用。根据2020年的一项估计,37% 的组织已经在使用这种或那种形式的人工智能。大多数人工智能的应用是特定的技术,如计算机视觉、自然语言处理、语音识别、机器学习和专家
    发表于 03-22 11:19

    嵌入式人工智能学习路线

    嵌入式人工智能,一个不算陌生的新技术名词。它曾经被云端和现实技术所束缚,只能在很小范围进行实验、运用,但是随着5G时代的渐渐临近,我们再一次听到了它的声音,而这一次,它开始脚踏实地地走入市场,走入
    发表于 09-16 17:07

    《移动终端人工智能技术与应用开发》人工智能的发展与AI技术的进步

    人工智能的发展是随着人类生活需要,产业需求不断提升的,其中人工智能的发展很大程度上受到了计算机算力的影响,随着数据处理量的增大,人工智能算法对算力的要求逐年增加,而且没过两年算力上升一倍,因此往往
    发表于 02-17 11:00

    人工智能音乐教育的碰撞

    人工智能技术能够重新塑造音乐教育并让音乐教育变得更有支持和创意,另外,人工智能技术也让全世界的音乐家在
    发表于 06-27 15:55 3514次阅读

    人工智能音乐的融合 是AI技术音乐创作领域的新突破

    人工智能音乐的融合,是AI技术音乐创作领域的新突破,这不再是音乐专业人士的固有权力,让对音乐
    发表于 12-16 11:00 4838次阅读