Skip to content

Latest commit

History

History
139 lines (92 loc) 路 6.52 KB

converting_tensorflow_models.md

File metadata and controls

139 lines (92 loc) 路 6.52 KB

Convertir checkpoints de Tensorflow

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.

BERT

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

ALBERT

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

OpenAI GPT

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] \

OpenAI GPT-2

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]

XLNet

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] \

XLM

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]

T5

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