新智元报道
编辑:alan
两个多月前那个对标 GPT-4o 的端到端语音模型,终于开源了。大神 Karpathy 体验之后表示:nice!
前段时间技惊四座、剑指 GPT-4o 的实时语音模型 Moshi,终于开源了!
自然聊天,情绪丰富,随意打断,拒绝呆板和回合制!
大神 Karpathy 体验之后也表示:nice~
来自法国的初创团队 Kyutai,于 7 月初发布了这个对标 GPT-4o 的神奇的端到端语音模型。
2 个多月后的今天,他们兑现了自己的承诺,将代码、模型权重和一份超长的技术报告一股脑开源。
论文地址:https://kyutai.org/Moshi.pdf
开源代码:https://github.com/kyutai-labs/moshi
开放权重:https://huggingface.co/collections/kyutai
在海的那一边,GPT-4o 的语音模式还没有完全端上来,这边的模型已经免费送了。
大家可以去官网(moshi.chat)在线免费体验,相比于平时你问我答的 AI 语音助手,这种「像人一样」的聊天方式还是很奇特的。
整个模型的参数量为 7.69B,pytorch 平台上只有 bf16 版本,如果在本地跑的话对显存有一定要求,而 candle 上提供了 8bit 版本,mlx 上更是有 4bit 版本可供使用。
moshiko 和 moshika 表示男声和女声两个版本
moshi 作为一个全双工口语对话框架,由几部分组成:首先是 Mimi,目前最先进的流式神经音频编解码器,能够以完全流式的方式(延迟 80 毫秒)处理 24 kHz 音频(12.5 Hz 表示,带宽 1.1 kbps)。
然后是负责知识储备、理解和输出的 Transformer 部分,包括 Helium Temporal Transformer 和 Depth Transformer。
其中小型的深度 Transformer 负责对给定时间步长的码本间依赖性进行建模,而大型(7B 参数)时间 Transformer 对时间依赖性进行建模。
作者还提出了「内心独白」:在训练和推理过程中,对文本和音频进行联合建模。这使得模型能够充分利用文本模态传递的知识,同时保留语音的能力。
Moshi 模拟两种音频流:一种来自 Moshi 自身(模型的输出),另一种来自用户(音频输入)。
沿着这两个音频流,Moshi 预测与自己的语音(内心独白)相对应的文本,极大地提高了生成的质量。
Moshi 的理论延迟为 160 毫秒(Mimi 帧大小 80 毫秒 + 声学延迟 80 毫秒),在 L4 GPU 上的实际总延迟仅有 200 毫秒。
技术细节
Moshi 突破了传统 AI 对话模型的限制:延迟、文本信息瓶颈和基于回合的建模。
Moshi 使用较小的音频语言模型增强了文本 LLM 主干,模型接收并预测离散的音频单元,通过理解输入并直接在音频域中生成输出来消除文本的信息瓶颈,同时又可以受益于底层文本 LLM 的知识和推理能力。
Moshi 扩展了之前关于音频语言模型的工作,引入了第一个多流音频语言模型,将输入和输出音频流联合显式处理为两个自回归 token 流,完全消除了说话者转向的概念,从而允许在任意动态(重叠和中断)的自然对话上训练模型。
Helium
首先介绍负责文本部分的 Helium,这里采用了一些比较通用的设计。
比如,在注意力层、前馈层和输出线性层的输入处使用 RMS 归一化;使用旋转位置嵌入(RoPE)、4,096 个 token 的上下文长度和 FlashAttention 来进行高效训练;使用门控线性单元,SiLU 作为门控函数。
Helium 的分词器基于 SentencePiece 的一元模型,包含 32,000 个主要针对英语的元素。
作者将所有数字拆分为单个数字,并使用字节退避来确保分词器不会丢失信息。使用 AdamW 优化器训练模型,先采用固定学习率,然后进行余弦学习率衰减。
7B Helium 语言模型和 Moshi 架构训练的超参数
研究人员在公共英语数据的 2.1T token 上对模型进行了预训练。
训练数据包括维基百科、Stack Exchange 和大量科学文章,还依赖网络爬取(特别是来自 CommonCrawl 的数据)来扩展数据集,并通过重复数据删除、语言识别和质量过滤等操作获得高质量的训练集。
Mimi
Mimi 使用残差矢量量化 (RVQ) 将音频转换为 Moshi 预测的离散 token,并通过蒸馏将非因果的高级语义信息传输到因果模型生成的 token 中,从而允许对语义进行流式编码和解码。
Mimi 架构的灵感来自 SoundStream 和 Encodec,编码器通过级联残差卷积块将单通道波形投射到潜在表示。所有卷积都是因果的,因此该自动编码器可以以流方式运行。
通过 4 个步幅为(4、5、6、8) 的卷积块 ,以及步幅为 2 的 1D 卷积,Mimi 的编码器将 24kHz 波形投影为每秒 12.5 帧、维度为 512 的潜在表示,而解码器采用转置卷积将潜在表示投射回 24kHz 音频。
为了提高 Mimi 将语音编码为紧凑表示的能力,研究人员在模型中添加了 Transformer 模块,分别位于量化之前和之后。
每个 Transformer 块包含 8 层、8 个头、使用 RoPE 位置编码、250 帧(20 秒)的有限上下文、模型维度 512、MLP 维度 2048。使用 LayerScale 来保证稳定训练,对角线值初始化为 0.01。两个 Transformer 都使用因果屏蔽,保留了整个架构与流式推理的兼容性。
Moshi
Moshi 作为一种用于音频语言建模的新架构,将 Helium 与较小的 Transformer 模型相结合,以分层和流式传输的方式预测音频 token。
这种无条件音频语言模型,提供了优于非流模型的清晰度和音频质量,同时以流方式生成音频。作者进一步扩展了这种架构,以并行模拟多个音频流,从而可以在概念上和实践上简单地处理具有任意动态的全双工对话。
在上图的整体架构中,RQ Transformer 将长度为K·S的扁平序列分解为大型时间 Transformer 的S个时间步长,生成上下文嵌入,用于在K个步骤上调节较小的深度 Transformer。
与使用单个模型对展平序列进行建模相比,这允许通过增加S来缩放到更长的序列,或者通过增加K来缩放到更高的深度。
架构中的深度 Transformer 有 6 层,维度为 1024,16 个注意力头。与之前的工作不同,作者在深度 Transformer 中为线性层、投影层和全连接层使用每个索引的不同参数。
事实上,不同的子序列可能需要不同的转换。鉴于该 Transformer 的尺寸较小,这对训练和推理时间都没有影响,但上表结果显示这种深度参数化是有益的。
内心独白
内心独白是一种用于音频语言模型训练和推理的新方法,它通过在音频 token 之前预测时间对齐的文本 token,显著提高了生成语音的事实性和语言质量。
Moshi 允许推理来自用户音频和 Moshi 音频的非语言信息,但这与 Moshi 在其语音输出中生成文本并不矛盾。根据过去的观察,从粗到细的生成(从语义到声学 token)对于生成一致的语音至关重要。
作者利用这种层次结构,使用文本 token 作为语义 token 的每个时间步前缀。实验表明,这不仅极大地提高了生成语音的长度和质量,还展示了单个延迟超参数如何允许从 ASR 模型切换到 TTS 模型,而不会改变损失、架构或训练数据。
参考资料: