Tokenizer tiết kiệm mặt ôm

Oct 27 2020

Tôi đang cố gắng lưu tokenizer trong ôm mặt để tôi có thể tải nó sau này từ một vùng chứa mà tôi không cần truy cập internet.

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

Tuy nhiên, dòng cuối cùng là lỗi:

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

phiên bản máy biến áp: 3.1.0

Thật không may, cách tải tokenizer đã lưu từ mô hình định sẵn trong Pytorch .

Chỉnh sửa 1

Nhờ câu trả lời của @ ashwin bên dưới, tôi đã thử save_pretrainedthay thế và gặp lỗi sau:

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

nội dung của thư mục tokenizer bên dưới:

Tôi đã thử đổi tên tokenizer_config.jsonthành config.jsonvà sau đó tôi gặp lỗi:

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

Trả lời

2 AshwinGeetD'Sa Oct 27 2020 at 17:41

save_vocabulary(), chỉ lưu tệp từ vựng của tokenizer (Danh sách mã thông báo BPE).

Để lưu toàn bộ tokenizer, bạn nên sử dụng save_pretrained()

Như sau:

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

Biên tập:

vì một số lý do không xác định: thay vì

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

sử dụng

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

làm.