Llama-Omni的验证-LLM多模态系列1

文摘   2024-10-14 14:42   韩国  

试了一下LLaMA-omni,语音入语音出。情感处理和工程化OpenAI gpt-4o realtime还是有不少差距。不过由于是开源的,而且论文写得不错,可以用来学习。

OpenAI gpt-4o realtime

Llama-Omni:

    

随着LLM的出现,人机交互的领域发生了显著的变化。尽管这些模型主要基于文本,但对于实现更无缝和自然的语音交互的兴趣日益浓厚。然而,在没有典型的语音转文本处理延迟和错误的情况下,实现语音交互仍然是一个挑战。

一、什么是Llama-Omni?

 
Llama-Omni是一种设计为语音到语音模型的AI系统,意味着它可以接受语音输入,并生成语音输出,而不需要将语音转录成文本作为中间步骤。

传统系统通常依赖于自动语音识别(ASR)组件将语音输入转录为文本,随后使用基于文本的语言模型生成响应。这个文本然后通过文本到语音(TTS)模型再次转换为语音。这一过程涉及多个步骤,导致了更高的延迟和潜在的转录错误。

然而,Llama-Omni绕过了中间的文本转录,直接进行语音到语音的转换:

  • 语音输入:模型接受原始语音作为输入。

  • 处理:语音被编码,适配到语言模型的嵌入空间,并由LLM处理以生成响应。

  • 语音输出:生成的响应被直接转换回语音,使用非自回归语音解码器。


二、Llama-Omni的架构

 
Llama-Omni的架构旨在通过一系列精心设计的组件实现与大型语言模型(LLM)的实时语音交互。这些组件包括语音编码器、语音适配器、大语言模型(LLM)和语音解码器。每个组件在将用户的语音输入转换为连贯且自然的语音或文本响应中都起着关键作用。

语音编码器

针对上图,以下是对各个部分的简要解释:

  1. Speech Encoder

    1. 使用Whisper-large-v3的编码器功能,将语音信号转换为语音特征表示。

  2. Speech Adaptor

    1. LLaMA-3.1-8B-Omni模型负责下采样,将语音特征调整为适合大型语言模型处理的格式。

  3. Large Language Model (LLM)

    1. 使用LLaMA-3.1-8B-Omni模型,处理经过适配的语音特征以生成文本和语音输出。

  4. 上采样

    1. LLaMA-3.1-8B-Omni完成上采样,将语言模型生成的文本信息转换为语音特征。

  5. Vocoder

    1. 使用HiFi-GAN vocoder,将解码后的离散单元转换为可播放的语音信号。


“采样”这个词来源于“采集样本”的意思。在信号处理和数据分析中,采样就是从一个连续的信号中提取出一系列离散的样本点。这个过程类似于从一个大集合中选取一些代表性的样本来进行分析和处理,因此称为“采样”。

