跳转至

LLM Post-Training

Abstract

  • LLM Fine-Tuning
    • Supervised Fine-Tuning (SFT)
    • Reinforcement Learning from Human Feedback (RLHF)
    • Parameter Efficient Fine-Tuning (PEFT)
      • BitFit, TinyTL, Adapter, Prompt-Tuning, Prefix-Tuning
      • LoRA, QLoRA, BitDelta
  • Multi-modal LLMs
    • Cross-Attention Based: Flamingo
    • Visual Tokens as Input: PaLM-E, VILA
    • Enabling Visual Outputs: VILA-U
  • Prompt Engineering
    • In-Context Learning (ICL)
    • Chain-of-Thought (CoT)
    • Retrieval Augmented Generation (RAG)

LLM Fine-Tuning

  • Supervised Fine-Tuning (SFT): 希望 LLMs 生成符合人类偏好的答案,因此我们把人类希望看到的答案作为 ground truth,然后用监督学习的方式微调。

    Example

  • Reinforcement Learning from Human Feedback (RLHF)

    • 传统的模型依赖于静态的度量(如 BLEU、ROUGE),但是 RLHF 能够基于主观的,人类定义的品质(如创造性、真实性、有用性)来进行优化。ChatGPT 就是一个使用 RLHF 的例子。

      • step 1: 从数据集中采样 prompt,同时人工写出希望的答案作为 ground truth,微调 GPT-3。
      • step 2: 采样 prompt,送到 SFT 后的模型进行生成,得到多个答案。由人工标注,对生成的答案进行排序,训练一个 reward model。
      • step 3: 采样 prompt,采用 PPO 进行强化学习,模型生成答案并得到 reward model 的打分,以此更新。

        这里微调时,使用一个 KL 散度的损失加上奖励模型的损失。KL 散度用于控制微调后的模型和初始的模型差别较小。

  • Direct Preference Optimization (DPO)

    • RLHF 需要训练多个模型,DPO 将问题转为单次 SFT 任务。

  • PEFT 同之前的内容,这里仅记录之前没提过的内容。

    • Bit-Delta
      • LoRA 微调中有很多冗余,实际上 Your Fine-Tune May Only Be Worth One Bit.
      • 微调时,\(\nabla\) 由一个 fp16 scale factor (per tensor) 乘上 1-b 矩阵得到(+1/-1),最终的权重是原始的权重加上 \(\nabla\)

Multi-model LLMs

  • Vision Language Model 要同时理解文本和图像,常用两种方式:
    • Cross-attention,将视觉信息注入 LLMs(Flamingo style)
    • 将 Visual tokens 作为输入(PaLM-E style)
  • Flamingo

    • 固定 LLM,添加 cross-attention 层来处理视觉信息。

    • 其中的 Perceiver Resampler 将变长的特征图映射到固定长度的 token。

      Example

      可以看到这里的输出与输入的 token 数量无关,5 和 dim 都是人为设定的。

    • 其中 cross-attention 的输入 K V 均来自 Perceiver Resampler 处理后的输入 X,而 Q 来自语言模型的输入 Y。这里我们有 tanh 来控制要添加多少视觉信息,因此初始化为 0。

  • PaLM-E

    • 将视觉输入(或者其他模态)作为 token 输入。(everything is tokenized.)

  • VILA: Visual Language Model

    • 通过 image tokens 增强语言模型。训练时先训练 projector,再预训练,最后进行 SFT。

    • Findings

      • 固定 LLMs 可以获得很好的 zero-shot 性能,但是缺少 in-context 学习的能力(这需要 unfreeze LLMs)。
      • Interlevead 的预训练数据最好,image-text pairs 不是最优的。
      • 即使是视觉模型,添加 text-only 的数据进行指令微调也是有必要的。
      • 原始图像的分辨率比 token 的数量更重要。

        High Resolution ViTs in VLMs

        为了支持更高的分辨率,

        • InternVL 通过 tiling + thumbnail 的方式。tiling 指有预定义好长宽的 template,将输入图像拆分为若干个 template,最后将 token 拼接起来即可;thumbnail 即对原始图像进行下采样,得到缩略图。(不同的视觉任务偏好不同的输入分辨率)
        • 另一种方式,把低分辨率的图像和文本特征作为 Q,高分辨率的图像作为 K V,。但这样需要重新训练 LLMs。

Prompt Engineering

  • ICL, CoT 同之前的内容
  • Retrieval Augmented Generation (RAG)
    • LLMs 不能把所有的知识记录在参数里,很容易过时而且很难更新。
    • Pipeline
      • Embedding Model: 将文本编码为向量。
      • Retriever: 从数据库中检索相关的文本。
      • Reranker (optional): 对检索到的文本进行排序,提供每个文档的相关分数。
      • Language model: 根据检索到的文本,以及最初的问题生成答案。

评论