极限压缩380倍!比OpenAI的Whisper更高效,开源模型超2000颗星

文摘   2024-12-23 06:42   河北  

专注AIGC领域的专业社区,关注微软&OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!

OpenAI开源的Whisper一直是很多开发者首选的语音识别模型。但它使用固定长度的编码器来处理 30 秒的音频块,对于较短的音频序列需要进行零填充。但这种填充即使输入音频非常短时也会产生恒定的算力负担,从而增加总处理时间并降低效率。

例如,开发一款快速、准确且离线英语语音转录应用,即便是最小的 Whisper模型,部署在低成本 ARM 处理器上,其延迟下限也固定在 500 毫秒,无论音频时长如何都无法改变。

为了解决这一难题,Useful的研究人员开源了全新语音模型Moonshine。该模型不仅在推理效率、性能进行大幅度优化,同时对输入语音进行了极限压缩高达384倍,而Whisper只有320倍

开源地址:https://github.com/usefulsensors/moonshine?tab=readme-ov-file

Moonshine模型是基于经典的Transformer架构开发而成,其输入是采样率为16,000 Hz的音频信号。编码器部分负责将输入的音频信号转换为一系列中间表示,而解码器部分则将这些中间表示转换为输出的文本序列。

在位置编码方面,Moonshine模型采用了RoPE(旋转位置嵌入),这是一种新型的位置编码方法。传统的绝对位置嵌入使用固定的模式来编码序列中每个元素的位置信息,但这种方法在处理可变长度的序列时存在局限性。RoPE通过将位置信息编码为旋转矩阵,使得模型能够更加灵活地处理不同长度的序列,同时保持了对序列顺序的敏感性。


这种编码方式在Moonshine模型中发挥了关键作用,使得它能够有效地处理不同长度的语音片段,而不需要对输入数据进行零填充,从而减少了算力负担。

Moonshine模型的输入是16,000 Hz采样的音频信号,不依赖于Mel频谱图等手工工程特征提取,而是直接对原始音频信号进行处理。这是通过一个短干实现的,由三个卷积层组成,这些卷积层的步长分别为64、3和2,可有效地将输入数据压缩了384倍。

这与Whisper模型的320倍相比,不仅减少了模型的计算需求,还有助于模型更快地处理音频数据。

在模型的内部结构上,Moonshine采用了自注意力机制,这是一种允许模型在处理序列数据时动态地关注序列的不同部分的技术。自注意力机制使得模型能够捕捉到语音信号中的复杂模式,并且能够根据上下文信息来调整其关注点,在处理语音识别任务时尤为重要。因为它需要模型能够理解语音信号中的各种声学特征,并且能够在不同的语境中正确地识别和生成词汇。

在模型的输出端,Moonshine使用了字节级BPE(字节对编码)文本分词器来处理英文文本。这种分词器能够将文本分解为一系列的字节对,这些字节对作为模型的输入单元。原始的词汇表大小为32,000,但为了未来的扩展,研究人员还增加了768个特殊标记。这种分词方法的选择是为了提高模型处理文本数据的灵活性和效率。

训练环境方面,Moonshine模型采用了32个H100 GPU组成的算力集群进行预训练。为了充分利用这些GPU资源,研究人员使用了Huggingface的Accelerate库来实现GPU数据并行性,允许模型在多个GPU上同时进行训练,从而显著提高了训练的效率。

研究人员还采用了BF16混合精度优化技术,通过使用较低精度的浮点数来减少计算过程中的内存消耗和计算延迟,同时仍然保持了足够的数值精度。这种优化对于大规模的深度学习模型尤其重要,可以在不牺牲模型性能的前提下显著降低训练成本。

为了评估Moonshine性能,研究人员在LibriSpeech、AMI、Gigaspeech等数据集上与Whisper进行了多维度对比测试,涵盖说话人、录音条件和噪声等不同环境。结果显示,Moonshine在计算效率、词错率、适应性、噪声干扰等方面都优于Whisper

例如,在高清晰语音样本中,Moonshine的词错率为3.23%,低于Whisper的4.25%,转译准确率更好。

本文素材来源Moonshine,如有侵权请联系删除

END

AIGC开放社区
专注AIGC领域的专业社区,关注微软OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!
 最新文章