Spaces:
Runtime error
Runtime error
<!--Copyright 2020 The HuggingFace Team. All rights reserved. | |
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | |
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations under the License. | |
--> | |
# 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. | |
<Tip> | |
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**. | |
</Tip> | |
## BERT | |
Puoi convertire qualunque checkpoint Tensorflow di BERT (in particolare | |
[i modeli pre-allenati rilasciati da Google](https://github.com/google-research/bert#pre-trained-models)) | |
in un file di salvataggio Pytorch utilizzando lo script | |
[convert_bert_original_tf_checkpoint_to_pytorch.py](https://github.com/huggingface/transformers/tree/main/src/transformers/models/bert/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](quicktour) , [run_glue.py](https://github.com/huggingface/transformers/tree/main/examples/pytorch/text-classification/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: | |
```bash | |
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](https://github.com/google-research/bert#pre-trained-models). | |
## ALBERT | |
Per il modello ALBERT, converti checkpoint di Tensoflow in Pytorch utilizzando lo script | |
[convert_albert_original_tf_checkpoint_to_pytorch.py](https://github.com/huggingface/transformers/tree/main/src/transformers/models/albert/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: | |
```bash | |
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](https://github.com/google-research/albert#pre-trained-models). | |
## 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](https://github.com/openai/finetune-transformer-lm)): | |
```bash | |
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](https://github.com/openai/gpt-2)): | |
```bash | |
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](https://github.com/kimiyoung/transformer-xl/tree/master/tf#obtain-and-evaluate-pretrained-sota-models)): | |
```bash | |
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: | |
```bash | |
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: | |
```bash | |
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: | |
```bash | |
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 | |
``` | |