派大星 · 2022年04月24日

端侧模型训练54分钟——完成声音网络模型调优

NeuralTalk 曾多次发布有关华为诺亚深度学习加速库 Bolt 的文章(见文末),为什么?因为在卷的过程中有自己的创新点

Bolt 在神经网络推理加速上取得了业界前沿的性能,覆盖面广泛,支持float32, float16, int8, 1bit等多种计算精度;支持armv7, v8, v8.2+, x86 avx2, avx512, mali gpu, 高通gpu等多种硬件;支持MLP,CNN, Transformer, GNN等多种网络结构;广泛应用到CV,NLP场景中。

b4fa150a1bf920d2d466f298f6a13169.png

图0 Bolt v1.3 release note

这次,刚刚发布的V1.3版本,除了对现有的推理部分完善和优化,Bolt新增了端侧训练,网络finetune模块,端侧训练+推理一体化,打通端云协同的流程。具体来说:

  • APP内置的云侧模型可以一键化直接加载。不需要单独写训练代码定义网络结构,只需要简单设置模型路径,训练参数即可,就可以实现基于用户数据在端侧训练的流程,训练完成后写出优化后的模型。
  • 实现用户数据不离开用户,既保护用户隐私安全,又满足基于用户特性定制化的需求。
  • 端侧训练目前支持MLP,CNN,RNN,Transformer等多种网络结构,支持常见的损失函数和优化器。
  • 训练精度可以对标云侧训练框架(Tensorflow/Pytorch)。

官方给出了CV网络(lenet, resnet18和mobilenetv1)的端侧调优运行示例文档,详细请见:

https://github.com/huawei-noah/bolt

https://github.com/huawei-noah/bolt/blob/master/training/TUTORIAL.md

40be89b8c9151e2ee4fb5a468390f92b.jpg
图1 端侧训练+推理一体化

端侧训练NLP项目实战--声音克隆

TTS是NLP语音研究中常见的文本到语音任务,最近的文本到语音的研究允许构建多说话人系统,仅基于少数语音,就可以构建新的模型。我们联合语音语义团队,开发了一套声音克隆流程,仅需1分钟的用户录音,针对目标说话人通过微调小语音上的特征生成模块,不超过200次SGD迭代,在手机上进行不到1小时的训练,就可获得用户声音定制化的高质量的TTS系统,这项工作已被NIPS2021接收

53aef21edb3c14429ebf5a93f1c0c93c.jpg

图2 "Efficient Strategies of Few-Shot On-Device Voice Cloning."https://neurips2021-nlp.githu... [1]

我们对前沿的不同TTS系统进行对比,从说话人相似性、声音质量、合成语音的整体自然度等多个维度评估生成的语音的效果。

d82fdd95ffa4021ab43d92849ce2d0d3.jpg

图3 说话人相似性、声音质量、合成语音的整体自然度等多个维度评估

affae4758fe626cb6ffaf15a8375895c.jpg

图4 每种模型的错误分析

最后选择使用Tactron2算法[2]作为声音克隆骨干网络,声码器部分使用LPCNet算法[3],实现我们的声音克隆算法,更多实验细节和参数设置可以看实验论文[1]。

端侧训练利用了Bolt高性能计算加速库blas_enhance针对float32/float16/int8做了深入优化

ac5cd365770222bcf1fd77dae35ff9fa.jpg

图5 blas_enhance benchmark on Kirin 980
<blas_enhance>

https://github.com/huawei-noah/bolt/blob/master/compute/blas_enhance/include/blas_enhance.h

如上表所示,基线float32版本需要1.6小时才能完成200轮迭代,内存占用达到800MB。我们在端侧使用了float16混合精度训练(MPv1),损失函数采用float32计算,其余部分使用float16计算,适当增加迭代次数,引入早停机制,对LSTM做了融合优化,极大提高了计算效率,降低了内存占用。MPv2版本优化了访存效率,实现0.9小时声音克隆端侧网络调优与基线float32相比,我们没有观察到生成的声音质量下降,性能可以对标业界竞品

欢迎大家来尝试使用Bolt复现论文

Bolt团队致力于打造高性能的深度学习算法+研发系统,让更多人了解和使用并行计算是我们不懈的奋斗目标。欢迎大家加入我们,反馈体验效果,在社区积极讨论。未来我们会继续利用更领先的技术,在计算机视觉、自然语言处理及更多的领域发力,将更多的研究结果带到社区。

来源:NeuralTalk
作者:Huawei-Noah

往期回顾


本作品采用知识共享署名-相同方式共享 4.0 通用许可协议进行许可。
欢迎关注公众号,关注模型压缩、低比特量化、移动端推理加速优化、部署。
嵌入式AI.jpg
更多嵌入式AI相关技术干货请关注嵌入式AI专栏。
推荐阅读
关注数
16717
内容数
1233
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息