很久沒有@character_ai 的消息了,今天突然看到他們發布了新模型“Kaiju”。 Kaiju 不是追求學術基準的通用模型,而是專注於實際生產環境中的對話效能和部署效率。這篇部落格分享了從架構設計、訓練優化到資料策略和安全對齊的整個過程,值得看看。 模型概述 Kaiju系列包含三個規模:小(13B 參數)、中(34B 參數)和大(110B 參數)。這些模型基於稠密Transformer 架構,採用自回歸生成方式,專為對話場景最佳化。不同於追求高基準分數的模型,Kaiju 優先考慮推理效率和使用者互動質量,例如快速回應和生動對話。這反映了團隊的觀點:生產績效比學術指標更重要。 架構創新文章的核心在於多項效率最佳化技術,確保模型在規模化部署時保持高效能: · 多重查詢注意力(MQA):減少鍵-值(KV)快取大小,提高對話推理效率。儘管在某些基準測試中略有品質損失,但對對話任務影響最小。 · 滑動視窗注意力:限制注意力範圍為1024個token,並交替使用全域層(比例6:1)。這顯著降低長上下文計算量,同時不犧牲檢索準確性,避免了傳統方法如注意力沉沒(attention sinks)的複雜性。 · 跨層KV 共享:每2-3層共享一個KV 緩存,進一步壓縮內存,無明顯準確性下降。 · Int8 量化:權重和矩陣乘法使用8位元整數儲存和計算,比16位元浮點數快20-30%,透過量化感知訓練(QAT)確保精確度接近原生水準。 · 其他最佳化:預層歸一化(RMSNorm)和動態箝位(clamping)增強穩定性,避免訓練中的數值問題。 模型訓練訓練在Google Cloud H100 GPU 叢集上進行,採用模型平行策略(節點內張量與序列並行,節點間全分片資料並行)。關鍵效率技巧包括: · 低精度計算:權重和KV 使用Int8,前向激活和局部梯度用BF16,梯度累積和權重用FP32。 · 梯度壓縮:引入Squinch 演算法,將梯度壓縮至6位元(塊狀、對數均勻建模),減少通訊開銷。 · 穩定性增強:對於小模型,使用Bungee 虛擬標量避免Int8 溢出;也實驗了三元權重更新(每參數1.6位元),進一步壓縮儲存。 資料策略資料混合是Kaiju 成功的關鍵。作者將數據分為兩類: · MMLU Max:針對AGI 基準,包含網路規模文字、程式碼和合成數據,使用T5 嵌入計算相似度。 · Production Max:聚焦使用者互動,強調指令跟隨。 訓練後期採用退火策略,逐步增加指令資料和MMLU 相關內容,以平衡基準效能和實際應用。這避免了過度優化單一指標,確保模型在對話中更自然。 安全與對齊安全是文章強調的重點,採用多階段方法: · 監督微調:使用高品質資料調整模型行為。 · 強化學習:基於使用者回饋(如「滑動」或偏好)進行修改版線上直接偏好最佳化(DPO),提升互動品質。 · 分類器訓練:整合選用分類器頭,提供標記級安全指標。 · 推理時控制:使用分類器引導的束搜索,確保生成內容安全可靠。 挑戰與解決方案文章客觀討論了權衡取捨:例如,MQA 雖高效但可能影響基準分數,作者通過專注非AGI 任務(如對話)化解;長上下文計算昂貴,則用滑動窗口和KV 共享應對;低精度訓練易不穩定,則引入QAT 和Bungee 等創新。整體上,這些解決方案證明了效率優化不一定犧牲質量,尤其在生產環境中。 部落格網址:
正在載入線程內容
正在從 X 取得原始推文,整理成清爽的閱讀畫面。
通常只需幾秒鐘,請稍候。
