INTERSPEECH2023论文解读|BAT一种低延迟低内存消耗的RNN-T模型

简介: INTERSPEECH2023论文解读|BAT一种低延迟低内存消耗的RNN-T模型

流式识别即实时语音识别技术,可以让用户在语音输入过程中即时获取识别结果,获得流畅自然的交流体验,在车机助手、实时字幕、电话语音转录等人机交互场景中扮演着重要角色。同时,流式识别也面临一些挑战,包括对低延迟的要求、处理不完整语音的准确性以及对大规模语言模型的实时运算需求等。


image.png

(实例:工作学习AI助手通义听悟上的流式语音识别)


RNNT语音识别模型具有流式识别出字自然流畅的特点,并且具有良好的识别效果,近年来受到研究者的青睐。然而,RNNT模型训练过程中,需要消耗大量的计算与GPU内存资源。与此同时,RNNT为了获得更好的识别效果,往往会搜索更多的上下文,进而导致识别出字延迟较高。


为了解决上述问题,我们设计了一种低延迟和低内存消耗的RNNT模型。

论文题目:


BAT: Boundary aware transducer for memory-efficient and low-latency ASR


作者:安柯宇,石宪,张仕良


论文地址:https://arxiv.org/abs/2305.11571


代码地址:https://github.com/alibaba-damo-academy/FunASR


模型体验地址https://modelscope.cn/models/damo/speech_bat_asr-zh-cn-16k-aishell1-vocab4234-pytorch/summary


研究背景


图1 CTC与RNNT模型结构对比


CTC(上图左)是语音识别的经典模型之一,被广泛使用于各种语音识别系统中。然而,CTC的一个显著缺陷是其输出的条件独立特性,这使其无法很好地建模语言的上下文依赖关系。为了弥补这一缺陷,RNN Transducer (RNN-T [1],上图右)在CTC的基础上添加了对文本信息的建模,RNN-T的输出不仅依赖声学信息,也依赖历史的输出信息,两者通过一个joint network融合。


语音-文本信息的融合使得RNN-T取得了相对CTC更优越的识别性能,但也带来了极大的训练开销。此外,由于缺乏对齐信息的指导,RNN-T倾向于访问更多的上下文以获得更好的性能,这导致了流式识别时更高的发射延迟(emission latency)。


为了解决这两个问题,我们提出了Boundary aware transducer(BAT),用于减小RNN-T训练的时间和内存消耗和推理时的发射延迟。

BAT的思想受到了一些之前工作的启发。在降低显存开销方面,Alignment Restricted RNN-T (Ar-RNN-T)[2] 和Pruned RNN-T [3] 均表明可以通过限制RNN-T loss前后向计算在lattice上的可行路径来降低显存开销;在降低发射延迟方面,一些研究表明可以通过引入额外的对齐信息(通常来自一个传统HMM模型)对RNN-T的高延迟路径施加惩罚,来达到减小RNN-T延迟的目的。


与先前工作不同的是:1. BAT的对齐信息是通过一个轻量级CIF模块在线生成的,无需预先训练一个对齐模型;2. BAT同时实现了训练时的显存降低和测试时的发射延迟降低。


BAT是如何运算的?


>>>标准RNN-T loss


我们先简要回顾一下标准RNN-T loss的计算过程。

ca0a80a3b9c4155872af32a53ebbd7f9.png

>>>基于CIF对齐的boundary aware training


图2 BAT模型结构图


在BAT中,我们首先利用continuous integrate-and-fire(CIF)[4] 生成声学特征和标准文本之间的对齐(alignment),然后用它来限制可行的(t, u)路径。



图3 RNNT与BAT搜索路径对比



BAT的实验结果如何?


我们主要在公开的AISHELL-1和非公开的工业级数据集上评测了我们的模型,详细实验配置请参考论文。

>>>与类似工作横向对比


我们在相同的实验设置下,比较了标准RNN-T (采用warp_rnnt [7]实现)、pruned RNN-T和BAT loss计算的时间和显存开销,如下表所示。可以看到,pruned RNN-T和BAT的时间和显存占用开销均远好于标准RNN-T。BAT略好于pruned RNN-T,因为BAT确定裁剪边界的方式相较pruned RNN-T更为高效,后者需要先通过对一个“trivial” joiner network的输出计算RNN-T loss来确定裁剪边界。


表1 与类似工作对比(耗时与峰值GPU内存)


>>>AISHELL-1数据实验结果


AISHELL-1上的非流式模型结果如下表所示。可以看到,BAT识别准确率与RNN-T接近。R_d和R_u增大,识别结果变好,但计算开销也会相应增大。


表2 AISHELL-1 非流式实验结果对比


AISHELL-1上的流式模型结果如下表所示。为了更好地展示BAT对发射延迟的改进效果,我们提供了标准RNN-T加上FastEmit [6]正则的结果作为对比。

下表中的avg ET (average emission time) 代表了最后一个token的平均发射时间,PR (partial recognition latency)代表了最后一个token发射时刻和说话人实际完成讲话的时刻之差,PR50和PR90分别是PR的50分位数和90分位数。可以看到:与FastEmit类似,BAT的结果体现出了准确率和延迟的trade-off,即更大的R_d和R_u会造成更大的延迟,但识别准确率会有所提高。


表3 AISHELL-1 流式实验结果对比

下图可视化了流式RNN-T和流式BAT的token发射快慢。途中横坐标代表了时间轴,纵坐标则代表了模型输出的non-blank token。可以看到,流式BAT的token输出要显著快于流式RNN-T。



图4 流式RNNT与BAT出字延迟对比

>>>3万小时工业数据实验结果

3万小时工业数据上的结果如下表所示。可以看到,BAT在工业量级数据上取得了与RNN-T可比的性能。


