Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

是否支持cpm2 finetune repo的模型 #24

Closed
2020zyc opened this issue Nov 6, 2021 · 4 comments
Closed

是否支持cpm2 finetune repo的模型 #24

2020zyc opened this issue Nov 6, 2021 · 4 comments
Labels
question Further information is requested

Comments

@2020zyc
Copy link

2020zyc commented Nov 6, 2021

请问该工具是否直接支持 cpm2-finetune配套的cpm2模型(需要到智源页面申请);
我下载了中英文模型,100亿参数,vocab大小51967;本来有4个单独的文件,我按照官方脚本将其合并成1个单文件模型,测试显示没问题;
修改一些参数后,用bminf 下的 example/generate_cpm2.py加载我合并的单文件模型进行测试,无法加载,错误如下:
image

更新1

  1. 我发现应该是要加载压缩量化等技术处理之后的模型,tool下有个migrate_cpm2.py,我用它做了量化工作,得到11g的模型;建议可以把文档写的详细一点。

  2. 用 migrate_cpm2.py量化后,重新微调是如何做的,类似 训练过程量化(quantized-aware)吗?
    image

  3. 我用generate_cpm2.py加载上面 量化后的11g模型,推理时设置最多生成100个字,查看显存占用要用13g+(A100),不知道要怎么做到你们 doc 说的 显存调度,可以在2080ti下跑推理(2080ti只有11g显存)?

  4. 请问怎么样把模型的模块拆分到不同gpu?这样可以解决第3步11g显存不够用的问题。比如把encoder、decoder分配到不同的gpu。我看模型构建并不是用torch等框架,数据迁移到显存主要靠with device 和 allocator好像,所以没太懂怎么把不同模块分配到不同gpu;

@a710128 期望回复,谢谢

@a710128
Copy link
Collaborator

a710128 commented Nov 8, 2021

  1. 将自己训练的模型导入到bminf中的文档还没有编写,我们计划会在之后结合cpm训练框架的更新进行统一的完善;
  2. 是训练过程量化;
  3. 显存调度是由bminf完成的,这个过程是自动的,所以可以直接在2080TI上跑起来。最低可以在1060上跑起来。
  4. 目前的bminf版本还没有提供多GPU支持,预计会在未来一段时间内加入到工具包中。

@2020zyc
Copy link
Author

2020zyc commented Nov 9, 2021

  1. 将自己训练的模型导入到bminf中的文档还没有编写,我们计划会在之后结合cpm训练框架的更新进行统一的完善;
  2. 是训练过程量化;
  3. 显存调度是由bminf完成的,这个过程是自动的,所以可以直接在2080TI上跑起来。最低可以在1060上跑起来。
  4. 目前的bminf版本还没有提供多GPU支持,预计会在未来一段时间内加入到工具包中。

谢谢回复。

想问一下bminf只实现了post-quantizaiton和基于此的推理是吗?

请问你们有开源的训练过程量化项目吗,或者有其他训练过程量化项目推荐吗,我想对cpm模型做一下训练过程量化,但是看了一圈资料不是很理解怎么实现?

@a710128 谢谢

@a710128
Copy link
Collaborator

a710128 commented Nov 11, 2021

  1. 将自己训练的模型导入到bminf中的文档还没有编写,我们计划会在之后结合cpm训练框架的更新进行统一的完善;
  2. 是训练过程量化;
  3. 显存调度是由bminf完成的,这个过程是自动的,所以可以直接在2080TI上跑起来。最低可以在1060上跑起来。
  4. 目前的bminf版本还没有提供多GPU支持,预计会在未来一段时间内加入到工具包中。

谢谢回复。

想问一下bminf只实现了post-quantizaiton和基于此的推理是吗?

请问你们有开源的训练过程量化项目吗,或者有其他训练过程量化项目推荐吗,我想对cpm模型做一下训练过程量化,但是看了一圈资料不是很理解怎么实现?

@a710128 谢谢

目前还没有开源量化训练部分。大概实现方法就是将线性层替换为int8精度,为矩阵的每行/列计算一个缩放的scale。

在Big Model Meetup 2的课件中有相关的资料:Big Model Meetup 第2期:大模型计算加速技术

@a710128 a710128 added the question Further information is requested label Nov 24, 2021
@a710128 a710128 closed this as completed Nov 24, 2021
@zhu1090093659
Copy link

请问为什么我在加载自己量化的模型后只能推理100多字符,而之前下载你们官方checpoint时却可以推理更多的字符(超过256)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants