Sehr cooler Blog von @character_ai, der darauf eingeht, wie sie ihr proprietäres Modell Kaiju (13B, 34B, 110B) trainiert haben, bevor sie zu einem OSS-Modell gewechselt sind, und Spoiler: Es trägt die Handschrift von Noam Shazeer. Die meisten Entscheidungen für das Modeldesign (MQA, SWA, KV Cache, Quantisierung) sind nicht darauf ausgelegt, für den "AGI-Benchmark" (denken Sie an MMLU) zu optimieren, da dies nicht der Zweck ist, für den die Leute das Modell verwenden werden, sondern stattdessen eine gute Serviergeschwindigkeit zu haben. Dennoch fügen sie Code in die Vortraining-Mischung ein und führen ein Annealing mit hochwertigen "benchmarkfreundlichen" Daten durch. Eine überraschende Sache ist, dass diese Modelle keine MoEs sind, obwohl Leute, die damals bei character arbeiteten, wie @stephenroller oder Noam, zuvor an MoE gearbeitet haben. Hier sind einige Optimierungen, die sie vorgenommen haben: -> MuP-ähnliches Scaling -> MQA + SWA -> Überall Clamping zur Kontrolle der Aktivierung, nicht sicher, ob es weich oder hart ist? -> KV Cache Sharing -> Relu^2 Aktivierungsfunktion -> FSDP + TP + SP -> Int6 Gradientkommunikation -> Quantization Aware Training (QAT) mit Dingen wie "bungee_scalar", um ein stabiles Rezept für kleinere Modelle zu erhalten. KV Cache und Vorwärtsdurchlauf sind in int8, Gradient und Aktivierung sind in bf16, Mastergewicht und Gradientenakkumulation in fp32.