以下计算只针对推理场景下,模型参数量(不包括激活值)进行估计
模型 | router 策略 | 总参数量 | 每个专家共享的参数量 | 推理时激活的参数量(共享参数 + router 选择专家的参数) |
---|
mistralai/Mixtral-8x7B | top2 | 46.7B(467亿) | 1.3B(13 亿) | 12.7B(127亿)== 1.3B + 5.7B + 5.7B (共享参数 + top2 选择两个专家的参数) |
mistralai/Mixtral-8x22B | top2 | 141B(1410亿) | 5B(50亿) | 39B(390亿)== 5B + 17B + 17B |
weights(参数量) | 参数占用字节 | 参数全部加载到 GPU 中,不采取 offload 策略 | offload 策略下理想状态下的 GPU 显存占用(只 load 激活的专家) |
---|
46.7B | fp32 | 186.8G | 50.8G |
141B | fp32 | 564G | 156G |
注:以上采用粗略的估算方法:每 1B 个参数,占用4G显存(实际应该是10^9*4/1024/1024/1024=3.725G),如果考虑到实际推理时的激活值GPU显存占用,1B 参数所需要的显存应该比 4G 要大
4 块 A100 80G,总共 320G 的显存。
- 不采用 offload 策略,理想状态下最大能加载进内存的模型参数量,fp32,最大参数量 80B,int4,最大参数量 80*8 B = 640B
- 采用理想的 offload 策略(只加载 token 需要的 experts),理想状态下最大能加载进内存的模型参数量,fp32,最大参数量大致 292B,int4,最大参数量大致 1168B
reference
- https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1
- https://huggingface.co/mistralai/Mixtral-8x22B-v0.1
- https://cloud.tencent.com/developer/article/2414220
- https://blog.csdn.net/weixin_44292902/article/details/133767448