Transformers documentation

Convertire checkpoint di Tensorflow

You are viewing v4.21.0 version. A newer version v4.40.0 is available.
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Convertire checkpoint di Tensorflow

È disponibile un’interfaccia a linea di comando per convertire gli originali checkpoint di Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM in modelli che possono essere caricati utilizzando i metodi from_pretrained della libreria.

A partire dalla versione 2.3.0 lo script di conversione è parte di transformers CLI (transformers-cli), disponibile in ogni installazione di transformers >=2.3.0.

La seguente documentazione riflette il formato dei comandi di transformers-cli convert.

BERT

Puoi convertire qualunque checkpoint Tensorflow di BERT (in particolare i modeli pre-allenati rilasciati da Google) in un file di salvataggio Pytorch utilizzando lo script convert_bert_original_tf_checkpoint_to_pytorch.py.

Questo CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con bert_model.ckpt) ed il relativo file di configurazione (bert_config.json), crea un modello Pytorch per questa configurazione, carica i pesi dal checkpoint di Tensorflow nel modello di Pytorch e salva il modello che ne risulta in un file di salvataggio standard di Pytorch che può essere importato utilizzando from_pretrained() (vedi l’esempio nel quicktour , run_glue.py ).

Devi soltanto lanciare questo script di conversione una volta per ottenere un modello Pytorch. Dopodichè, potrai tralasciare il checkpoint di Tensorflow (i tre files che iniziano con bert_model.ckpt), ma assicurati di tenere il file di configurazione (bert_config.json) ed il file di vocabolario (vocab.txt) in quanto queste componenti sono necessarie anche per il modello di Pytorch.

Per lanciare questo specifico script di conversione avrai bisogno di un’installazione di Tensorflow e di Pytorch (pip install tensorflow). Il resto della repository richiede soltanto Pytorch.

Questo è un esempio del processo di conversione per un modello BERT-Base Uncased pre-allenato:

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

Puoi scaricare i modelli pre-allenati di Google per la conversione qua.

ALBERT

Per il modello ALBERT, converti checkpoint di Tensoflow in Pytorch utilizzando lo script convert_albert_original_tf_checkpoint_to_pytorch.py.

Il CLI prende come input un checkpoint di Tensorflow (tre files che iniziano con model.ckpt-best) e i relativi file di configurazione (albert_config.json), dopodichè crea e salva un modello Pytorch. Per lanciare questa conversione avrai bisogno di un’installazione di Tensorflow e di Pytorch.

Ecco un esempio del procedimento di conversione di un modello ALBERT Base pre-allenato:

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

Puoi scaricare i modelli pre-allenati di Google per la conversione qui.

OpenAI GPT

Ecco un esempio del processo di conversione di un modello OpenAI GPT pre-allenato, assumendo che il tuo checkpoint di NumPy sia salvato nello stesso formato dei modelli pre-allenati OpenAI (vedi qui):

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

Ecco un esempio del processo di conversione di un modello OpenAI GPT-2 pre-allenato (vedi qui):

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

Ecco un esempio del processo di conversione di un modello Transformer-XL pre-allenato (vedi qui):

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

Ecco un esempio del processo di conversione di un modello XLNet pre-allenato:

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

Ecco un esempio del processo di conversione di un modello XLM pre-allenato:

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

Ecco un esempio del processo di conversione di un modello T5 pre-allenato:

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