我使用DPOptimizer微调GPT,速度太慢,我使用了四条数据,batchsize设置为2,使用正常微调20epochs,花费<4min,但是使用DPOptimizer则无法微调,大概过了40分钟,被迫终止了运行。
我使用的包版本如下:
mindarmour 1.8.0
mindformers 0.3.0
mindinsight 1.8.0
mindspore-ascend 1.8.1
mindx-elastic 0.0.1
modelarts-mindspore-model-server 1.0.4
因为每次使用DPOptimier都无法得到运行结果,所以没有具体的时间,我使用的代码如下:
因为微调的代码有数据集,不方便复现。我使用下面的代码也遇到了跑不出结果的问题,请问要如何解决?
from mindformers import GPT2LMHeadModel, GPT2Tokenizer
from mindarmour.privacy.diff_privacy import DPOptimizerClassFactory
import mindspore as ms
model = GPT2LMHeadModel.from_pretrained('gpt2')
model.set_train(False)
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
GaussianSGD = DPOptimizerClassFactory(micro_batches=2)
GaussianSGD.set_mechanisms('Gaussian', norm_bound=1.0, initial_noise_multiplier=1.5)
opt = GaussianSGD.create('Momentum')(params=model.trainable_params(),
learning_rate=0.001,
momentum=0.9)
# opt = ms.nn.Adam(model.trainable_params())
grad_fn = ms.ops.value_and_grad(model, None, opt.parameters, has_aux=False)
model.set_train(True)
inputs = tokenizer(["hello world"],
padding='max_length',
max_length=model.config.seq_length+1,
return_tensors='ms')
# output = model(input_ids=inputs["input_ids"])
# print(output) # 计算loss
loss, grad = grad_fn(inputs['input_ids'])
res = opt(grad)
print(loss)
print(res)
Please assign maintainer to check this issue.
请为此issue分配处理人。
@fangwenyi @chengxiaoli @wuweikang
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Please add labels (comp or sig), also you can visit https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md to find more.
为了让代码尽快被审核,请您为Pull Request打上 组件(comp)或兴趣组(sig) 标签,打上标签的PR可直接推送给责任人进行审核。
更多的标签可以查看https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md
以组件相关代码提交为例,如果你提交的是data组件代码,你可以这样评论:
//comp/data
当然你也可以邀请data SIG组来审核代码,可以这样写:
//sig/data
另外你还可以给这个PR标记类型,例如是bugfix或者是特性需求:
//kind/bug or //kind/feature
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!
@ZhidanLiu @yyuse @liuluobin 老师 可以抽空看一下这个issue吗?我在做mindspore的开源实习任务,用到了mindarmour,现在卡到这里了。如果复现错误遇到什么问题可以随时提。就目前来看,我使用普通的SGD、Adam训练流程跑通都没问题,但是使用mindarmour的话会卡住不动
@ZhidanLiu @yyuse @liuluobin 请问这个issue有解决方法了嘛?
@ZhidanLiu @yyuse @liuluobin 请问这个issue还没有解决方案吗?
@ZhidanLiu @yyuse @liuluobin 老师 请问有解决方法了吗?
学生已经自己解决了,可以关闭
登录 后才可以发表评论