如何加载Transformer的预训练模型

本文介绍了如何加载GPT2模型及其预训练参数,并详细解释了不同加载方式下的缓存路径选择,包括使用默认缓存路径及自定义缓存路径的方法。此外,还提供了在网络受限情况下通过修改缓存文件名来加载模型的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里以GPT2模型的加载为例,其他常用的模型如BERT、RoBERTa等类似。

导入模型:

from transformers import GPT2Tokenizer, GPT2LMHeadModel

加载模型参数时,这里给出一下几种情况的加载方法:

1、使用 transformers 默认的缓存路径:

gpt2_model = GPT2LMHeadModel.from_pretrained(pretrained_model_name_or_path='gpt2-xl')
gpt2_tokenizer = GPT2Tokenizer.from_pretrained(pretrained_model_name_or_path='gpt2-xl')

以 centos 为例,transformers 默认的缓存路径是:

root:
/root/.cache/huggingface/transformers
user:
/home/user/.cache/huggingface/transformers

(1)如果上述路径已经缓存了 gpt2-xl 的预训练参数,上述加载代码会直接从缓存路径加载 gpt2-xl 模型的预训练参数。

(2)如果上述路径没有缓存 gpt2-xl 的预训练参数,上述加载代码会先从网上下载 gpt2-xl 的预训练参数,保存在上述缓存目录中,然后从缓存目录中加载 gpt2-xl 模型的预训练参数。

2、使用自己设定的缓存路径:

gpt2_model = GPT2LMHeadModel.from_pretrained(pretrained_model_name_or_path='/home/user/plm_model_cache/gpt2-xl')
gpt2_tokenizer = GPT2Tokenizer.from_pretrained(pretrained_model_name_or_path='/home/user/plm_model_cache/gpt2-xl')

(1)如果上述路径已经缓存了 gpt2-xl 的预训练参数,上述加载代码会直接从缓存路径加载 gpt2-xl 模型的预训练参数。

(2)如果上述路径没有缓存 gpt2-xl 的预训练参数,上述加载代码会先从网上下载 gpt2-xl 的预训练参数,保存在上述缓存目录中,然后从缓存目录中加载 gpt2-xl 模型的预训练参数。

3、1和2中的加载方法,如果没有将缓存后的预训练参数文件的名称进行修改,那么无论是否缓存,都是需要网络的。

4、修改缓存的文件名,从而拜托对网络的依赖:

需要将下述5个文件进行重命名,而且重命名的一句也都在缓存的文件中进行了指定:

(1)config.json 文件:

根据文件:d2de8fec009fa9b9196047559bcac6c1f02a9c500718b4346bc516354965b1ca.d684cb2afa3f8c44c73bd67537d9aa5ff6044658793e077d7306ef2e37dd79bd.json

将文件:

d2de8fec009fa9b9196047559bcac6c1f02a9c500718b4346bc516354965b1ca.d684cb2afa3f8c44c73bd67537d9aa5ff6044658793e077d7306ef2e37dd79bd

重命名为:config.json

(2)tokenizer.json 文件:

根据文件:

aabb8839163cd911f810ab23f5ae8c966b9b9ea60622c429020611caa389b04b.cf2d0ecb83b6df91b3dbb53f1d1e4c311578bfd3aa0e04934215a49bf9898df0.json

将文件:

aabb8839163cd911f810ab23f5ae8c966b9b9ea60622c429020611caa389b04b.cf2d0ecb83b6df91b3dbb53f1d1e4c311578bfd3aa0e04934215a49bf9898df0

重命名为:tokenizer.json

(3)pytorch_model.bin 文件:

根据文件:

96569b907e56747ce3e593c6a13d8475b8c733a64aab8af8f602b90d94c4af71.8fbbcdf404c82c5967934d411f1462fa0574d639f2aa398aa3754fced1bb26c0.json

将文件:

96569b907e56747ce3e593c6a13d8475b8c733a64aab8af8f602b90d94c4af71.8fbbcdf404c82c5967934d411f1462fa0574d639f2aa398aa3754fced1bb26c0

重命名为:pytorch_model.bin

(4)vocab.json 文件:

根据文件:

8560a2df03f812b276794ae6935255d0590522553a4c8103155472b07591a21b.c7ed1f96aac49e745788faa77ba0a26a392643a50bb388b9c04ff469e555241f.json

将文件:

8560a2df03f812b276794ae6935255d0590522553a4c8103155472b07591a21b.c7ed1f96aac49e745788faa77ba0a26a392643a50bb388b9c04ff469e555241f

重命名为:vocab.json

(5)vocab.json 文件:

根据文件:

8560a2df03f812b276794ae6935255d0590522553a4c8103155472b07591a21b.c7ed1f96aac49e745788faa77ba0a26a392643a50bb388b9c04ff469e555241f.json

将文件:

8560a2df03f812b276794ae6935255d0590522553a4c8103155472b07591a21b.c7ed1f96aac49e745788faa77ba0a26a392643a50bb388b9c04ff469e555241f

重命名为:vocab.json

完成上述文件的重命名,就可以在不需要网络的情况下,也能加载模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值