【Paper速览】2024年11月

【Paper速览】项目是日常Paper阅读的笔记,每月一篇,内容限于Up感兴趣方向的Paper,记录关键信息。

  • LLM:上下文压缩、超长上下文、指令跟随、模型架构、继续训练、可控生成、各类应用
  • 多模态:对齐、融合、语音、视频
  • 强化学习:在LLM、Embody上的应用
  • 推理部署:蒸馏、量化、解码、异构、端侧

LLM

Stronger Models are NOT Stronger Teachers for Instruction Tuning,Allen,Instruction

更大更强的模型合成训练数据并不一定对小模型有用(大模型悖论:更大和更强的模型不一定是较小模型的更强教师),现有指标无法精确预测响应生成器的有效性,因为它们忽略了教师与正在微调的基本模型之间的兼容性。基于此,本文开发了一种新的指标,称为兼容性调整奖励 (CAR) 来衡量响应生成器(教师模型)的有效性。

问题1:哪些模型生成Instruction的响应(合成数据)最有效?

  • 同一族的大模型(如405B)相比小一点的模型并不总是增强小模型的指令跟随能力。
  • 开源模型效果比GPT-4好。

问题2:如何为某个base模型确定最有效的响应生成器?

  • 对齐数据选择的现有指标(质量、难度、响应长度)未能考虑被微调模型与响应生成模型之间的兼容性。
  • 本文将寻找最有效响应生成器的任务制定为风险回报问题。通过计算兼容性调整奖励 (CAR) 来解决这个问题,其中兼容性是风险因素。通过要微调的base模型的平均响应损失来量化的,较高的平均损失表示较低的兼容性,因此风险较高。

注意,本文的base模型是1.5B-4B的模型,响应生成器是1.5B-405B的各类开源模型。

评估base模型微调效果的两个指标:

  • win rate(WR):GPT更偏好的比率。
  • length-controlled with rate(LC):考虑响应长度减少WR的影响。

主要发现:

  • 大模型悖论:大不一定能提升base的指令跟随能力。
  • 同族互助:同一族模型的生成响应有更好的效果。
  • 开源 > 闭源:可能就是不兼容导致的结果。
  • 大的tempreturetop_p有更好的效果。
  • 拒绝采样能轻微提升效果。

衡量(响应生成器的有效性与微调base模型的指令跟踪能力之间的相关性)指标:

  • Reward:Reward Model
  • Difficulty:PPL和IFD(Instruction Following Difficulty)
  • Length:响应长度
  • CAR:兼容性调整奖励(和Reward对比)

CAR(Di,θ)=r(Di)1+βL(Di,θ)\operatorname{CAR}\left(\mathcal{D}_i, \theta\right)=\frac{r\left(\mathcal{D}_i\right)}{1+\beta \cdot L\left(\mathcal{D}_i, \theta\right)}

r是平均Reward,L是响应Di的平均Loss:

L(Di,θ)=1DiyiDilogpθ(yi)L\left(\mathcal{D}_i, \theta\right)=-\frac{1}{\left|\mathcal{D}_i\right|} \sum_{y_i \in \mathcal{D}_i} \log p_\theta\left(y_i\right)

为什么不能只考虑兼容性,因为如果模型为每个问题生成简单、低质量的响应,这种情况下兼容性很高,但整体质量更低。

Title: Growing a Tail: Increasing Output Diversity in Large Language Models

生成多样性:

  • Tempreture
  • 提示词从不同角度回答
  • 聚合多个模型的输出

IOPO: Empowering LLMs with Complex Instruction Following via Input-Output Preference Optimization,Ali,Instruction Following

IPIO = Input-Output Perference Optimization,同时考虑输出和输入。

现有的研究都是针对评估指令跟随的。本文:

  • 提出TRACE基准,提升LLM跟踪复杂细粒度约束指令的能力。
  • IPIO方法:同时关注输入X。

