Tokenizer hemat wajah memeluk

Oct 27 2020

Saya mencoba untuk menyimpan tokenizer dalam bentuk pelukan sehingga saya dapat memuatnya nanti dari wadah di mana saya tidak memerlukan akses ke internet.

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

Namun, baris terakhir memberikan kesalahan:

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

versi transformer: 3.1.0

Sayangnya, cara memuat tokenizer yang disimpan dari model yang dilatih sebelumnya di Pytorch tidak membantu.

Edit 1

Berkat jawaban @ ashwin di bawah ini saya mencoba save_pretrained, dan saya mendapatkan kesalahan berikut:

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

isi folder tokenizer ada di bawah ini:

Saya mencoba mengganti nama tokenizer_config.jsonmenjadi config.jsondan kemudian saya mendapatkan kesalahan:

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

Jawaban

2 AshwinGeetD'Sa Oct 27 2020 at 17:41

save_vocabulary(), hanya menyimpan file kosakata dari tokenizer (Daftar token BPE).

Untuk menyimpan seluruh tokenizer, Anda harus menggunakan save_pretrained()

Jadi, sebagai berikut:

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

Edit:

untuk beberapa alasan yang tidak diketahui: alih-alih

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

menggunakan

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

bekerja.