Huggingface ประหยัดโทเค็น
ฉันกำลังพยายามบันทึกโทเค็นไนเซอร์ในกอดเฟซเพื่อที่ฉันจะสามารถโหลดได้ในภายหลังจากคอนเทนเนอร์ที่ฉันไม่ต้องการเข้าถึงอินเทอร์เน็ต
BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_vocabulary("./models/tokenizer/")
tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")
อย่างไรก็ตามบรรทัดสุดท้ายให้ข้อผิดพลาด:
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
รุ่นหม้อแปลง: 3.1.0
วิธีการโหลดโทเค็นไนเซอร์ที่บันทึกไว้จากโมเดลที่กำหนดไว้ล่วงหน้าใน Pytorchไม่ได้ช่วยอะไรเลย
แก้ไข 1
ขอบคุณคำตอบของ @ ashwin ด้านล่างฉันลองsave_pretrainedใช้แทนและได้รับข้อผิดพลาดต่อไปนี้:
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
เนื้อหาของโฟลเดอร์ tokenizer อยู่ด้านล่าง:
ฉันลองเปลี่ยนชื่อtokenizer_config.jsonเป็นconfig.jsonแล้วก็ได้รับข้อผิดพลาด:
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
คำตอบ
save_vocabulary()บันทึกเฉพาะไฟล์คำศัพท์ของโทเค็น (รายการโทเค็น BPE)
ในการบันทึกโทเค็นไนเซอร์ทั้งหมดคุณควรใช้ save_pretrained()
ดังต่อไปนี้:
BASE_MODEL = "distilbert-base-multilingual-cased"
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
tokenizer.save_pretrained("./models/tokenizer/")
tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")
แก้ไข:
ด้วยเหตุผลที่ไม่ทราบสาเหตุ: แทนที่จะเป็น
tokenizer2 = AutoTokenizer.from_pretrained("./models/tokenizer/")
โดยใช้
tokenizer2 = DistilBertTokenizer.from_pretrained("./models/tokenizer/")
ได้ผล