@character_ai 的博客非常酷,深入探讨了他们如何训练他们的专有模型 Kaiju(13B,34B,110B),然后转向 OSS 模型,剧透一下:这上面写满了 Noam Shazeer 的名字。 模型设计的大多数选择(MQA,SWA,KV 缓存,量化)并不是为了优化 "AGI 基准"(想想 MMLU),因为这并不是人们使用模型的目的,而是为了获得良好的服务速度。不过,他们在预训练混合中包含了代码,并对高质量的 "基准友好" 数据进行了退火。 一个令人惊讶的事情是,这些模型并不是 MoE,尽管当时在 character 工作的人,如 @stephenroller 或 Noam,之前都在 MoE 上工作过。 以下是他们进行的一些优化: -> 类似 MuP 的缩放 -> MQA + SWA -> 到处进行钳制以控制激活,不确定是软钳制还是硬钳制? -> KV 缓存共享 -> Relu^2 激活函数 -> FSDP + TP + SP -> Int6 梯度通信 -> 量化感知训练(QAT),使用 "bungee_scalar" 等工具为较小的模型获得稳定的配方。KV 缓存和前向传递使用 int8,梯度和激活使用 bf16,主权重和梯度累积使用 fp32。