根据支持列表,DS MII似乎只支持OPT最多66B,这对175B模型意味着什么?这是否意味着没有针对175B模型的内核注入可用?
如果是这样的话,我猜想将模型拆分到多个设备是不可行的,因为GPU无法加载这个太大的模型。顺便说一下,如果真是这样,我想看看Zero Inference是否是一个好的替代方案。我看到过一个gpt2的例子,https://github.com/microsoft/DeepSpeed-MII/blob/main/examples/local/text-generation-zero-example.py,但它有许多非常细粒度的配置来决定GPU块或桶大小,它们没有文档字符串来解释,我不确定这个配置是否适用于例如OPT-175B的情况。
谢谢!
3条答案
按热度按时间ivqmmu1c1#
@Emerald01,内核注入应该支持OPT 175B变体。然而,我目前无法访问该模型以进行测试。您可能需要启用
load_with_sys_mem
才能在不出现OOM错误的情况下加载模型(DeepSpeed-MII/mii/config.py
第40行 9ec2f12
| | load_with_sys_mem: bool=False |
)。然而,这仍然需要您的系统具有大量的可用系统内存。
我认为正确的解决方案是启用使用元Tensor的较大OPT模型的加载。这是DeepSpeed-Inference可以实现的,但我们目前在MII中没有启用它。
此外,ZeRO的配置与DeepSpeed相同(我们在MII中将配置字典直接传递给DeepSpeed)。您可以在此处找到这些配置的解释:https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training
628mspwn2#
关于这个的更新:现在可以在MII中使用#199实现元Tensor支持和OPT。以下是一个使用OPT-66B的例子:
如果你有一个本地目录中有175B的权重,你可以为
model="path/to/weights"
提供该目录路径,它应该可以正常工作。如果你遇到任何问题,请告诉我。ar7v8xwq3#
你好,
关于上面的对话,我一直在学习如何使用deepspeed-mii,特别是在使用ZeRO功能时。我一直尝试使用3090来提供gpx-neox-20b服务,并启用CPU卸载或NVMe卸载。我总是遇到OOM错误,如下所示。我试图做的事情是否可行?我们的系统有256GB的RAM。请参阅下面的错误消息下方的ds_config。