AttributeError: ‘GPT2Model’ 对象没有属性 ‘gradient_checkpointing’

我最初尝试在 Flask 中加载一个经过微调的 GPT2 模型。模型是在初始化函数中加载的,使用以下代码:

app.modelgpt2 = torch.load('models/model_gpt2.pt', map_location=torch.device('cpu'))app.modelgpt2tokenizer = GPT2Tokenizer.from_pretrained('gpt2')

但是在执行下面的代码片段进行预测任务时:

from flask import current_appinput_ids = current_app.modelgpt2tokenizer.encode("sample sentence here", return_tensors='pt')sample_outputs = current_app.modelgpt2.generate(input_ids,                                                do_sample=True,                                                top_k=50,                                                min_length=30,                                                max_length=300,                                                top_p=0.95,                                                temperature=0.7,                                                num_return_sequences=1)

它抛出了如下错误,正如问题中所述:AttributeError: ‘GPT2Model’ 对象没有属性 ‘gradient_checkpointing’

错误跟踪从 model.generate 函数开始:File “/venv/lib/python3.8/site-packages/torch/autograd/grad_mode.py”, line 28, in decorate_contextreturn func(*args, **kwargs)

File “/venv/lib/python3.8/site-packages/transformers/generation_utils.py”, line 1017, in generatereturn self.sample(

File “/venv/lib/python3.8/site-packages/transformers/generation_utils.py”, line 1531, in sampleoutputs = self(

File “/venv/lib/python3.8/site-packages/torch/nn/modules/module.py”, line 1102, in _call_implreturn forward_call(*input, **kwargs)

File “/venv/lib/python3.8/site-packages/transformers/models/gpt2/modeling_gpt2.py”, line 1044, in forwardtransformer_outputs = self.transformer(

File “/venv/lib/python3.8/site-packages/torch/nn/modules/module.py”, line 1102, in _call_implreturn forward_call(*input, **kwargs)

File “/venv/lib/python3.8/site-packages/transformers/models/gpt2/modeling_gpt2.py”, line 861, in forwardprint(self.gradient_checkpointing)

File “/venv/lib/python3.8/site-packages/torch/nn/modules/module.py”, line 1177, in getattrraise AttributeError(“‘{}’ object has no attribute ‘{}'”.format(

AttributeError: ‘GPT2Model’ 对象没有属性 ‘gradient_checkpointing’

检查了 modeling_gpt2.py,在类的构造函数中,默认情况下 self.gradient_checkpointing 被设置为 False


回答:

发现此问题仅在使用 venv 或部署框架如 uWSGI 或 gunicorn 运行框架时发生。使用 transformers 版本 4.10.0 而不是最新版本时,此问题得到了解决。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注