Bardzo fajny blog autorstwa @character_ai, który zagłębia się w to, jak trenowali swój autorski model Kaiju (13B, 34B, 110B), zanim przeszli na model OSS, a spoiler: ma na sobie podpis Noama Shazeera. Większość wyborów dotyczących projektowania modelu (MQA, SWA, KV Cache, kwantyzacja) nie jest optymalizowana pod kątem "benchmarku AGI" (myśl MMLU), ponieważ nie o to chodzi, do czego ludzie będą używać modelu, ale raczej o dobrą prędkość serwowania. Mimo to, włączają kod do mieszanki wstępnego treningu i przeprowadzają annealing na wysokiej jakości danych "przyjaznych dla benchmarków". Jedną z zaskakujących rzeczy jest to, że te modele nie są MoE, mimo że osoby pracujące w character w tym czasie, takie jak @stephenroller czy Noam, wcześniej pracowały nad MoE. Oto kilka optymalizacji, które wprowadzili: -> Skalowanie podobne do MuP -> MQA + SWA -> Klampowanie wszędzie, aby kontrolować aktywację, nie jestem pewien, czy to jest miękkie, czy twarde? -> Dzielenie KV Cache -> Funkcja aktywacji Relu^2 -> FSDP + TP + SP -> Komunikacja gradientu Int6 -> Kwantyzacja świadomego treningu (QAT) z takimi rzeczami jak "bungee_scalar", aby uzyskać stabilny przepis na mniejsze modele. KV Cache i przejście do przodu są w int8, gradient i aktywacja są w bf16, a waga główna i akumulacja gradientu w fp32.