Un blog molto interessante di @character_ai che esplora come hanno addestrato il loro modello proprietario Kaiju (13B, 34B, 110B), prima di passare a un modello OSS, e spoiler: ha la firma di Noam Shazeer. La maggior parte delle scelte per il design del modello (MQA, SWA, KV Cache, Quantizzazione) non sono fatte per ottimizzare il "benchmark AGI" (pensa a MMLU) poiché questo non è ciò per cui le persone utilizzeranno il modello, ma piuttosto per avere una buona velocità di servizio. Tuttavia, includono codice nel mix di pre-addestramento e fanno annealing su dati di alta qualità "friendly per il benchmark". Una cosa sorprendente è che quei modelli non sono MoE, nonostante le persone che lavoravano a character in quel momento come @stephenroller o Noam avessero precedentemente lavorato su MoE. Ecco alcune ottimizzazioni che hanno fatto: -> Scalabilità simile a MuP -> MQA + SWA -> Clamping ovunque per controllare l'attivazione, non sono sicuro se sia soft o hard? -> Condivisione della KV Cache -> Funzione di attivazione Relu^2 -> FSDP + TP + SP -> Comunicazione del gradiente Int6 -> Addestramento consapevole della quantizzazione (QAT) con cose come "bungee_scalar" per ottenere una ricetta stabile per modelli più piccoli. La KV Cache e il passaggio in avanti sono in int8, il gradiente e l'attivazione sono in bf16, il peso master e l'accumulo del gradiente in fp32.