Transformers documentation

Convertire checkpoint di Tensorflow

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.40.2).
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/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

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
< > Update on GitHub