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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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