Skip to content

Commit f02435a

Browse files
authored
Update pretrained weights contribution doc (#1155)
* update pretrained weights contribution doc * update pretrained weights contribution doc
1 parent 154e1a4 commit f02435a

File tree

1 file changed

+60
-56
lines changed

1 file changed

+60
-56
lines changed
Lines changed: 60 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,78 @@
1-
==========================================
2-
贡献优质的模型权重
3-
==========================================
1+
====================================================================================
2+
贡献预训练模型权重
3+
====================================================================================
44

5-
1. 模型网络结构种类
6-
------------------------------------------
7-
PaddleNLP已支持绝大部分主流的预训练模型网络,既包括百度自研的预训练模型(如ERNIE系列),
8-
也涵盖业界主流的预训练模型(如BERT,GPT,RoBERTa,XLNet等)。
5+
1. 模型网络结构类型
6+
------------------------------------------------------------------------------------
7+
PaddleNLP目前已支持绝大多数主流的预训练模型网络结构,既包括百度自研的预训练模型(如ERNIE系列),
8+
也涵盖业界主流的预训练模型(如BERT,ALBERT,GPT,RoBERTa,XLNet等)。
99

10-
下面列出了PaddleNLP目前支持的15类网络结构(持续增加中,也非常欢迎你的贡献):
11-
12-
- ALBERT
13-
- BERT
14-
- BigBird
15-
- DistilBert
16-
- ELECTRA
17-
- ERNIE
18-
- ERNIE-GEN
19-
- ERNIE-GRAM
20-
- GPT
21-
- NeZha
22-
- RoBERTa
23-
- SKEP
24-
- TinyBert
25-
- UnifiedTransformer
26-
- XLNet
10+
PaddleNLP目前支持的预训练模型结构类型汇总可见
11+
`Transformer预训练模型汇总 <https://paddlenlp.readthedocs.io/zh/latest/model_zoo/transformers.html>`_
12+
(持续增加中,也非常欢迎进行新模型贡献:`如何贡献新模型 <https://paddlenlp.readthedocs.io/zh/latest/community/contribute_models/contribute_new_models.html>`_ )。
2713

2814
2. 模型参数权重类型
29-
------------------------------------------
30-
我们非常欢迎大家贡献优质模型参数权重
15+
------------------------------------------------------------------------------------
16+
非常欢迎大家贡献优质模型参数权重
3117
参数权重类型包括但不限于(以BERT模型网络为例):
3218

33-
1. PaddleNLP还未收录的BERT预训练模型参数权重(如)
34-
2. BERT模型在其他垂类领域(如法律,医学等)的预训练模型参数权重(如)
35-
3. 基于BERT在下游具体任务进行fine-tuning后的模型参数权重(如)
36-
4. 其他任何你觉得有价值的模型参数权重
19+
- PaddleNLP还未收录的BERT预训练模型参数权重
20+
(如 `bert-base-japanese-char <https://huggingface.co/cl-tohoku/bert-base-japanese-char>`_ ,`danish-bert-botxo <https://huggingface.co/Maltehb/danish-bert-botxo>`_ 等);
21+
- BERT模型在其他垂类领域(如数学,金融,法律,医学等)的预训练模型参数权重
22+
(如 `MathBERT <https://huggingface.co/tbs17/MathBERT>`_ ,`finbert <https://huggingface.co/ProsusAI/finbert>`_ 等);
23+
- 基于BERT在下游具体任务进行fine-tuning后的模型参数权重
24+
(如 `bert-base-multilingual-uncased-sentiment <https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment>`_ ,
25+
`bert-base-NER <https://huggingface.co/dslim/bert-base-NER>`_ 等);
26+
- 其他模型参数权重(任何你觉得有价值的模型参数权重);
3727

3828
3. 参数权重格式转换
39-
------------------------------------------
29+
------------------------------------------------------------------------------------
4030
当我们想要贡献github上开源的某模型权重时,但是发现该权重保存为其他的深度学习框架(PyTorch,TensorFlow等)的格式,
41-
这刘需要我们进行不同深度学习框架间的模型格式转换,下面的链接给出了一份详细的关于Pytorch到Paddle模型格式转换的教程
42-
`Pytorch到Paddle模型格式转换文档 <./convert_pytorch_to_paddle.rst>`_
31+
这就需要我们进行不同深度学习框架间的模型格式转换,下面的链接给出了一份详细的关于Pytorch到Paddle模型格式转换的教程
32+
`Pytorch到Paddle模型格式转换文档 <./convert_pytorch_to_paddle.rst>`_
4333

44-
4. 准备模型权重所需文件
45-
------------------------------------------
46-
一般来说,我们需要提供 ``model_config`` ,``model_state`` ,``tokenizer_config`` 以及 ``vocab`` 这四个文件
47-
才能完成一个模型的贡献。
34+
4. 进行贡献
35+
------------------------------------------------------------------------------------
36+
4.1 准备权重相关文件
37+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38+
一般来说,我们需要准备 **model_state.pdparams** ,**vocab.txt**,**tokenizer_config.json**
39+
以及 **model_config.json** 这四个文件进行参数权重贡献。
4840

49-
对于 ``bert-base-uncased-sst-2-finetuned`` 这个模型来说,
50-
我们需要提供的文件如下:
41+
- model_state.pdparams 文件可以通过上述的参数权重格式转换过程得到;
42+
- vocab.txt 文件可以直接使用原始模型对应的vocab文件(根据模型对应tokenizer类型的不同,该文件名可能为spiece.model等);
43+
- model_config.json 文件可以参考对应 model.save_pretrained() 接口保存的model_config.json文件;
44+
- tokenizer_config.json 文件可以参考对应 tokenizer.save_pretrained() 接口保存的model_config.json文件;
5145

52-
1. model_config.json
53-
2. model_state.pdparams
54-
3. tokenizer_config.json
55-
4. vocab.txt
46+
4.2 创建个人目录
47+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48+
如果你是首次进行权重贡献,那么你需要在 ``PaddleNLP/paddlenlp/transformers/community/`` 下新建一个目录。
49+
目录名称使用你的github名称,比如新建目录 ``PaddleNLP/paddlenlp/transformers/community/yingyibiao/`` 。
50+
如果已有个人目录,则可以跳过此步骤。
5651

57-
5. 进行贡献
58-
------------------------------------------
59-
在准备好模型权重贡献所需要的文件后,我们就可以开始我们的贡献了。
60-
我们是通过在github上提PR(pull request)进行贡献。
52+
4.3 创建权重目录
53+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54+
在步骤4.2的个人目录下新建一个权重目录,权重目录名为本次贡献的模型权重名称。
55+
比如我想贡献 ``bert-base-uncased-sst-2-finetuned`` 这个模型,
56+
则新建权重目录 ``PaddleNLP/paddlenlp/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/`` 。
6157

62-
1. 如果你是首次贡献模型,你需要在 ``PaddleNLP/paddlenlp/transformers/community/`` 下新建一个目录,
63-
目录名称使用你的github名称,如github名为 ``yingyibiao`` ,
64-
则新建目录 ``PaddleNLP/paddlenlp/transformers/community/yingyibiao/`` 。
58+
4.4 在权重目录下添加PR(pull request)相关文件
59+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60+
在步骤4.3的目录下加入两个文件,分别为 ``README.md`` 和 ``files.json`` 。
6561

66-
2. 接着在你的目录下新建一个模型目录,目录名称为本次贡献的模型名称,如我想贡献 ``bert-base-uncased-sst-2-finetuned`` 这个模型,
67-
则新建目录 ``PaddleNLP/paddlenlp/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/``。
62+
- ``README.md`` 是对你贡献的权重的详细介绍,使用示例,权重来源等。
63+
- ``files.json`` 为步骤4.1所得的权重相关文件以及对应地址。files.json文件内容示例如下,只需将地址中的 *yingyibiao* 和
64+
*bert-base-uncased-sst-2-finetuned* 分别更改为你的github用户名和权重名称。
6865

69-
3. 在步骤2的目录下加入两个文件,分别为 ``README.md`` 和 ``files.json`` 。
70-
``README.md`` 为对你贡献的模型的详细介绍,``files.json`` 为模型权重所需文件以所对应存储路径。
66+
.. code:: python
7167
72-
第一次进行开源贡献的同学可以参考 `first-contributions <https://github.com/firstcontributions/first-contributions>`_。
68+
{
69+
"model_config_file": "https://paddlenlp.bj.bcebos.com/models/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/model_config.json",
70+
"model_state": "https://paddlenlp.bj.bcebos.com/models/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/model_state.pdparams",
71+
"tokenizer_config_file": "https://paddlenlp.bj.bcebos.com/models/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/tokenizer_config.json",
72+
"vocab_file": "https://paddlenlp.bj.bcebos.com/models/transformers/community/yingyibiao/bert-base-uncased-sst-2-finetuned/vocab.txt"
73+
}
7374
74-
模型权重贡献示例请参考 `xxxModel PR示例 <.>`_
75+
4.5 在github上提PR进行贡献
76+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
77+
- 第一次进行开源贡献的同学可以参考 `first-contributions <https://github.com/firstcontributions/first-contributions>`_ 。
78+
- 模型权重贡献PR示例请参考 `bert-base-uncased-sst-2-finetuned PR <.>`_ 。

0 commit comments

Comments
 (0)