Replies: 1 comment 1 reply
-
感觉 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
背景
目前框架中已经添加了一些新特性,比如PretrainedConfig、更多中间输入输出(
output_attention
、output_hidden_states
、return_dict
)以及单测等模块,此时如果要开发一个新模型就需要遵循各自模块的规范将以上特性添加到新模型当中。需要注意很多细节,此时需要有一个template模块来初始化:模型、单测甚至是example的代码。灵感
还是来自于HuggingFace/Transformer中的template模块,其配置了常规的代码模板,比如:
add_new_model
,add_new_example
等,开发者只需要根据关键信息配置即可实现新模型的初始化。此模板可以生成
XXXModel
和XXXForYYY
类型的模型,并直接配备有最新特性,故此方法比较适合于制定最新规范。解决方案
要使用template来自动生成对应模板代码,需要以下功能:
paddlenlp new model
来实现新模型的自动化生成。在以上两点中,
模板引擎
是比较容易实现,可是命令行工具
(参照transformer-cli
)属于新特性,是否需要实现?实现哪些功能?实现能带来哪些功能上的体验?如果目前不想实现
paddlenlp-cli
也可直接将对应的脚本放置在templates目录下来运行,最简单方便。命令行工具
灵感还是来自于huggingface/transformer, allennlp等,都有自己的工具来实现一些自动化的操作。
是否需要实现
我个人觉得命令行工具能够提升框架的使用体验,因为这个能提供一些实用的功能给new babies、Developers以及Contributors。
实现哪些功能
可实现的功能就可以有很多:
总结
templates
这个比较简单,适合做模型的规范,也可以减少其他同学的在新模型复现和调整过程中的工作量,感觉可以添加。Beta Was this translation helpful? Give feedback.
All reactions