始终以来,火山语音团队都为时下风靡的视频平台提供基于语音辨认技术的智能视频字幕解决方案,简略来说就是能够主动将视频中的语音和歌词转化成文字,来辅助视频创作的性能。但随同平台用户的快速增长以及对语言品种更加丰盛多样的要求,传统采纳有监督学习技术来解决的方法日渐遭逢瓶颈,这让团队着实犯了难。
家喻户晓,传统的有监督学习会对人工标注的有监督数据产生重大依赖,尤其在大语种的继续优化以及小语种的冷启动方面。以中文普通话和英语这样的大语种为例,只管视频平台提供了短缺的业务场景语音数据,但有监督数据达到肯定规模之后,持续标注的 ROI 将非常低,必然须要技术人员思考如何无效利用百万小时级别的无标注数据,来进一步改善大语种语音辨认的成果。
绝对小众的语言或者方言,因为资源、人力等起因,数据的标注老本昂扬。在标注数据极少的状况下(10 小时量级),有监督训练的成果十分差,甚至可能无奈失常收敛;而洽购的数据往往和指标场景不匹配,无奈满足业务的须要。
为此火山语音团队迫切需要钻研如何以尽可能低廉的标注老本充分利用大量的无标注数据,晋升大量标注数据下的辨认成果并落地到理论业务中,所以无监督预训练技术成为视频平台 ASR(Automatic Speech Recognition / 主动语音辨认)能力向小语种推广的要害。
只管近年来学术界在语音无监督预训练畛域获得了许多重大进展,包含 Wav2vec2.0 [1]、HuBERT [2] 等,但在工业界却鲜有落地案例能够参考借鉴。整体来看,火山语音团队认为,以下三方面次要起因,妨碍了无监督预训练技术的落地:
1. 模型参数量大、推理开销大。大量无标注数据须要用较大的模型做无监督预训练,能力失去高质量的语音表征,但这样的模型如果间接部署到线上,会带来昂扬的推理老本。
2. 无监督预训练只关注语音表征的学习,须要联合大量纯文本训练的语言模型联结解码能力达到现实成果,和端到端 ASR 推理引擎不兼容。
3. 无监督预训练开销大、周期长且不稳固。以 Wav2vec2.0 为例,300M 参数量的模型用 64 张 V100 GPU 预训练 60 万步,耗时长达半个月;此外因为数据分布的差别,在业务数据上训练容易发散。
对此火山语音团队在基于无监督预训练的语音辨认技术落地过程中,针对以上三大痛点进行了算法改良和工程优化,造成一套残缺易推广的落地计划。本文将针对计划,从落地流程、算法优化以及工程优化等环节开展详尽介绍。
落地流程
下图是基于无监督预训练的低资源语种 ASR 的落地流程,大抵能够划分为数据收集、种子模型训练和模型迁徙三个阶段。
图 1 基于无监督预训练的 ASR 落地流程
具体来说,第一阶段的数据收集,能够通过语种分流、洽购等伎俩收集目标语言的无标注语音、标注语音和纯文本数据。
第二阶段的种子模型训练,也就是经典的“无监督预训练 + 有监督微调”过程。这一阶段将失去一个声学模型,通常基于连贯时序分类(Connectionist Temporal Classification, CTC [3])损失函数微调。声学模型联合纯文本训练的语言模型,形成一个残缺的语音识别系统,能够获得不错的辨认成果。之所以称之为种子模型,是因为这个模型并不适宜间接上线到业务,咱们更偏向于应用 LAS(Listen, Attend and Spell [4])或 RNN-T(Recurrent Neural Network Transducer [5])这类端到端模型进行线上部署。
归其起因,次要是 LAS/RNN- T 具备杰出的端到端建模能力,同时在近年来曾经获得了优于传统 CTC 模型的成果,并在工业界失去越来越多的利用。火山语音团队针对端到端语音辨认模型的推理和部署做了大量优化工作,已造成一套绝对成熟的计划,并反对泛滥业务。在维持成果无损的前提下,如果能够沿用端到端推理引擎,就能大幅升高引擎的运维老本。
基于此团队设计了第三阶段,即模型迁徙阶段。次要借鉴常识蒸馏的思维,用种子模型对无标注数据打伪标签,而后提供一个参数量较小的 LAS 模型做训练,同步实现了模型构造的迁徙和推理计算量的压缩。整个流程的有效性在粤语 ASR 上失去验证,具体试验后果如下表所示:
首先,团队洽购了 1kh 成品数据用于试验比照,间接训练 LAS 模型性能不佳,字错率(Character Error Rate, CER)高达 44.2%。通过剖析,火山语音认为次要起因是洽购数据(对话)和业务测试集(视频)畛域不匹配,在 wav2vec2.0 上的初步试验也发现了相似的景象。
相比用洽购数据做预训练,采纳和指标畛域统一的数据做预训练,在业务测试集上的 CER 能够从 42.0% 降落到 29.4%,于是团队将业务场景的无标注数据积攒到 50kh,模型参数量从 100M 减少到 300M,CER 进一步降落到 23.1%。
最初团队验证了模型迁徙的成果,联合粤语语言模型对 50kh 无标注数据解码失去伪标签,训练 LAS 模型。能够看到,基于伪标签训练的 LAS 模型根本能够放弃 CTC 种子模型的辨认成果且模型参数量减少了三分之一,能够间接基于成熟的端到端推理引擎部署上线。
图 2 模型参数量和 CER 比照
最终在模型构造和参数量不变的前提下,团队用 50kh 无标注业务数据和 10h 有标注业务数据获得了 23.0% 的 CER,绝对基线模型降落 48%。解决了线上计算量和兼容性的问题之后,聚焦到整个流程中最为外围的无监督预训练技术,针对 wav2vec2.0,火山语音团队别离从算法和工程两个维度进行了优化。
算法优化
wav2vec2.0 作为 Meta AI 在 2020 年提出来的自监督预训练模型,开启了语音无监督表征学习的新篇章。其核心思想在于用量化模块将输出特色离散化,并通过比照学习优化,模型主体与 BERT 相似,随机 mask 局部输出特色。
图 3 wav2vec2.0 模型构造示意图(起源:wav2vec 2.0 Figure 1 [1])
对此在业务数据上训练 wav2vec 2.0 模型遇到了两个辣手的问题:一个是训练效率低,300M 的大模型 64 卡须要十几天能力训完;另一个是训练不稳固,容易发散。为此团队提出 Efficient wav2vec 以缓解上述两个问题:
对于训练效率低的问题,团队通过升高模型的帧率来放慢训练速度,将输出特色从 waveform 替换成 filterbanks,帧率由原来的 20ms 变成 40ms。这样既大幅升高了特征提取卷积的计算量,同时也大幅升高了 Transformer 外部编码的长度,从而进步训练效率。对于训练不稳固的问题,则是通过剖析无监督预训练的学习形式并联合业务数据理论状况综合判断解决,比照学习损失能够用下式表白:
对于每一帧 t,Ct 示意该帧的编码器输入,qt 示意该帧的量化输入。除此之外,还须要采样若干其它帧作为负样本,从而以后帧与负样本帧的汇合就相当于是动静结构的词表 Qt。
为了解决上述两个问题,火山语音对应提出了两点改良:
1. 等长数据流:预训练过程中将整个训练集视为由每句话首尾拼接而成的一段音频,每个训练样本从中截取固定长度失去,这样做是为了保障负样本数量足够多,且上下文编码网络外部的长度在不同帧率下统一,进而保障训练的稳健性。
2. 自适应间断 mask:为缓解数据乐音对训练的影响,选取较小的 mask 长度且强制每个 mask 区域间断,并且 mask 区域对应的音频长度在不同帧率下相当。这样既加重了乐音数据下比照学习的难度,同时也做到了适配不同的帧率。
在业务数据上比照了 wav2vec2.0(w2v) 与 Efficient wav2vec (w2v-e) 的成果,如下表所示 (所有模型均采纳 64 V100 GPUs 训练):
能够看到改良过的 Efficient wav2vec 绝对原始 wav2vec 2.0 有稳固 5% 的性能晋升,并且训练效率靠近翻倍。
工程优化
只管团队提出的 Efficient wav2vec 曾经从算法层面将训练效率晋升近两倍,但因为 300M 模型通信量大,训练通信仍然存在稳定且多机扩大效率低。对此火山语音团队总结道:“为了进步模型预训练在同步梯度场景下的通信效率,咱们基于 BytePS 的分布式训练框架,在通信后端实现了 Bucket 分组通信优化技术,数据并行效率能获得 10% 的晋升;同时针对模型参数定义程序与梯度更新程序不同造成的期待问题,还实现了自适应的参数重排(Parameter Reorder)策略。”在这些优化根底上,进一步联合梯度累加等技术,300M 模型的单卡扩大效率由 55.42% 晋升至 81.83%,多机扩大效率由 60.54% 晋升至 91.13%,原来须要 6.5 天训完的模型当初只须要 4 天就能够训完,耗时缩短 40%。
此外,为了反对将来摸索的大模型大数据场景,火山语音工程团队进一步实现了一系列超大规模模型的原子能力建设。首先实现了 local OSS 技术,在去除优化器大部分的冗余内存占用的同时,解决了机间扩大效率问题;之后在同步梯度通信上反对了 bucket lazy init,缩小了一倍参数量的显存占用,能大幅升高显存峰值并适配显存资源缓和的超大模型场景;最初在数据并行的根底上,还反对了模型并行和流水线并行,并在 1B 和 10B 模型上实现了验证和定制化反对。这一系列优化为大模型大数据的训练打下坚实基础。
目前,通过采纳低资源 ASR 落地流程,已有两个低资源语言胜利落地视频字幕和内容平安业务。除语音辨认外,基于 wav2vec2.0 的预训练模型在其余多个上游工作上也已获得显著收益,波及音频事件检测、语种辨认、情感检测等,将来将陆续落地到视频内容平安、举荐、剖析、音频分流、电商客服情感剖析等相干业务中。无监督预训练技术的落地将显著升高各类音频数据的标注老本,缩短标注周期,实现对业务需要的疾速响应。
总结与瞻望
火山语音团队在实践中摸索出一套基于 wav2vec2.0 的低资源语种 ASR 落地计划,解决了推理开销大的问题,实现了与端到端引擎的无缝连接。针对其中最外围的 wav2vec2.0 训练效率低和不稳固的问题,提出了 Efficient wav2vec。相比 wav2vec2.0,在上游工作上成果晋升 5%,预训练耗时缩短一半,联合工程上的优化,最终预训练耗时相比原始版本缩短 70%。将来,火山语音团队将在以下三个方向继续开掘摸索:
1. 无监督算法降级:在 wav2vec 2.0 之后语音无监督预训练的钻研工作如雨后春笋,团队将继续跟进最新的钻研,并内化到业务场景。现阶段次要尝试了 HuBERT[2]、MAE[6] 和 data2vec[7] 等无监督模型,并摸索了它们各自在不同上游工作下的体现。将来将从两个方面晋升无监督模型性能:依据不同业务场景,设计高效适配的无监督计划;设计通用的无监督模型,晋升在各类上游工作的性能体现。
2. 多语言多模态:目前无监督与多语言联合的钻研工作有许多,比方 XLSR[8]。团队在此基础上提出了 S3Net[9],其通过在预训练模型中划分出多个稠密子网络来别离对不同语言进行建模,无效缓解了不同语言之间的互相烦扰(Language Interference)问题,对大语料语言有显著的性能晋升成果。现有的钻研工作次要集中在音频编码器端进行,而目前支流的端到端模型均采纳了编码器 - 解码器构造,即音频文本多模态建模。团队判断单纯的音频端预训练曾经不能满足端到端模型的须要,将来将在音频文本多模态预训练上进行摸索工作,别离是海量非对齐音频文本与端到端模型联结建模以及纯无监督的多模态预训练。
3. 大数据大模型:现有的模型在 10 万小时规模时其性能就靠近饱和,团队在中文 10 万小时标注数据训练的模型根底上,利用 100 万小时无标注数据做 NST[10] 训练,在通用测试集上获得绝对 7% 的 CER 降落,同时模型的泛化能力失去显著的改善,在 20 个畛域测试集上均匀 CER 绝对降落 15%。要充沛排汇百万小时量级的海量数据就须要更大的模型,目前团队曾经在 1B 参数量级的模型上获得初步停顿。大模型的性能下限高,随之而来的问题是落地难。为了将大模型落地到理论业务中,将来将尝试各种模型压缩办法,如矩阵合成、权重裁剪和常识蒸馏等,尽可能做到无损压缩成果。
火山语音,长期以来面向字节跳动各大业务线以及火山引擎 ToB 行业与翻新场景,提供寰球当先的 AI 语音技术能力以及卓越的全栈语音产品解决方案,包含音频了解、音频合成、虚构数字人、对话交互、音乐检索、智能硬件等。目前团队的语音辨认和语音合成笼罩了多种语言和方言,多篇技术论文入选各类 AI 顶级会议,为抖音、剪映、飞书、番茄小说、Pico 等业务提供了当先的语音能力,并实用于短视频、直播、视频创作、办公以及穿戴设施等多样化场景,通过火山引擎凋谢给内部企业。
参考文献
[1] Baevski, A., Zhou, Y., Mohamed, A. and Auli, M., 2020. wav2vec 2.0: A framework for self-supervised learning of speech representations. Advances in Neural Information Processing Systems, 33, pp.12449-12460.
[2] Hsu, W.N., Bolte, B., Tsai, Y.H.H., Lakhotia, K., Salakhutdinov, R. and Mohamed, A., 2021. Hubert: Self-supervised speech representation learning by masked prediction of hidden units. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 29, pp.3451-3460.
[3] Graves, A., Fernández, S., Gomez, F. and Schmidhuber, J., 2006, June. Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks. In Proceedings of the 23rd international conference on Machine learning (pp. 369-376).
[4] Chan, W., Jaitly, N., Le, Q. and Vinyals, O., 2016, March. Listen, attend and spell: A neural network for large vocabulary conversational speech recognition. In 2016 IEEE international conference on acoustics, speech and signal processing (ICASSP) (pp. 4960-4964). IEEE.
[5] Graves, A., 2012. Sequence transduction with recurrent neural networks. arXiv preprint arXiv:1211.3711.
[6] He, K., Chen, X., Xie, S., Li, Y., Dollár, P. and Girshick, R., 2022. Masked autoencoders are scalable vision learners. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 16000-16009).
[7] Baevski, A., Hsu, W.N., Xu, Q., Babu, A., Gu, J. and Auli, M., 2022. Data2vec: A general framework for self-supervised learning in speech, vision and language. arXiv preprint arXiv:2202.03555.
[8] Conneau, A., Baevski, A., Collobert, R., Mohamed, A. and Auli, M., 2020. Unsupervised cross-lingual representation learning for speech recognition. arXiv preprint arXiv:2006.13979.
[9] Lu, Y., Huang, M., Qu, X., Wei, P. and Ma, Z., 2022, May. Language adaptive cross-lingual speech representation learning with sparse sharing sub-networks. In ICASSP 2022-2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 6882-6886). IEEE.
[10] Park, D.S., Zhang, Y., Jia, Y., Han, W., Chiu, C.C., Li, B., Wu, Y. and Le, Q.V., 2020. Improved noisy student training for automatic speech recognition. arXiv preprint arXiv:2005.09629.