开发者社区 > ModelScope模型即服务 > 计算机视觉 > 正文

modelscope中,什么框架实现了这个?

"问题1:a043922bdcfe45b7783c1981c2b79770.png
ae4dcfeb4d8cead86c0cb135a076d291.png
modelscope中,现在有框架做 一个模型 切割成不同的子模型,pipeline到不同的显卡里面,做更新吧。 保存的时候,就给个编号,最后加载的时候,合并就行?
什么框架实现了这个?把一个大模型,切割成子模型。 不是单个大模型的cp。 不是模型并行。 也就是说transformers库在device_map上也是把这个实现了的吧。
问题2:为啥可训练参数只有1.6m。 模型暂用16.8G。 24G的显存不够呢? 反向传播也只多了1.6m*2? 左右的参数?GRADIENT_CHECKPOINTING 具体是啥原理?"

展开
收起
十一0204 2023-07-12 00:27:44 77 0
3 条回答
写回答
取消 提交回答
  • 在 Modelscope 中,可以使用框架将一个模型切割成多个子模型,并将它们分配到不同的显卡进行并行处理。这种方式通常被称为模型并行化。

    对于保存和加载模型的问题,您可以采取一些策略来方便地合并和管理这些子模型:

    1. 保存编号和配置信息:在保存每个子模型时,为其分配一个唯一的编号,并将相关的配置信息(例如模型参数、优化器状态等)也保存下来。

    2. 加载子模型并重建模型:在加载阶段,首先加载各个子模型及其对应的编号和配置信息。然后,根据需要,创建一个主模型,并将加载的子模型合并到主模型中。此过程可能涉及重新连接层、调整权重等操作,以确保子模型正确融入主模型。

    3. 恢复训练状态:如果您希望加载的模型能够继续之前的训练状态,还需恢复优化器状态、学习率等设置。这可以通过加载和应用相应的优化器状态字典来实现。

    4. 合并和同步参数:在模型合并后,确保各个子模型共享相同的权重参数,并执行必要的同步操作,以使模型在进行推理或训练时具有一致的结果。

    需要明确指出的是,将模型切割并在多个显卡上运行,以及合并和管理这些子模型,需要一些额外的工作和代码实现。具体的细节和实施方法可能会因框架和应用需求而有所不同。

    如果您打算在 Modelscope 平台上进行此类操作,建议参考 Modelscope 提供的文档、示例代码和支持论坛,以获取更详细的步骤和指导。

    2023-07-24 15:13:15
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    ModelScope 平台支持多种深度学习框架,包括 TensorFlow、PyTorch、Keras、MXNet、Caffe 等。不同的模型和任务可以选择不同的框架进行实现和运行。

    例如,您可以使用 TensorFlow 框架来实现和训练模型,并使用 ModelScope 平台的 pipeline 功能来进行模型训练、推断和评估。在 pipeline 中,您可以选择 TensorFlow 作为后端框架,并使用 TensorFlow 的 API 进行模型的定义和训练。同时,您还可以使用 ModelScope 平台提供的数据处理、模型保存和加载等功能,简化深度学习任务的开发和部署过程。

    除了 TensorFlow,PyTorch 也是 ModelScope 平台中常用的框架之一。使用 PyTorch 框架,您可以轻松地实现和训练深度学习模型,并使用 ModelScope 平台的功能进行模型管理和部署。

    2023-07-18 09:02:47
    赞同 展开评论 打赏
  • 意中人就是我呀!

    回答1:这个模型目前显存占用是40G,目前官方已经更新了支持gradient checkpointing的版本,我们正在更新中,最近可以更新好。
    回答2:前向forward的时候忽略grad,反向的时候重新计算.
    这个目前我这里也比较奇怪,glm2比glm1就是占用大一些,我们也在更新训练代码弄清原因,如果发现有问题会在过两天的时候修复掉。此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”

    2023-07-12 10:13:43
    赞同 展开评论 打赏

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

相关电子书

更多
视觉AI能力的开放现状及ModelScope实战 立即下载
ModelScope助力语音AI模型创新与应用 立即下载
低代码开发师(初级)实战教程 立即下载