TRACE:

  • 构建步骤:
    • 分类约束(内容、情景、风格、格式、示例5类、26个维度)。
    • 约束扩充:单一到多种约束。
    • 结构化指令:任务描述、约束、输入。
    • 质量控制:确保指令有效,比如解决描述和约束之间的冗余。
    • 回复生成和评估:用LLM评估响应遵循指令约束的程度,完美10分的座位SFT数据集。
  • 评估准则:用GPT-4o,评估每个约束的得分,只有当复杂指令中的所有约束都完全遵循时,响应才被认为是正确的。

IPIO:

两个输入(x1, x2)和两个对应的输出(y1, y2),对应g1={<x1, y1>, <x2, y2>}要优于g2={<x1, y2>, <x2, y1>}

Loss就是DPO的扩展:

LIOPO(πθ)=Ex1,y1,x2,y2D{log[σ(12(2βlogπθ(y1x1)πref(y1x1)βlogπθ(y2x1)πref(y2x1)βlogπθ(y1x2)πref(y1x2)+2βlogπθ(y2x2)πref(y2x2)βlogπθ(y1x2)πref(y1x2)βlogπθ(y2x1)πref(y2x1)))]}\begin{aligned} & \mathcal{L}_{\mathrm{IOPO}}\left(\pi_\theta\right)=-\mathbb{E}_{x_1, y_1, x_2, y_2 \sim D}\left\{\operatorname { l o g } \left[\sigma \left(\frac { 1 } { 2 } \left(2 \beta \log \frac{\pi_\theta\left(y_1 \mid x_1\right)}{\pi_{\mathrm{ref}}\left(y_1 \mid x_1\right)}\right.\right.\right.\right. \\ & -\beta \log \frac{\pi_\theta\left(y_2 \mid x_1\right)}{\pi_{\mathrm{ref}}\left(y_2 \mid x_1\right)}-\beta \log \frac{\pi_\theta\left(y_1 \mid x_2\right)}{\pi_{\mathrm{ref}}\left(y_1 \mid x_2\right)}+2 \beta \log \frac{\pi_\theta\left(y_2 \mid x_2\right)}{\pi_{\mathrm{ref}}\left(y_2 \mid x_2\right)} \\ & \left.\left.\left.\left.-\beta \log \frac{\pi_\theta\left(y_1 \mid x_2\right)}{\pi_{\mathrm{ref}}\left(y_1 \mid x_2\right)}-\beta \log \frac{\pi_\theta\left(y_2 \mid x_1\right)}{\pi_{\mathrm{ref}}\left(y_2 \mid x_1\right)}\right)\right)\right]\right\} \end{aligned}

Speech

☆OmniFlatten: An End-to-end GPT Model for Seamless Voice Conversation,Ali,Full-Duplex、MM Align

双工,三阶段:模态对齐、单工、双工。挑战:低延时、自然交互。

mini-omniLLaMA-Omni 是单工的。

Moshi:并行框架GPT-based模型本身不支持,需要复杂的设计(声码延迟、inner monologue)。

SyncLLM:引入了重复数据删除策略来减轻无声语音对模型语义能力的影响。本文通过显式文本标记预测来增强对话模型的语义能力。

本文:三阶段后训练(无需预训练)、不改变LLM。

先使用ASR和TTS数据将LLM变成多模态LLM,保证LLM可以理解生成语音+文本。

然后就是三个阶段微调:

  • 用户输入和系统输出的文本和语音流展平为单个序列(即展平四个流数据)来训练模型进行半双工对话。
  • 移除用户输入文本流,对剩下的三个流进行细粒度分块和对齐,展平这些块,并继续使用结果展平的三个流数据训练模型。
  • 构建由只包含输入和输出语音的展平的两个流数据,并继续训练模型专注于语音生成。

交互打平输出:先输出固定chunk大小的文本Token,然后是固定chunk大小的语音Token。

Audio 编码:CosyVoice;解码:OT-CFM到Mel,HifiGAN到Audio。

