查看原文
其他

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

Huawei-Noah NeuralTalk 2023-01-10

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

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

图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

<A guide about on-device training in bolt>

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

图1 端侧训练+推理一体化

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

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

图2 "Efficient Strategies of Few-Shot On-Device Voice Cloning."https://neurips2021-nlp.github.io/papers/11/CameraReady/NeurIPS_Workshop_2021__VC_with_few_samples_final.pdf [1]

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

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

图4 每种模型的错误分析

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

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

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

欢迎高性能计算/编译/体系结构和深度学习算法方向的童鞋加入我们,简历请发送到【后台回复“华为诺亚”获取邮箱】

[1] Sadekova, Tasnima, et al. "Efficient Strategies of Few-Shot On-Device Voice Cloning." [2] Shen, Jonathan, et al. "Natural tts synthesis by conditioning wavenet on mel spectrogram predictions." 2018 IEEE international conference on acoustics, speech and signal processing (ICASSP). IEEE, 2018. [3] Valin, Jean-Marc, and Jan Skoglund. "LPCNet: Improving neural speech synthesis through linear prediction." ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2019.

往期 Bolt 的文章

点击【阅读原文】,看往期文章

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存