1

作者|huggingface
编译|VK
来源|Github

提供了一个命令行界面来转换模型中的原始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-res...

此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-res...

OpenAI GPT

这是一个预训练OpenAI GPT模型转换过程的示例,假设你的NumPy checkpoints保存的格式与OpenAI的预训练模型相同(请参见此处(https://github.com/openai/fin...

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...

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/...

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/transf...

欢迎关注磐创AI博客站:
http://panchuang.net/

OpenCV中文官方文档:
http://woshicver.com/

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/


人工智能遇见磐创
101 声望97 粉丝