模态对齐:

  • ASR: [A⁢S⁢R]⁢[S⁢O⁢S]⁢S_seq⁢[E⁢O⁢S]⁢[S⁢O⁢T]⁢T_seq⁢[E⁢O⁢T]
  • TTS: [T⁢T⁢S]⁢[S⁢O⁢T]⁢T_seq⁢[E⁢O⁢T]⁢[S⁢O⁢S]⁢S_seq⁢[E⁢O⁢S]

半双工训练:

全双工三流训练:Chunking+Speech-Text基于Chunk对齐,固定大小,2Token文本对应10Token语音。

全双工双流训练:

DC-Spin: A Speaker-invariant Speech Tokenizer for Spoken Language Models,MIT,Codec

DC-Spin 提取具有丰富语音信息且对输入变化具有弹性的说话人不变Token。具体来说,使用辅助码本扩展说话人不变聚类(Spin),Spin是一种自监督微调方法,

一个好的Tokenizer的关键条件:

  • 包含丰富的语音或语义信息。
  • 保持声学细节。
  • 对扰动(噪音、混响、说话人改变等)鲁棒。
  • 轻量、快速、支持实时交互。

Speaker-invariant Clustering (Spin):

  • 通过在线聚类和交换预测捕获语音信号中的与说话者无关的内容。
  • 训练时,通过随机调整基频和共振峰频率,使每个话语听起来像是不同的说话人,但内容相同。
  • 原始话语和扰动后的一起传给SSL,每个话语的帧级别输出被转为一系列概率分布,其中包含一个可学习的码本。概率分布被平滑处理以强制使用完整的码本,并作为训练目标。
  • 最后,该模型通过最小化原始码字分布与扰动输出中的平滑目标之间的交叉熵损失来执行交换预测,反之亦然。

Spin 作为 Tokenizer:

  • 阶段1:使用伪标签(来自K-Means或Spin units)预训练一个Encoder(SpinHuBERT)。
  • 阶段2:ASR/PR (phoneme recognition)微调。迫使模型忽略冗余信息并提取语音中的内容。
  • 阶段3:DC-Spin微调。两个码本:第一个主码本提取下游任务使用的离散Token;第二个辅助码本捕获细粒度音标单元。

Freeze-Omni: A Smart and Low Latency Speech-to-speech Dialogue Model with Frozen LLM,Tencent,OMNI、MM Align

LLM固定,三阶段,6w多轮对话数据,LLM能力不降(已有方案的问题),双工。

  • 使用ASR数据对齐Speech Encoder和LLM,然后固定LLM,使用Prompt Embedding让模型SpeechInput -> TextOutput。
  • 使用Text-Speech数据对训练基于自回归的Speech Decoder,输出Codec,使用LLM的hidden state将Speech Decoder的输出转移到LLM的输出文本空间,达到TextInput -> SpeechOut。
  • 基于Chunk的Speech-Speech微调。

阶段1 Speech Encoder:

  • 基于Chunk,Speech到连续特征再到LLM的Embedding空间。
  • 三阶段训练:ASR(Encoder)、ASR(LLM Adapter)、QA(Prompt Embedding)。

阶段2 Speech Decoder:

  • NAR + AR + Codec。
  • 三阶段训练:单码本Codec训练、NAR+AR、NAR Prefix Decoder(用于将语音解码器与 LLM 的输出紧密耦合)。

阶段3 Duplex:

  • VAD然后Chunk by Chunk给到OMNI。
  • LLM后接一个分类器预测状态(0表示LLM可以继续接受Chunk,1和2表示当前Chunk是最后一段语音,1表示LLM可以终止用户并进入生成阶段、2表示不需要终止用户)。
  • model as a server策略,用户的VAD触发后给Model Server发送Chunk。

连续(DST)、离散(CST)Token对比(基于LLM的语义任务,如ASR、音素识别、关键词识别、语音翻译、意图分类和情绪识别等)。

