pytorch:Transformers入门(四)

2020-08-06  本文已影响0人  不太聪明的亚子

前面学习了Bert相关的类,每个类在实例化时,使用from_pretrained函数加载与训练的模型参数来初始化,所以这里要学习一下from_pretrained函数,以BertModel中的from_pretrained函数为例,其他的大同小异。

from_pretrained(pretrained_model_name_or_path*model_args**kwargs)

参数解析:

pretrained_model_name_or_path :这个参数可以是一个需要下载或缓存中的与训练模型的快捷名称,如果本地的缓存中没有这个模型,就自己去官网下载,缓存到本地.cache中,速度较慢;也可以是使用save_pretrained()保存的模型权重字典的路径,如./my_model_directory/。我参考其他博客,选择手动下载一个模型的config.json ,model.bin,vocab.txt文件放在一个文件夹里,与.py文件在同一目录下,然后设置这个参数值为创建的文件夹相对路径。

model_args(可选):所有要传入到模型中的位置参数序列

config(可选):模型的配置

state_dict(可选):一个可选择的权重字典而不是下载的预训练模型权重,当需要创建一个使用预训练配置但加载自己的权重值时使用。

cache_dir(可选):当不使用标准缓存时,可以设置这样一个缓存路径,在这个路径里应该存放着预训练模型配置。

force_download(可选):布尔值,默认为0,作用是设置是否强制下载模型权重和配置文件,如果缓存中已有,则会覆盖掉。

resume_download(可选):布尔值,默认为0,表示不删除不完整的接收文件,如果这个文件存在,则继续下载。

proxies(可选):字典,默认为None,是协议或终端使用的代理服务的字典。

output_loading_info(可选):布尔值,设置为True会返回一个包含缺失键、意外键和错误消息的字典。

kwargs :一些可以更新配置和模型初始参数的参数,如output_attention=True,这个参数与配置有关:如果提供了配置对象,那么这个参数就被传递给模型的__init__方法中;如果没有提供配置对象,那么这个参数会首先被传递给配置类的初始化函数(from_pretrained),这个函数里面与kwargs重叠的健值会被覆盖,kwargs中剩下的会传递给模型的__init__函数。


再了解一下transformers包含的与训练模型有哪些

官方给出了一个清单,这里只看一下Bert相关的。

bert-base-uncased:包含12层,隐含层维度768,attention头是12,共110M参数,训练数据:小写英文文本。

bert-large-uncased:24-layer, 1024-hidden, 16-heads, 340M parameters.Trained on lower-cased English text.

bert-base-cased:12-layer, 768-hidden, 12-heads, 110M parameters. Trained on cased English text.

bert-large-cased:24-layer, 1024-hidden, 16-heads, 340M parametersTrained on cased English text.

bert-base-multilingual-uncased:(原始的,不推荐) 12-layer, 768-hidden, 12-heads, 110M parameters. Trained on lower-cased text in the top 102 languages with the largest Wikipedias。

bert-base-multilingual-cased:(新的,推荐) 12-layer, 768-hidden, 12-heads, 110M parameters.

Trained on cased text in the top 104 languages with the largest Wikipedias

bert-base-chinese:12-layer, 768-hidden, 12-heads, 110M parameters. Trained on cased Chinese Simplified and Traditional text.(简体和繁体)

上一篇下一篇

猜你喜欢

热点阅读