重要提示

您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档

语音增强大型语言模型 (SpeechLLM)#

SpeechLLM 是一种多模态大型语言模型 (LLM),旨在理解和处理语音和音频输入。详细信息请参见 SpeechLLM 示例 README

一般来说,模块化 SpeechLLM 主要有三个组成部分

  • 一个音频编码器,用于处理输入音频并生成音频嵌入序列。

  • 一个模态适配器,用于处理音频嵌入并生成与预训练 LLM 的 token 嵌入在同一潜在空间中的嵌入序列。

  • 一个预训练 LLM,用于处理来自模态适配器的嵌入和来自输入提示的 token 嵌入,然后生成文本输出。音频嵌入和文本 token 嵌入在进入 LLM 之前在时间维度上连接。

  • LLM 根据连接的输入音频和文本嵌入生成文本输出。

模型架构#

将语音合并到 LLM 中的一种方法是在将语音特征与输入文本提示的 token 嵌入连接后,再将它们馈送到 LLM 中。通过这种方式,LLM 可以在生成输出文本时直接访问语音信息。语音增强语言模型 (SALM) 遵循这种方法。

SALM model

另一种方法是使用交叉注意力机制,其中文本嵌入关注语音嵌入以提取特定于任务的信息。为了最大限度地降低计算成本,我们仅在 LLM 之前添加交叉注意力模块。BESt features from TwO Worlds (BESTOW) 模型遵循这种方法。

BESTOW model

NeMo 框架包含用于训练和评估 SALM 和 BESTOW 模型的示例脚本。SALM 的预训练检查点也可用。