Um blog muito interessante de @character_ai que mergulha em como treinaram seu modelo proprietário Kaiju (13B, 34B, 110B), antes de mudar para um modelo OSS, e spoiler: tem Noam Shazeer escrito por toda parte. A maioria das escolhas para o design do modelo (MQA, SWA, KV Cache, Quantização) não são para otimizar para "benchmark de AGI" (pense em MMLU), uma vez que não é para isso que as pessoas usarão o modelo, mas sim para ter uma boa velocidade de atendimento. Ainda assim, eles incluem código na mistura de pré-treinamento e fazem resfriamento em dados de alta qualidade "amigáveis ao benchmark". Uma coisa surpreendente é que esses modelos não são MoEs, apesar de que pessoas que trabalhavam na character na época, como @stephenroller ou Noam, anteriormente trabalharam em MoE. Aqui estão algumas otimizações que eles fizeram -> Escalonamento semelhante ao MuP -> MQA + SWA -> Limitação em todos os lugares para controlar a ativação, não tenho certeza se é suave ou rígida? -> Compartilhamento de KV Cache -> Função de ativação Relu^2 -> FSDP + TP + SP -> Comunicação de gradiente Int6 -> Treinamento Consciente de Quantização (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 acumulação de gradiente em fp32.