Visual Instruction Tuning

馒头and花卷發表於2024-06-14

目錄
  • LLaVA
  • 程式碼

Liu H., Li C., Wu Q. and Lee Y. J. Visual Instruction Tuning. NeurIPS, 2023.

LLaVA.

LLaVA

  • LLaVA 希望用 LLM 推理模態特徵, 想法很簡單:

    1. 用 Vision Encoder 得到模態特徵:

      \[\mathbf{Z}_v = g(\mathbf{X}_v). \]

    2. 用 Linear 投影:

      \[\mathbf{H}_v = \mathbf{W} \cdot \mathbf{Z}_v. \]

    3. \(\mathbf{H}_v\) 和指令 \(\mathbf{H}_q\) 憑藉起來作為 LLM 的輸入.
  • 訓練的 Instruct 是這麼構造的: \((\mathbf{X}_q^1, \mathbf{X}_a^1, \cdots, \mathbf{X}_q^T, \mathbf{X}_a^T)\), 對於每個圖片都有 \(T\) 輪的對話資料 (question, answer). 然後

    \[\mathbf{X}_{instruct}^t = \left \{ \begin{array}{ll} \text{Randomly choose } [\mathbf{X}_q^1, \mathbf{X}_v] \text{ or } [\mathbf{X}_v, \mathbf{X}_q^1], & \text{the first trun } t = 1, \\ \mathbf{X}_q^t, & \text{the remaining turns } t > 1. \end{array} \right . \]

    即就第一次的時候加一個圖片 (可以是圖片在前, 也可以是指令在前, 這比較符合實際的使用習慣).

  • Pre-training: 預訓練的時候固定 Vision encoder 和 LLM, 之訓練 projecter:

    \[\min_{\mathbf{W}} \quad -\log p(\mathbf{X}_a, \mathbf{X}_v, \mathbf{X}_{instruct}). \]

  • Fine-tuning: 固定 Vision encoder, 微調 LLM 和 projecter, 在一些 QA 資料集上微調.

程式碼

[official-code]

相關文章