openai 开源模型权重在huggingaface意外被公开了。
OpenAI 的开源模型可能的技术细节:
120B MoE 5B 活跃 + 20B 仅文本
根据 https://x.com/apples\_jimmy/status/1951180954208444758 的说法,最有可能发布两个模型—
一个 120B 的 MoE 模型,其中 5B/6B 活跃,另一个可能是 20B 的稠密模型(或 MoE 模型)。目前最可能不是多模态的,仅限于文本。
bf16 + float4
MoE是 Float 4, Attention 和 Router 是 BF16
SwiGLU 激活函数裁剪范围 (-7,7),类似于 ReLU6
将 SwiGLU 激活函数裁剪到 -7 到 7 之间,以减少异常值并辅助 Float4 量化。通常,-6 到 6 的范围对于 Float4 的范围是好的,但 -7 和 7 也是可以的。
通过 YaRN 从 4K 扩展到 128K 上下文
通过 YaRN 从 4K 原生上下文扩展到 128K。长上下文扩展可能是在训练中期完成的。
128 的滑动窗口 + 注意力沉淀
使用了 128 的滑动窗口注意力 (SWA),但为了弥补 SWA 无法记住过去信息的问题,使用了类似于 https://arxiv.org/abs/2309.17453 中的 attention sinks。
可能使用了 4 / 8 个向量。
TensorRT-LLM 支持“sink_token_length”标志用于注意力沉淀
https://nvidia.github.io/TensorRT-LLM/advanced/gpt-attention.html#streamingllm
Llama/Mixtral 架构 + Bias
QKV 和 MLP 似乎都进行了合并,并且所有模块都使用了Bias。MoE 路由 (Router) 也带有Bias。
最后,来自@UnslothAI 的一图流: