Mamba架构第一次做大!混合Transformer,打败Transformer
脱口秀是我生活的另一面。撰文 | 沈星月“我那时候想考的高校是南方医科大学,我虔诚到什么地步呢?我晚上吃夜宵都是吃南方牌芝麻糊的!”等台下的观众笑完,彭瑜紧接着继续抛梗,小小的演播厅里顿时爆发出一阵笑声。从家长里短到职业生涯趣事,在40岁那年,湖南妇女儿童医院生殖医学科医生彭瑜有了一个新身份—...
丰色 发自 凹非寺
量子位 | 公众号 QbitAI
精彩精彩,第一个把爆火Mamba架构真正扩展到足够大的工作来了。
520亿参数,还是Mamba+Transformer混合架构。
它的名字叫Jamba。
取两种架构之长,模型质量和效率兼得,要吞吐量有吞吐量,要低内存有低内存。
初步跑分显示:
Jamba性能总体接近Mixtral 8x-7B,处理128k长上下文时吞吐量却是其3倍。
一共支持256k上下文,而单张A100 GPU即可处理140k,直接拿下同等规模模型之最,高效又经济。
这项成果,来自以色列AI公司AI21labs。
Mamba原作者看了之后都激动转发:
绝对的“大 ”。
Mamba、Transformer,合体
由CMU和普林斯顿大学提出的Mamba,解决了Transformer的局限性(随着推理上下文越长,模型内存占用量越大,同时推理速度变慢,由此导致算力消耗巨大)。
但它也有自己的缺点——
在不关注整个上下文的情况下,Mamba的输出质量很差,尤其是在召回相关的任务上。
本着“既要也要”的原则,Jamba站出来提供两全其美之作。
Jamba由Transformer、Mamba和MoE层组成,可同时优化内存、吞吐量和性能。
如下图所示,为了集成两种架构,Jamba采用块层(blocks-and-layers)组合的创新方法。
简单来说,就是每个Jamba块包含一个注意力层或一个Mamba层,再跟一个多层感知器MLP,总体比例保证为每八层一个Transformer层。
其次,Jamba利用MoE来增加模型参数的总量,同时简化推理中使用的活动参数量。
最终模型容量高了,计算需求也没有相应的增加。
而为了在单张GPU(80GB)上最大限度地提高模型吞吐量,Jamba还优化了所用MoE层和专家数量,最终为日常推理工作负载留出足够内存。
值得一提的是,在推理时,Jamba的MoE层仅需520亿可用参数中的120亿,就能同时保证比同等大小的仅Transformer模型更高效。
要知道,此前有人光是尝试过扩展Mamba,就没能做到30亿参数之上。
因此,除了成功合体Mamba和Transformer,Jamba也达成了第二大成就:
同类中第一个达到生产级规模和质量的混合架构(SSM混Transformer)(ps. Mamba就是一种状态空间模型SSM)。
吞吐量和效率up
初步评估显示,Jamba在吞吐量和效率等关键指标上表现出色。
首先,Jamba可以在长上下文中提供3倍吞吐量,比Mixtral 8x7B等大小相当的Transformer模型都要高效。
如下图所示,当上下文窗口达到128k时,Jamba的每秒token数近乎1500,而此时表现最好的Mixtral 8x7B应该才在500往上的样子。
其次,在单张GPU上,Jamba最多可以容纳140k上下文,经济又高效。
相比之下,Mixtral 8x7B为64k,Llama2 70B则仅为16k。
第三,Jamba的输出质量也得到了保证。
在如下一系列推理基准上,4项中有3项它都拿下了SOTA。同时,在GSM8K等基准上,Jamba即使没有夺魁,也和SOTA模型打了个不相上下。
总体来说,Jamba的性能接近Mixtral 8x7B。
最后,作者提示,别忘了,这些都还只是初步改造后的结果,后续还有很多优化空间(比如MoE并行、更快的Mamba实现)。所以到时性能会更强。
好消息:Jamba现在已经上线Hugging Face,并且划重点:采用apache-2.0许可。
(Jamba的指令版本则将很快通过AI21labs平台上线。)
网友看完都感动哭了。
传送门:
https://huggingface.co/ai21labs/Jamba-v0.1
参考链接:
[1]https://www.ai21.com/blog/announcing-jamba
[2]https://www.ai21.com/jamba
[3]https://twitter.com/AI21Labs/status/1773350888427438424?s=20
[4]https://twitter.com/tri_dao/status/1773418926518734957?s=20