Kimi-VL開源多模態大模型結構、訓練方法、訓練數據淺析 原創
模型架構
Kimi-VL模型整體架構框架與前期內容介紹的llava、reyes等多模態大模型的架構大差不差,組成形式:視覺編碼器(MoonViT)+ MLP層 + MoE的LLM。
模型架構
1. MoonViT:視覺編碼器
MoonViT的設計目標是能夠以圖像的原始分辨率處理圖像,從而消除復雜的子圖像分割和拼接操作。這種設計使得MoonViT能夠更靈活地處理不同分辨率的圖像,而不需要進行額外的預處理步驟。
實現方式:
- 圖像分塊和拼接:MoonViT采用NaViT中的打包方法,將圖像分割成補丁,展平后順序連接成一維序列。便于使用FlashAttention進行優化注意力計算。
- 位置編碼:MoonViT從SigLIP-SO-400M初始化,并使用插值的位置嵌入來更好地保留SigLIP的能力。然而隨著圖像分辨率的增加,這些插值的位置嵌入變得不足。為了解決這個問題,MoonViT引入了二維旋轉位置嵌入(RoPE),這在高度和寬度維度上改進了對細粒度位置信息的表示,特別是在高分辨率圖像中。
- 連續特征輸出:經過處理后,MoonViT輸出的連續圖像特征被傳遞到MLP層,對齊LLM的維度。
2. MLP層
MLP層的作用是連接MoonViT和LLM:首先,MLP投影器使用像素重排操作來壓縮MoonViT提取的圖像特征的空間維度,進行2x2的下采樣并相應地擴展通道維度。壓縮后的特征隨后輸入到一個兩層MLP中,將其投影到與LLM嵌入相同的維度。
3. 混合專家(MoE)語言模型
Kimi-VL的語言模型基于2.8B激活參數的MoE語言模型-Moonlight模型,總共有16B參數。Moonlight模型從預訓練階段的中間檢查點初始化,該檢查點已經處理了5.2T個純文本令牌,并激活了8K的上下文長度。
預訓練數據與方法
四階段訓練數據情況
Kimi-VL的預訓練搞了四個階段,每個階段都有特定的目標和數據集。
總結如下:
總結
階段 | 目標 | 損失函數/數據 | 訓練策略 |
訓練階段 | 訓練一個能夠處理原生分辨率圖像的視覺編碼器(MoonViT) | 最終損失函數為 ,其中 ;圖像和文本編碼器計算對比損失,文本解碼器進行條件生成的下一個標記預測(NTP) | 1. 初始化時,使用SigLIP SO-400M的權重,并采用漸進分辨率采樣策略來逐步允許更大的尺寸 |
聯合預訓練階段 | 通過結合純文本數據和多模態數據來增強模型的語言和多模態能力 | 純文本數據和多模態數據 | 繼續使用加載的LLM檢查點進行訓練,消耗額外的1.4T token。初始步驟僅使用語言數據,然后逐漸增加多模態數據的比例 |
聯合冷卻階段 | 通過高質量的語言和多模態數據進一步確保模型的性能 | 1. 高質量的語言和多模態數據集 | 1. 通過實驗驗證,觀察到在冷卻階段引入合成數據可以顯著提高性能 |
聯合長上下文激活階段 | 擴展模型的上下文長度,使其能夠處理長文本和多模態輸入 | 1. 長文本、長視頻和長文檔等多模態數據 | 1. 將模型的上下文長度從8192(8K)擴展到131072(128K) |
后訓練方法
后訓練過程
總結
階段 | 目標 | 技術實現 | 訓練策略 |
聯合監督微調(SFT) | 通過指令微調來增強模型的指令遵循能力和對話能力,從而創建一個交互式的Kimi-VL模型 | 1. 使用ChatML格式進行指令優化,保持與Kimi-VL架構的一致性 | 1. 首先在32k令牌的序列長度上訓練1個epoch,然后在128k令牌的序列長度上再訓練1個epoch |
長鏈推理(CoT)監督微調 | 通過構建高質量的推理路徑數據集來增強模型的長鏈推理能力 | 1. 使用提示工程構建一個小型但高質量的長鏈推理預熱數據集,包含文本和圖像輸入的準確驗證推理路徑 | 1. 通過提示工程生成長鏈推理路徑,類似于拒絕采樣(RS),但專注于通過提示工程生成長鏈推理路徑 |
強化學習(RL) | 通過強化學習進一步提升模型的推理能力,使其能夠自主生成結構化的CoT推理路徑 | 1. 采用在線策略鏡像下降變體作為RL算法,迭代優化策略模型 以提高其問題解決準確性 | 1. 在每個訓練迭代中,從數據集D中采樣一個問題批次,并使用策略梯度更新模型參數到 |
數據構建方法
數據類型 | 目標 | 數據來源 | 質量控制/數據增強 |
字幕數據 | 為模型提供基本的模態對齊和廣泛的世界知識,使多模態LLM以高學習效率獲得更廣泛的世界知識 | 1. 多種開源的中英文字幕數據集,如Schuhmann et al. (2022) 和 Gadre et al. (2024) | 1. 嚴格限制合成字幕數據的比重,減少幻覺風險 |
圖像-文本交錯數據 | 在多模態預訓練階段增強多圖像理解能力、提供詳細圖像知識、獲得更長多模態上下文學習能力 | 1. 開源的交錯數據集,如Zhu et al. (2024) 和 Laurencon et al. (2024) | 1. 進行標準過濾、去重等質量控制流程 |
OCR數據 | 將圖像中的文本轉換為可編輯格式,使模型更好地與人類價值觀對齊 | 1. 開源和內部數據集,涵蓋單頁和多頁輸入,多種語言和密集文本布局 | 應用廣泛的數據增強技術,如旋轉、失真、顏色調整和噪聲添加,提高模型的魯棒性 |
知識數據 | 從多樣化的來源組裝一個全面的人類知識庫,進一步增強模型的能力 | 1. 類似于文本預訓練數據,從教科書、研究論文和其他學術材料中收集 | 為避免模型僅關注OCR信息,開發額外管道捕獲嵌入在圖像中的純文本內容 |
代理數據 | 增強模型在代理任務中的接地和規劃能力 | 1. 公開數據和內部平臺收集的虛擬機環境截圖和相應動作數據 | 無 |
視頻數據 | 在預訓練、冷卻和長上下文激活階段增強模型能力,使其理解長上下文序列和感知短視頻片段中的精細時空對應關系 | 1. 開源數據集和內部網絡規模視頻數據,覆蓋不同持續時間的視頻 | 1. 對于長視頻,設計管道生成密集字幕,嚴格限制合成密集視頻描述數據的比重以減少幻覺風險 |
文本數據 | 為訓練大型語言模型(LLMs)提供全面和高質量的數據 | 1. 覆蓋五個領域:英語、中文、代碼、數學與推理、知識 | 1. 對每個數據源進行嚴格的個體驗證,評估其對整體訓練配方的具體貢獻 |
實驗效果
參考文獻:KIMI-VL TECHNICAL REPORT,https://github.com/MoonshotAI/Kimi-VL/blob/main/Kimi-VL.pdf
公眾號大模型自然語言處理 作者:余俊暉
原文鏈接:??https://mp.weixin.qq.com/s/z6jlbWbqbrOEJUIhT5Ajwg??
