Blog muito legal da @character_ai mergulhando em como eles treinaram seu modelo proprietário Kaiju (13B, 34B, 110B), antes de mudar para o modelo OSS, e spoiler: tem Noam Shazeer escrito por toda parte. A maioria das opções para design de modelo (MQA, SWA, KV Cache, Quantization) não são para otimizar para "benchmark AGI" (pense em MMLU), pois não é para isso que as pessoas usarão o modelo, mas sim para ter uma boa velocidade de serviço. Ainda assim, eles incluem código na mistura pré-treinamento e fazem recozimento em dados de alta qualidade "amigáveis ao benchmark". Uma coisa surpreendente é que esses modelos não são MoEs, apesar de pessoas que trabalham no personagem na época, como @stephenroller ou Noam, terem trabalhado anteriormente no MoE. Aqui estão algumas otimizações que eles fizeram -> Escalonamento semelhante ao MuP -> MQA + SWA -> Fixação em todos os lugares para controlar a ativação, não tenho certeza se é macio ou duro? -> Compartilhamento de cache KV -> Função de ativação Relu ^ 2 -> FSDP + TP + SP -> Comunicação gradiente Int6 -> Quantization Aware Training (QAT) com coisas como "bungee_scalar" para obter uma receita estável para modelos menores. KV Cache e passagem para frente estão em int8, gradiente e ativação estão em bf16, peso mestre e grad acc em fp32.