连续特征明显优于离散特征,尤其是在需要精细语义理解的任务上。其原因是:

  • 有限的Token粒度。
  • 低效的信息保留。

离散Token分成声学和语义,前者一般使用压缩方法,Encoder-Decoder的RVQ为主流;后者使用聚类方法从SSL中提取特征,类的序号就是离散Token。

影响DST的因素:

  • bitrate R:log2⁡V⋅C⋅Rs,V是词表大小,C是码本数,Rs是每秒的codes数。码本大效果好但收益递减。
  • 离散Token的不均衡问题:20%的Token占总出现次数的5%。这种不均匀分布在 LLM 训练过程中引入了噪音,因为模型可能会更多地关注频率更高的Token,而未能充分学习较不常见的Token,导致由未充分利用Token表示的语音片段的泛化能力不佳。
  • Tokenizer的鲁棒性:复杂音频(噪音、不同发音方式、远近距离麦克风录音等)导致离散Token难以有效捕捉语义,但先经过ASR预训练能提升将近10个点。

离散Token还有提升空间吗?

  • 更大的LLM提升更多。8B比0.5B整体提升明显,在ASR、音素识别、语音翻译、关键词识别上和连续Token接近,意图分类和情绪识别任务和连续Token依然有较大差距。
  • 不同层捕捉不同信息,适合不同任务。

更大的LLM实验结果其实能说明一个有意思的问题:对需要对音频整体把握理解才能判断的任务,离散Token不擅长。这其实很make sense,离散Token可能更多体现出和文本相关的语音信息,需要整体宏观感知的信息可能被割裂了。

SALMONN-omni: A Codec-free LLM for Full-duplex Speech Understanding and Generation,Tsing,Full-duplex

双工,加入”思考“机制,依赖Embedding而不是离散Token(第一个)。

无code的挑战:

  • 流式输入输出
  • 同时处理输入输出流
  • 处理自然对话中的复杂动态,如对话轮次切换、打断、重叠语音、其他声音等

具体做法:

  • 有”说话“和”没说话“两个状态,用start_speakend_speak两个特殊Token标记。
  • 对话别切成chunk block,block编码成Embedding,LLM基于Embedding生成Word Embedding,然后用来合成语音。纯端到端,没有文本。
  • 引入”think“机制(特殊Token),输出并没有明确强制包含(背后的思想是反映人的思维过程:内部思想和口头表达不一定相同,也不一定明确传达0)。用于应对两个挑战:
    • 非说话状态下,start_speak之前的Token难以确定。
    • 说话状态下,LLM已经完成生成文本Embedding,但语音合成器仍在生成和播放回答。

How do Multimodal Foundation Models Encode Text and Speech? An Analysis of Cross-Lingual and Cross-Modal Representations,KIT,MM-Representation

研究不同模态内部表示:

  • 跨模态表示在模型层收敛,但不包括专门用于文本和语音处理的初始层。这个算是常识。
  • 长度适配对于减少文本和语音之间的跨模态差距至关重要。这个比较新颖。
  • 语音比文本表示有更大的跨语言差异。这个符合常理,同样的文本语音表达多种多样。
  • 没有明确训练用于模态不可知表示的模型,模态差距比语言差距更突出。这个符合常理。

分析工具:Singular Vector Canonical Correlation Analysis(SVCCA),其对仿射变换的不变性适用于比较来自不同架构和维度的特征。

比较的模型:

关于长度适配的结论:对于Seamless和SALMONN,虽然它们的长度适配和窗口级Q-Former在减小模态差距方面产生了轻微积极影响,但这种效果似乎仅限于高资源和中等资源语言。

看论文描述并不是摘要中说的至关重要,结论值得商榷。

另外,本文选择的几个模型差别挺大,尤其是SALMONN,其实是一个AudioLLM,和Speech Translation本身是有区别的,前者输入输出语义并不相同。