表4 3万小时工业数据实验结果


‍▎Future Work


本文中我们提出了BAT,同时解决了RNN-T在训练时显存占用较高和推理时发射延迟较高的问题。我们将验证BAT在其他语种(例如英语)上的效果。

此外,在BAT中,仅在训练阶段利用了CIF的对齐信息,后续工作将考虑结合对齐信息的推理,例如基于CIF的预测权重进行跳帧解码等。

BAT显著降低了RNN-T的训练成本。再结合encoder输出降采样、混合精度训练和预训练等加速方案后,在阿里巴巴内部的PAI平台上使用32卡A100训练RNN-T工业模型的时间从15天缩短至5天内,显著加快了模型开发和迭代的速度。在未来,BAT有望在流式语音识别和端上语音识别等场景发挥作用。


‍▎联系我们


BAT的代码已在FunASR开源,欢迎对识别模型开源和应用感兴趣的研究人员和开发人员加入Fun-ASR开源社区交流群,共同探讨精进!



References:

[1] Graves, Alex., “Sequence Transduction with Recurrent Neural Networks.”, ArXiv abs/1211.3711 (2012).

[2] J. Mahadeokar et al., "Alignment Restricted Streaming Recurrent Neural Network Transducer." , SLT 2021.

[3] Kuang, Fangjun et al., "Pruned RNN-T for fast, memory-efficient ASR training.", INTERSPEECH 2022.

[4] L. Dong and B. Xu, "CIF: Continuous Integrate-And-Fire for End-To-End Speech Recognition," ICASSP 2020.

[5] https://github.com/danpovey/fast_rnnt

[6] Yu, Jiahui  et al., FastEmit: Low-Latency Streaming ASR with Sequence-Level Emission Regularization. ICASSP 2021.

[7] https://github.com/1ytic/warp-rnnt


相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
9天前
|
程序员 编译器 C++
【C++核心】C++内存分区模型分析
这篇文章详细解释了C++程序执行时内存的四个区域:代码区、全局区、栈区和堆区,以及如何在这些区域中分配和释放内存。
25 2
|
7天前
|
XML IDE 前端开发
IDEA忽略node_modules减少内存消耗,提升索引速度
在后端开发中,IDEA 在运行前端代码时,频繁扫描 `node_modules` 文件夹会导致高内存消耗和慢索引速度,甚至可能会导致软件卡死。为了改善这一问题,可以按照以下步骤将 `node_modules` 文件夹设为忽略:通过状态菜单右键排除该文件夹、在设置选项中将其加入忽略列表,并且手动修改项目的 `.iml` 文件以添加排除配置。这些操作可以有效提高IDE的运行性能、减少内存占用并简化项目结构,但需要注意的是,排除后将无法对该文件夹进行索引,操作文件时需谨慎。
26 4
IDEA忽略node_modules减少内存消耗,提升索引速度
|
4月前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
68 0
|
2月前
|
机器学习/深度学习 数据采集 PyTorch
构建高效 PyTorch 模型:内存管理和优化技巧
【8月更文第27天】PyTorch 是一个强大的深度学习框架,被广泛用于构建复杂的神经网络模型。然而,在处理大规模数据集或使用高性能 GPU 进行训练时,有效的内存管理对于提升模型训练效率至关重要。本文将探讨如何在 PyTorch 中有效地管理内存,并提供一些优化技巧及代码示例。
48 1
|
3月前
|
机器学习/深度学习 自然语言处理
彻底改变语言模型:全新架构TTT超越Transformer,ML模型代替RNN隐藏状态
【7月更文挑战第25天】近年来,NLP领域取得显著进展但也面临挑战,如长上下文建模与计算效率的平衡。为此,研究人员提出Test-Time Training (TTT) 模型架构。TTT由多机构合作开发,旨在解决长上下文建模难题及提高计算效率。通过将隐藏状态视为可学习更新的模型,TTT能随输入增长提升表示能力;采用自监督学习更新规则确保线性计算复杂度的同时保持高性能。实验显示TTT在多种NLP任务中表现优秀,尤其在长上下文处理方面超越Transformer。尽管如此,TTT仍面临训练资源需求高及自监督学习鲁棒性等挑战。[论文](https://arxiv.org/abs/2407.04620)
101 5
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
126 9
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
|
3月前
|
机器学习/深度学习 自然语言处理 算法
ICML 2024:零阶优化器微调大模型,大幅降低内存
【7月更文挑战第14天】ICML 2024研究表明,零阶优化用于大模型微调能大幅降低内存需求。该论文通过避免反向传播,减少LLM(大型语言模型)微调的内存开销,提出新方法,适用于资源受限环境。虽然性能可能不及一阶优化器,但为高效NLP计算开辟了新途径。论文链接:[arxiv.org/abs/2402.11592](https://arxiv.org/abs/2402.11592)**
58 3
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。
【7月更文挑战第2天】计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。AlexNet开启新时代,后续模型不断优化,推动对象检测、语义分割、图像生成等领域发展。尽管面临数据隐私、模型解释性等挑战,深度学习已广泛应用于安防、医疗、零售和农业,预示着更智能、高效的未来,同时也强调了技术创新、伦理考量的重要性。
50 1
|
3月前
|
存储 算法 安全
Java面试题:给定一个可能产生内存泄漏的场景,如何诊断并解决?实现一个生产者-消费者模型,使用适当的同步机制与并发工具类,Java并发工具包与框架:性能与调优
Java面试题:给定一个可能产生内存泄漏的场景,如何诊断并解决?实现一个生产者-消费者模型,使用适当的同步机制与并发工具类,Java并发工具包与框架:性能与调优
25 0