From 6a1af6f275db9a02468e9732134eee3a173adb98 Mon Sep 17 00:00:00 2001 From: Linjie Chen <40840292+linjieccc@users.noreply.github.com> Date: Fri, 16 Sep 2022 00:50:18 +0800 Subject: [PATCH] fix bug of model not found error (#2007) * Update to Auto Model * Update to Auto Model --- modules/text/language_model/rbt3/README.md | 8 +++- modules/text/language_model/rbt3/module.py | 47 ++++++++++--------- modules/text/language_model/rbtl3/README.md | 8 +++- modules/text/language_model/rbtl3/module.py | 47 ++++++++++--------- .../roberta-wwm-ext-large/README.md | 10 ++-- .../roberta-wwm-ext-large/module.py | 45 +++++++++--------- .../language_model/roberta-wwm-ext/README.md | 10 ++-- .../language_model/roberta-wwm-ext/module.py | 45 +++++++++--------- 8 files changed, 126 insertions(+), 94 deletions(-) diff --git a/modules/text/language_model/rbt3/README.md b/modules/text/language_model/rbt3/README.md index 560f78e2..641b5089 100644 --- a/modules/text/language_model/rbt3/README.md +++ b/modules/text/language_model/rbt3/README.md @@ -1,5 +1,5 @@ ```shell -$ hub install rtb3==2.0.1 +$ hub install rtb3==2.0.2 ```


@@ -85,7 +85,7 @@ label_map = {0: 'negative', 1: 'positive'} model = hub.Module( name='rtb3', - version='2.0.1', + version='2.0.2', task='seq-cls', load_checkpoint='/path/to/parameters', label_map=label_map) @@ -163,3 +163,7 @@ paddlehub >= 2.0.0 * 2.0.1 增加文本匹配任务`text-matching` + +* 2.0.2 + + 更新预训练模型调用方法 diff --git a/modules/text/language_model/rbt3/module.py b/modules/text/language_model/rbt3/module.py index 1fdde350..6ef8b7e0 100644 --- a/modules/text/language_model/rbt3/module.py +++ b/modules/text/language_model/rbt3/module.py @@ -11,17 +11,19 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -import os import math +import os +from typing import Dict import paddle import paddle.nn as nn import paddle.nn.functional as F - -from paddlenlp.transformers.roberta.modeling import RobertaForSequenceClassification, RobertaForTokenClassification, RobertaModel -from paddlenlp.transformers.roberta.tokenizer import RobertaTokenizer from paddlenlp.metrics import ChunkEvaluator +from paddlenlp.transformers import AutoModel +from paddlenlp.transformers import AutoModelForSequenceClassification +from paddlenlp.transformers import AutoModelForTokenClassification +from paddlenlp.transformers import AutoTokenizer + from paddlehub.module.module import moduleinfo from paddlehub.module.nlp_module import TransformerModule from paddlehub.utils.log import logger @@ -29,7 +31,7 @@ from paddlehub.utils.log import logger @moduleinfo( name="rbt3", - version="2.0.1", + version="2.0.2", summary="rbt3, 3-layer, 768-hidden, 12-heads, 38M parameters ", author="ymcui", author_email="ymcui@ir.hit.edu.cn", @@ -42,13 +44,13 @@ class Roberta(nn.Layer): """ def __init__( - self, - task: str = None, - load_checkpoint: str = None, - label_map: Dict = None, - num_classes: int = 2, - suffix: bool = False, - **kwargs, + self, + task: str = None, + load_checkpoint: str = None, + label_map: Dict = None, + num_classes: int = 2, + suffix: bool = False, + **kwargs, ): super(Roberta, self).__init__() if label_map: @@ -63,23 +65,26 @@ class Roberta(nn.Layer): "current task name 'sequence_classification' was renamed to 'seq-cls', " "'sequence_classification' has been deprecated and will be removed in the future.", ) if task == 'seq-cls': - self.model = RobertaForSequenceClassification.from_pretrained( - pretrained_model_name_or_path='rbt3', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForSequenceClassification.from_pretrained(pretrained_model_name_or_path='hfl/rbt3', + num_classes=self.num_classes, + **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task == 'token-cls': - self.model = RobertaForTokenClassification.from_pretrained( - pretrained_model_name_or_path='rbt3', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForTokenClassification.from_pretrained(pretrained_model_name_or_path='hfl/rbt3', + num_classes=self.num_classes, + **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() - self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], suffix=suffix) + self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], + suffix=suffix) elif task == 'text-matching': - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='rbt3', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/rbt3', **kwargs) self.dropout = paddle.nn.Dropout(0.1) self.classifier = paddle.nn.Linear(self.model.config['hidden_size'] * 3, 2) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task is None: - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='rbt3', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/rbt3', **kwargs) else: raise RuntimeError("Unknown task {}, task should be one in {}".format(task, self._tasks_supported)) @@ -171,4 +176,4 @@ class Roberta(nn.Layer): """ Gets the tokenizer that is customized for this module. """ - return RobertaTokenizer.from_pretrained(pretrained_model_name_or_path='rbt3', *args, **kwargs) + return AutoTokenizer.from_pretrained(pretrained_model_name_or_path='hfl/rbt3', *args, **kwargs) diff --git a/modules/text/language_model/rbtl3/README.md b/modules/text/language_model/rbtl3/README.md index c61df18d..8bcda290 100644 --- a/modules/text/language_model/rbtl3/README.md +++ b/modules/text/language_model/rbtl3/README.md @@ -1,5 +1,5 @@ ```shell -$ hub install rbtl3==2.0.1 +$ hub install rbtl3==2.0.2 ```


@@ -85,7 +85,7 @@ label_map = {0: 'negative', 1: 'positive'} model = hub.Module( name='rbtl3', - version='2.0.1', + version='2.0.2', task='seq-cls', load_checkpoint='/path/to/parameters', label_map=label_map) @@ -163,3 +163,7 @@ paddlehub >= 2.0.0 * 2.0.1 增加文本匹配任务`text-matching` + +* 2.0.2 + + 更新预训练模型调用方法 diff --git a/modules/text/language_model/rbtl3/module.py b/modules/text/language_model/rbtl3/module.py index d5789099..bab919f1 100644 --- a/modules/text/language_model/rbtl3/module.py +++ b/modules/text/language_model/rbtl3/module.py @@ -11,17 +11,19 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -import os import math +import os +from typing import Dict import paddle import paddle.nn as nn import paddle.nn.functional as F - -from paddlenlp.transformers.roberta.modeling import RobertaForSequenceClassification, RobertaForTokenClassification, RobertaModel -from paddlenlp.transformers.roberta.tokenizer import RobertaTokenizer from paddlenlp.metrics import ChunkEvaluator +from paddlenlp.transformers import AutoModel +from paddlenlp.transformers import AutoModelForSequenceClassification +from paddlenlp.transformers import AutoModelForTokenClassification +from paddlenlp.transformers import AutoTokenizer + from paddlehub.module.module import moduleinfo from paddlehub.module.nlp_module import TransformerModule from paddlehub.utils.log import logger @@ -29,7 +31,7 @@ from paddlehub.utils.log import logger @moduleinfo( name="rbtl3", - version="2.0.1", + version="2.0.2", summary="rbtl3, 3-layer, 1024-hidden, 16-heads, 61M parameters ", author="ymcui", author_email="ymcui@ir.hit.edu.cn", @@ -42,13 +44,13 @@ class Roberta(nn.Layer): """ def __init__( - self, - task: str = None, - load_checkpoint: str = None, - label_map: Dict = None, - num_classes: int = 2, - suffix: bool = False, - **kwargs, + self, + task: str = None, + load_checkpoint: str = None, + label_map: Dict = None, + num_classes: int = 2, + suffix: bool = False, + **kwargs, ): super(Roberta, self).__init__() if label_map: @@ -63,23 +65,26 @@ class Roberta(nn.Layer): "current task name 'sequence_classification' was renamed to 'seq-cls', " "'sequence_classification' has been deprecated and will be removed in the future.", ) if task == 'seq-cls': - self.model = RobertaForSequenceClassification.from_pretrained( - pretrained_model_name_or_path='rbtl3', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForSequenceClassification.from_pretrained(pretrained_model_name_or_path='hfl/rbtl3', + num_classes=self.num_classes, + **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task == 'token-cls': - self.model = RobertaForTokenClassification.from_pretrained( - pretrained_model_name_or_path='rbtl3', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForTokenClassification.from_pretrained(pretrained_model_name_or_path='hfl/rbtl3', + num_classes=self.num_classes, + **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() - self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], suffix=suffix) + self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], + suffix=suffix) elif task == 'text-matching': - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='rbtl3', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/rbtl3', **kwargs) self.dropout = paddle.nn.Dropout(0.1) self.classifier = paddle.nn.Linear(self.model.config['hidden_size'] * 3, 2) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task is None: - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='rbtl3', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/rbtl3', **kwargs) else: raise RuntimeError("Unknown task {}, task should be one in {}".format(task, self._tasks_supported)) @@ -171,4 +176,4 @@ class Roberta(nn.Layer): """ Gets the tokenizer that is customized for this module. """ - return RobertaTokenizer.from_pretrained(pretrained_model_name_or_path='rbtl3', *args, **kwargs) + return AutoTokenizer.from_pretrained(pretrained_model_name_or_path='hfl/rbtl3', *args, **kwargs) diff --git a/modules/text/language_model/roberta-wwm-ext-large/README.md b/modules/text/language_model/roberta-wwm-ext-large/README.md index d5c5aa59..a08e62d7 100644 --- a/modules/text/language_model/roberta-wwm-ext-large/README.md +++ b/modules/text/language_model/roberta-wwm-ext-large/README.md @@ -1,6 +1,6 @@ # roberta-wwm-ext-large |模型名称|roberta-wwm-ext-large| -| :--- | :---: | +| :--- | :---: | |类别|文本-语义模型| |网络|roberta-wwm-ext-large| |数据集|百度自建数据集| @@ -51,7 +51,7 @@ label_map = {0: 'negative', 1: 'positive'} model = hub.Module( name='roberta-wwm-ext-large', - version='2.0.2', + version='2.0.3', task='seq-cls', load_checkpoint='/path/to/parameters', label_map=label_map) @@ -181,6 +181,10 @@ for idx, text in enumerate(data): * 2.0.2 增加文本匹配任务`text-matching` + +* 2.0.3 + + 更新预训练模型调用方法 ```shell - $ hub install roberta-wwm-ext-large==2.0.2 + $ hub install roberta-wwm-ext==2.0.3 ``` diff --git a/modules/text/language_model/roberta-wwm-ext-large/module.py b/modules/text/language_model/roberta-wwm-ext-large/module.py index 13efb6ae..272df442 100644 --- a/modules/text/language_model/roberta-wwm-ext-large/module.py +++ b/modules/text/language_model/roberta-wwm-ext-large/module.py @@ -11,17 +11,19 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -import os import math +import os +from typing import Dict import paddle import paddle.nn as nn import paddle.nn.functional as F - -from paddlenlp.transformers.roberta.modeling import RobertaForSequenceClassification, RobertaForTokenClassification, RobertaModel -from paddlenlp.transformers.roberta.tokenizer import RobertaTokenizer from paddlenlp.metrics import ChunkEvaluator +from paddlenlp.transformers import AutoModel +from paddlenlp.transformers import AutoModelForSequenceClassification +from paddlenlp.transformers import AutoModelForTokenClassification +from paddlenlp.transformers import AutoTokenizer + from paddlehub.module.module import moduleinfo from paddlehub.module.nlp_module import TransformerModule from paddlehub.utils.log import logger @@ -29,7 +31,7 @@ from paddlehub.utils.log import logger @moduleinfo( name="roberta-wwm-ext-large", - version="2.0.2", + version="2.0.3", summary= "chinese-roberta-wwm-ext-large, 24-layer, 1024-hidden, 16-heads, 340M parameters. The module is executed as paddle.dygraph.", author="ymcui", @@ -43,13 +45,13 @@ class Roberta(nn.Layer): """ def __init__( - self, - task: str = None, - load_checkpoint: str = None, - label_map: Dict = None, - num_classes: int = 2, - suffix: bool = False, - **kwargs, + self, + task: str = None, + load_checkpoint: str = None, + label_map: Dict = None, + num_classes: int = 2, + suffix: bool = False, + **kwargs, ): super(Roberta, self).__init__() if label_map: @@ -64,23 +66,24 @@ class Roberta(nn.Layer): "current task name 'sequence_classification' was renamed to 'seq-cls', " "'sequence_classification' has been deprecated and will be removed in the future.", ) if task == 'seq-cls': - self.model = RobertaForSequenceClassification.from_pretrained( - pretrained_model_name_or_path='roberta-wwm-ext-large', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForSequenceClassification.from_pretrained( + pretrained_model_name_or_path='hfl/roberta-wwm-ext-large', num_classes=self.num_classes, **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task == 'token-cls': - self.model = RobertaForTokenClassification.from_pretrained( - pretrained_model_name_or_path='roberta-wwm-ext-large', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForTokenClassification.from_pretrained( + pretrained_model_name_or_path='hfl/roberta-wwm-ext-large', num_classes=self.num_classes, **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() - self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], suffix=suffix) + self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], + suffix=suffix) elif task == 'text-matching': - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext-large', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext-large', **kwargs) self.dropout = paddle.nn.Dropout(0.1) self.classifier = paddle.nn.Linear(self.model.config['hidden_size'] * 3, 2) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task is None: - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext-large', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext-large', **kwargs) else: raise RuntimeError("Unknown task {}, task should be one in {}".format(task, self._tasks_supported)) @@ -172,4 +175,4 @@ class Roberta(nn.Layer): """ Gets the tokenizer that is customized for this module. """ - return RobertaTokenizer.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext-large', *args, **kwargs) + return AutoTokenizer.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext-large', *args, **kwargs) diff --git a/modules/text/language_model/roberta-wwm-ext/README.md b/modules/text/language_model/roberta-wwm-ext/README.md index f052628f..7bb50223 100644 --- a/modules/text/language_model/roberta-wwm-ext/README.md +++ b/modules/text/language_model/roberta-wwm-ext/README.md @@ -1,6 +1,6 @@ # roberta-wwm-ext |模型名称|roberta-wwm-ext| -| :--- | :---: | +| :--- | :---: | |类别|文本-语义模型| |网络|roberta-wwm-ext| |数据集|百度自建数据集| @@ -51,7 +51,7 @@ label_map = {0: 'negative', 1: 'positive'} model = hub.Module( name='roberta-wwm-ext', - version='2.0.2', + version='2.0.3', task='seq-cls', load_checkpoint='/path/to/parameters', label_map=label_map) @@ -181,6 +181,10 @@ for idx, text in enumerate(data): * 2.0.2 增加文本匹配任务`text-matching` + +* 2.0.3 + + 更新预训练模型调用方法 ```shell - $ hub install roberta-wwm-ext==2.0.2 + $ hub install roberta-wwm-ext==2.0.3 ``` diff --git a/modules/text/language_model/roberta-wwm-ext/module.py b/modules/text/language_model/roberta-wwm-ext/module.py index 66108a23..2fe14431 100644 --- a/modules/text/language_model/roberta-wwm-ext/module.py +++ b/modules/text/language_model/roberta-wwm-ext/module.py @@ -11,17 +11,19 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -import os import math +import os +from typing import Dict import paddle import paddle.nn as nn import paddle.nn.functional as F - -from paddlenlp.transformers.roberta.modeling import RobertaForSequenceClassification, RobertaForTokenClassification, RobertaModel -from paddlenlp.transformers.roberta.tokenizer import RobertaTokenizer from paddlenlp.metrics import ChunkEvaluator +from paddlenlp.transformers import AutoModel +from paddlenlp.transformers import AutoModelForSequenceClassification +from paddlenlp.transformers import AutoModelForTokenClassification +from paddlenlp.transformers import AutoTokenizer + from paddlehub.module.module import moduleinfo from paddlehub.module.nlp_module import TransformerModule from paddlehub.utils.log import logger @@ -29,7 +31,7 @@ from paddlehub.utils.log import logger @moduleinfo( name="roberta-wwm-ext", - version="2.0.2", + version="2.0.3", summary= "chinese-roberta-wwm-ext, 12-layer, 768-hidden, 12-heads, 110M parameters. The module is executed as paddle.dygraph.", author="ymcui", @@ -43,13 +45,13 @@ class Roberta(nn.Layer): """ def __init__( - self, - task: str = None, - load_checkpoint: str = None, - label_map: Dict = None, - num_classes: int = 2, - suffix: bool = False, - **kwargs, + self, + task: str = None, + load_checkpoint: str = None, + label_map: Dict = None, + num_classes: int = 2, + suffix: bool = False, + **kwargs, ): super(Roberta, self).__init__() if label_map: @@ -64,23 +66,24 @@ class Roberta(nn.Layer): "current task name 'sequence_classification' was renamed to 'seq-cls', " "'sequence_classification' has been deprecated and will be removed in the future.", ) if task == 'seq-cls': - self.model = RobertaForSequenceClassification.from_pretrained( - pretrained_model_name_or_path='roberta-wwm-ext', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForSequenceClassification.from_pretrained( + pretrained_model_name_or_path='hfl/roberta-wwm-ext', num_classes=self.num_classes, **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task == 'token-cls': - self.model = RobertaForTokenClassification.from_pretrained( - pretrained_model_name_or_path='roberta-wwm-ext', num_classes=self.num_classes, **kwargs) + self.model = AutoModelForTokenClassification.from_pretrained( + pretrained_model_name_or_path='hfl/roberta-wwm-ext', num_classes=self.num_classes, **kwargs) self.criterion = paddle.nn.loss.CrossEntropyLoss() - self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], suffix=suffix) + self.metric = ChunkEvaluator(label_list=[self.label_map[i] for i in sorted(self.label_map.keys())], + suffix=suffix) elif task == 'text-matching': - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext', **kwargs) self.dropout = paddle.nn.Dropout(0.1) self.classifier = paddle.nn.Linear(self.model.config['hidden_size'] * 3, 2) self.criterion = paddle.nn.loss.CrossEntropyLoss() self.metric = paddle.metric.Accuracy() elif task is None: - self.model = RobertaModel.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext', **kwargs) + self.model = AutoModel.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext', **kwargs) else: raise RuntimeError("Unknown task {}, task should be one in {}".format(task, self._tasks_supported)) @@ -172,4 +175,4 @@ class Roberta(nn.Layer): """ Gets the tokenizer that is customized for this module. """ - return RobertaTokenizer.from_pretrained(pretrained_model_name_or_path='roberta-wwm-ext', *args, **kwargs) + return AutoTokenizer.from_pretrained(pretrained_model_name_or_path='hfl/roberta-wwm-ext', *args, **kwargs) -- GitLab