Tokenizer di salvataggio di Huggingface
Sto cercando di salvare il tokenizer in huggingface in modo da poterlo caricare in seguito da un contenitore in cui non ho bisogno di accedere a Internet.
BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_vocabulary("./models/tokenizer/")
tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")
Tuttavia, l'ultima riga sta dando l'errore:
OSError: Can't load config for './models/tokenizer3/'. Make sure that:
- './models/tokenizer3/' is a correct model identifier listed on 'https://huggingface.co/models'
- or './models/tokenizer3/' is the correct path to a directory containing a config.json file
versione trasformatori: 3.1.0
Il modo in cui caricare il tokenizer salvato dal modello pre-addestrato in Pytorch non è stato d'aiuto.
Modifica 1
Grazie alla risposta di @ ashwin di seguito ho provato save_pretrainedinvece e ottengo il seguente errore:
OSError: Can't load config for './models/tokenizer/'. Make sure that:
- './models/tokenizer/' is a correct model identifier listed on 'https://huggingface.co/models'
- or './models/tokenizer/' is the correct path to a directory containing a config.json file
il contenuto della cartella tokenizer è di seguito:
Ho provato a rinominare tokenizer_config.jsonin config.jsone poi ho ricevuto l'errore:
ValueError: Unrecognized model in ./models/tokenizer/. Should have a `model_type` key in its config.json, or contain one of the following strings in its name: retribert, t5, mobilebert, distilbert, albert, camembert, xlm-roberta, pegasus, marian, mbart, bart, reformer, longformer, roberta, flaubert, bert, openai-gpt, gpt2, transfo-xl, xlnet, xlm, ctrl, electra, encoder-decoder
Risposte
save_vocabulary(), salva solo il file di vocabolario del tokenizer (List of BPE token).
Per salvare l'intero tokenizer, dovresti usare save_pretrained()
Quindi, come segue:
BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_pretrained("./models/tokenizer/")
tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")
Modificare:
per qualche motivo sconosciuto: invece di
tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")
utilizzando
tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")
lavori.