Te proporcionamos una interfaz de l铆nea de comando (CLI
, por sus siglas en ingl茅s) para convertir puntos de control (checkpoints) originales de Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM en modelos que se puedan cargar utilizando los m茅todos from_pretrained
de la biblioteca.
Desde 2.3.0, el script para convertir es parte de la CLI de transformers (transformers-cli) disponible en cualquier instalaci贸n de transformers >= 2.3.0.
La siguiente documentaci贸n refleja el formato para el comando transformers-cli convert.
Puedes convertir cualquier checkpoint de TensorFlow para BERT (en particular, los modelos pre-entrenados y publicados por Google) en un archivo de PyTorch mediante el script convert_bert_original_tf_checkpoint_to_pytorch.py.
Esta CLI toma como entrada un checkpoint de TensorFlow (tres archivos que comienzan con bert_model.ckpt
) y el archivo de configuraci贸n asociado (bert_config.json
), y crea un modelo PyTorch para esta configuraci贸n, carga los pesos del checkpoint de TensorFlow en el modelo de PyTorch y guarda el modelo resultante en un archivo est谩ndar de PyTorch que se puede importar usando from_pretrained()
(ve el ejemplo en Tour r谩pido, run_glue.py).
Solo necesitas ejecutar este script una vez para convertir un modelo a PyTorch. Despu茅s, puedes ignorar el checkpoint de TensorFlow (los tres archivos que comienzan con bert_model.ckpt
), pero aseg煤rate de conservar el archivo de configuraci贸n (bert_config.json
) y el archivo de vocabulario (vocab.txt
) ya que estos tambi茅n son necesarios para el modelo en PyTorch.
Para ejecutar este script deber谩s tener instalado TensorFlow y PyTorch (pip install tensorflow
). El resto del repositorio solo requiere PyTorch.
Aqu铆 hay un ejemplo del proceso para convertir un modelo BERT-Base Uncased
pre-entrenado:
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
Puedes descargar los modelos pre-entrenados de Google para la conversi贸n aqu铆.
Convierte los checkpoints del modelo ALBERT de TensorFlow a PyTorch usando el script convert_albert_original_tf_checkpoint_to_pytorch.py.
La CLI toma como entrada un checkpoint de TensorFlow (tres archivos que comienzan con model.ckpt-best
) y el archivo de configuraci贸n adjunto (albert_config.json
), luego crea y guarda un modelo de PyTorch. Para ejecutar esta conversi贸n deber谩s tener instalados TensorFlow y PyTorch.
Aqu铆 hay un ejemplo del proceso para convertir un modelo ALBERT Base
pre-entrenado:
export ALBERT_BASE_DIR=/path/to/albert/albert_base
transformers-cli convert --model_type albert \
--tf_checkpoint $ALBERT_BASE_DIR/model.ckpt-best \
--config $ALBERT_BASE_DIR/albert_config.json \
--pytorch_dump_output $ALBERT_BASE_DIR/pytorch_model.bin
Puedes descargar los modelos pre-entrenados de Google para la conversi贸n aqu铆.
Este es un ejemplo del proceso para convertir un modelo OpenAI GPT pre-entrenado, asumiendo que tu checkpoint de NumPy se guarda con el mismo formato que el modelo pre-entrenado de OpenAI (m谩s informaci贸n aqu铆):
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] \
Aqu铆 hay un ejemplo del proceso para convertir un modelo OpenAI GPT-2 pre-entrenado (m谩s informaci贸n aqu铆):
export OPENAI_GPT2_CHECKPOINT_PATH=/path/to/openai-community/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]
Aqu铆 hay un ejemplo del proceso para convertir un modelo XLNet pre-entrenado:
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] \
Aqu铆 hay un ejemplo del proceso para convertir un modelo XLM pre-entrenado:
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]
Aqu铆 hay un ejemplo del proceso para convertir un modelo T5 pre-entrenado:
export T5=/path/to/t5/uncased_L-12_H-768_A-12
transformers-cli convert --model_type t5 \
--tf_checkpoint $T5/t5_model.ckpt \
--config $T5/t5_config.json \
--pytorch_dump_output $T5/pytorch_model.bin