Huggingface Save Tokenizer

Oct 27 2020

Ich versuche, den Tokenizer in huggingface zu speichern, damit ich ihn später aus einem Container laden kann, in dem ich keinen Zugang zum Internet benötige.

BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_vocabulary("./models/tokenizer/")
tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")

Die letzte Zeile gibt jedoch den Fehler an:

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

Transformatorversion: 3.1.0

Das Laden des gespeicherten Tokenizers aus einem vorab trainierten Modell in Pytorch hat leider nicht geholfen.

Bearbeiten 1

Dank der Antwort von @ ashwin unten habe ich es save_pretrainedstattdessen versucht und erhalte die folgende Fehlermeldung:

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

Der Inhalt des Tokenizer-Ordners ist unten:

Ich habe versucht , die Umbenennung tokenizer_config.jsonzu config.jsonund dann habe ich den Fehler:

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

Antworten

2 AshwinGeetD'Sa Oct 27 2020 at 17:41

save_vocabulary(), speichert nur die Vokabeldatei des Tokenizers (Liste der BPE-Token).

Um den gesamten Tokenizer zu speichern, sollten Sie verwenden save_pretrained()

Also wie folgt:

BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_pretrained("./models/tokenizer/")
tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")

Bearbeiten:

aus irgendeinem unbekannten Grund: statt

tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")

mit

tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")

funktioniert.