来源 | Github
作者 | huggingface
编译 | VK
【导读】 本节 提供了一个命令行界面来转换模型中的原始Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM的Checkpoints,然后使用库的from_pretrained方法加载该Checkpoints。
注意:从2.3.0版本开始,转换脚本现在已成为 transformers CLI( transformers-cli )的一部分,在任何transformers)=2.3.0的都可用。以下文档反映了 transformers-cli convert
命令格式。
BERT
你可以通过使用 convert_tf_checkpoint_to_pytorch.py
将任意的BERT的Tensorflow的Checkpoints转换为PyTorch格式(特别是由Google发布的预训练模型( https://github.com/google-research/bert#pre-trained-models ))
此CLI将TensorFlow checkpoints(三个以 bert_model.ckpt
开头的文件)和关联的配置文件( bert_config.json
)作为输入,并为此配置创建PyTorch模型,并加载在PyTorch模型中从TensorFlow checkpoints进行权重计算,然后将生成的模型保存到标准PyTorch格式文件中,该文件可以使用 torch.load()
导入
( 请参阅run_bert_extract_features.py, run_bert_classifier.py and run_bert_squad.py的示例 )。
你只需一次运行此转换脚本即可获得PyTorch模型。然后你可以忽略TensorFlow checkpoints(以 bert_model.ckpt
开头的三个文件),但请确保保留配置文件( bert_config.json
)和词汇表文件( vocab.txt
),因为PyTorch模型也需要这些。
要运行此特定的转换脚本,你将需要安装TensorFlow和PyTorch( pip install tensorflow
)。存储库的其余部分仅需要PyTorch。
这是一个预训练的BERT-Base Uncased模型的转换过程示例:
export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12 transformers-cli convert --model_type bert \ --tf_checkpoint $BERT_BASE_DIR/bert_model.ckpt \ --config $BERT_BASE_DIR/bert_config.json \ --pytorch_dump_output $BERT_BASE_DIR/pytorch_model.bin
你可以在此处( https://github.com/google-research/bert#pre-trained-models )下载Google的预训练模型。
OpenAI GPT
这是一个预训练OpenAI GPT模型转换过程的示例,假设你的NumPy checkpoints保存的格式与OpenAI的预训练模型相同
(请参见此处( https://github.com/openai/finetune-transformer-lm ))
export OPENAI_GPT_CHECKPOINT_FOLDER_PATH=/path/to/openai/pretrained/numpy/weights transformers-cli convert --model_type gpt \ --tf_checkpoint $OPENAI_GPT_CHECKPOINT_FOLDER_PATH \ --pytorch_dump_output $PYTORCH_DUMP_OUTPUT \ [--config OPENAI_GPT_CONFIG] \ [--finetuning_task_name OPENAI_GPT_FINETUNED_TASK] \
OpenAI GPT-2
这是预训练OpenAI GPT-2模型转换过程的示例(请参见此处( https://github.com/openai/gpt-2 ))
export OPENAI_GPT2_CHECKPOINT_PATH=/path/to/gpt2/pretrained/weights transformers-cli convert --model_type gpt2 \ --tf_checkpoint $OPENAI_GPT2_CHECKPOINT_PATH \ --pytorch_dump_output $PYTORCH_DUMP_OUTPUT \ [--config OPENAI_GPT2_CONFIG] \ [--finetuning_task_name OPENAI_GPT2_FINETUNED_TASK]
Transformer-XL
这是预训练Transformer-XL模型转换过程的示例(请参见此处的( https://github.com/kimiyoung/transformer-xl/tree/master/tf#obtain-and-evaluate-pretrained-sota-models ))
export TRANSFO_XL_CHECKPOINT_FOLDER_PATH=/path/to/transfo/xl/checkpoint transformers-cli convert --model_type transfo_xl \ --tf_checkpoint $TRANSFO_XL_CHECKPOINT_FOLDER_PATH \ --pytorch_dump_output $PYTORCH_DUMP_OUTPUT \ [--config TRANSFO_XL_CONFIG] \ [--finetuning_task_name TRANSFO_XL_FINETUNED_TASK]
XLNet
这是一个预训练XLNet模型的转换过程示例:
export TRANSFO_XL_CHECKPOINT_PATH=/path/to/xlnet/checkpoint export TRANSFO_XL_CONFIG_PATH=/path/to/xlnet/config transformers-cli convert --model_type xlnet \ --tf_checkpoint $TRANSFO_XL_CHECKPOINT_PATH \ --config $TRANSFO_XL_CONFIG_PATH \ --pytorch_dump_output $PYTORCH_DUMP_OUTPUT \ [--finetuning_task_name XLNET_FINETUNED_TASK] \
XLM
这是一个预训练XLM模型的转换过程示例:
export XLM_CHECKPOINT_PATH=/path/to/xlm/checkpoint transformers-cli convert --model_type xlm \ --tf_checkpoint $XLM_CHECKPOINT_PATH \ --pytorch_dump_output $PYTORCH_DUMP_OUTPUT [--config XML_CONFIG] \ [--finetuning_task_name XML_FINETUNED_TASK]
原文链接: https://huggingface.co/transformers/converting_tensorflow_models.html
Be First to Comment