在信号处理和模型架构中,先下采样再上采样的原因通常包括:

  1. 降低计算复杂度

  • 下采样:通过减少数据量,降低计算负担,使得处理更高效。

  • 上采样:在需要更高分辨率输出时,再恢复到较高的采样率。

  • 适配模型需求

    • 不同的模型组件可能对数据的分辨率有不同的要求。下采样可以将数据调整到适合的格式,而上采样则可以在输出时恢复必要的细节。

  • 噪声和冗余处理

    • 下采样可以帮助去除一些不必要的细节或噪声,简化数据。

    • 上采样可以在输出阶段通过插值等方法恢复数据的平滑性。

      这种方法在保持处理效率的同时,尽量减少对最终输出质量的影响。


    • 语音编码器采用了Whisper-large-v3,这是一种高效的语音识别模型。Whisper能够从用户的语音输入中提取高质量的语音表示,确保语音中的细微差别和细节被准确捕捉。通过利用Whisper庞大的数据集和预训练能力,Llama-Omni避免了在嘈杂或复杂环境中常见的语音识别错误。

    • 一旦语音被编码到特征空间H,语音适配器将这些特征映射到LLM的嵌入空间。这一步至关重要,因为LLM是基于文本输入训练的,语音表示必须适配成LLM可以有效处理的格式。

    • Llama-Omni架构的核心是其LLM,基于Llama-3.1–8B-Instruct模型。这个LLM设计用于处理指令任务,使其适用于简单和复杂的语音命令。LLM的角色是从下采样的语音表示生成有意义的文本响应。

    •  在生成文本输出后,Llama-Omni使用语音解码器将文本转换回语音。解码器是一个非自回归(NAR)流式Transformer模型,可以并行生成整个语音响应,而不是像自回归模型那样一次生成一个标记。这种并行化允许极低的延迟语音生成。解码器使用一种称为连接时序分类(CTC)的技术,将LLM的隐藏状态映射到离散的语音单元。这些单元随后被转换回音频。


    1. Speech Encoder

     

    • 公式: H = E(X_S) = [h1, h2, ..., hN]

    • 解释:

      • 输入的语音信号 X_S 经过编码器 E 处理,输出一系列隐藏状态或特征 H。

      • 这里,H 是一个包含 N 个隐藏状态向量的序列,每个 hi 对应于输入语音的第 i 帧的编码表示。

    2. Speech Adaptor

     

    • 公式: H' = [h'1, h'2, ..., h'N/k]

    • 解释:

      • 下采样因子为 k,通过将每 k 个连续帧组合成一个帧来减少 H 的序列长度。

      • 每个 h'i 是通过连接 k 个帧的特征得到的,表示为 h'i = [h(k(i-1)+1) ⊕ h(k(i-1)+2) ⊕ ... ⊕ h(ki)]。

      • 这里,⊕ 表示在特征维度上的连接。

    3. Large Language Model (LLM)

     

    • 角色:

      • 使用下采样后的语音表示 H' 生成有意义的文本响应。

      • 基于 LLaMA-3.1-8B-Instruct 模型,适用于处理各种语音指令。

    4. Speech Decoder

     

    • 公式: Y_S = D(Z) = [yS1, yS2, ..., yST]

    • 解释:

      • 将 LLM 输出的隐藏状态序列 Z 转换为语音标记序列。

      • 使用连接时序分类 (CTC) 技术,将 LLM 的隐藏状态映射为离散的语音单元。

      • CTC 损失函数用于训练期间对齐预测的语音单元和目标语音,公式为:
        L_CTC = - ∑ (从 t=1 到 T) log P(ST | SP)

      • 该损失鼓励模型输出与目标语音对应的语音单元序列,同时允许语音的时间和长度变化。


    三、端到端训练与优化

     
    整个Llama-Omni架构进行端到端训练,使模型能够同时优化每个组件(编码器、适配器、LLM和解码器)。训练的目标函数结合了语音解码器的CTC损失和LLM文本生成的交叉熵损失。

    • 公式: L = λ1 * L_CTC + λ2 * L_CE

    • 解释:

      • 整个 Llama-Omni 架构是端到端训练的,这允许模型同时优化每个组件(编码器、适配器、LLM 和解码器)。

      • 训练的目标函数结合了语音解码器的 CTC 损失和 LLM 文本生成的交叉熵损失。

      • λ1 和 λ2 是超参数,用于平衡这两个损失项。


    四、流式和实时推理

     
    在推理过程中,Llama-Omni以流式模式运行,实时处理语音输入,并在接收到足够的输入后立即开始生成响应。这种流式方法通过允许LLM和语音解码器并行工作,而无需等待完整的输入序列处理完毕,从而最大限度地减少了延迟。

    InstructS2S-200K:用于语音交互的定制数据集

     
    Llama-Omni最具创新性的方面之一是其使用了一个名为InstructS2S-200K的定制数据集,该数据集包含20万条语音指令及其对应的语音响应。这一数据集对于训练模型处理各种语音交互场景至关重要,确保Llama-Omni在不同语言环境和领域中表现出色。

    与之前需要大量文本数据的模型不同,InstructS2S-200K提供了一个专门为语音交互设计的精简数据集。这种优化使Llama-Omni能够在使用较少计算资源的情况下实现卓越的性能。训练模型只需不到三天的时间,并且只需四个GPU,使其对未来的研究人员和开发人员更具可访问性。

    五、性能与评估

     

    低延迟与高质量响应

     
    Llama-Omni的主要目标之一是最小化响应延迟。实验结果表明,该模型的响应延迟低至226毫秒,显著快于其他语音语言模型。这种低延迟性能对于实时应用(如语音助手或车载导航系统)至关重要,因为延迟会使用户感到沮丧并降低交互的感知质量。

    除了速度,Llama-Omni还能生成高质量的响应,这些响应在内容和风格上都很出色。模型能够生成连贯、上下文适宜的语音,避免了机器生成语音常见的尴尬。

    与文本到语音模型的比较

     
    Llama-Omni在几个关键领域优于其前辈。像SpeechGPT这样的模型虽然强大,但依赖于更繁琐的系统来将语音转录为文本,然后生成响应,导致更高的延迟和潜在的转录错误。相比之下,Llama-Omni的直接语音到响应系统完全绕过了这一步,确保了更顺畅和更快速的交互。

    此外,Llama-Omni的计算效率也使其在以前的模型中脱颖而出。其简化的训练过程使其对开发人员和研究人员更具可访问性,无需大量计算资源,从而为语音交互技术的进一步创新打开了大门。

    六、实际应用

     

    1. 语音助手

     
    Llama-Omni生成的低延迟、高质量响应使其非常适合用于语音助手。无论是用于智能音箱、手机还是其他物联网设备,Llama-Omni处理复杂语音交互的能力将大大提高用户满意度,并扩展这些助手的功能。

    2. 无障碍解决方案

     
    对于那些在打字或使用传统输入设备方面有困难的用户,Llama-Omni驱动的语音接口可以提供一种无价的替代方案。其实时响应和高精度确保用户能够高效且有效地与数字内容交互,打破了可访问性的障碍。

    3. 客户支持

     
    客户服务是Llama-Omni可以大放异彩的另一个领域。模型处理细微语音查询的能力使其成为自动化客户支持系统的理想候选者。企业可以使用Llama-Omni处理各种客户交互,而不牺牲服务质量。

    4. 车载导航和娱乐

     
    Llama-Omni的低延迟性能特别适合车载系统,快速准确的响应至关重要。驾驶员可以发出语音命令进行导航、控制车载娱乐系统或请求实时更新,而无需将目光从道路上移开。

    5. 教育与学习

     
    将Llama-Omni集成到教育工具中可以改变学习体验。学生可以与AI导师进行对话,提出关于困难概念的问题,并获得即时反馈。Llama-Omni提供的实时语音交互可以使学习更具吸引力和可访问性。


    大魏分享
    https://github.com/davidsajare/david-share.git
     最新文章