รหัสเพื่อทำซ้ำกระดาษ "Multifit: การปรับแต่งแบบจำลองภาษาหลายภาษาที่มีประสิทธิภาพ"
นี่คือโพสต์บล็อกที่มีการแนะนำไปยังบทความของเรา: http://nlp.fast.ai/classification/2019/09/10/multifit.html
ที่เก็บนี้มีกรอบเล็ก ๆ ที่ด้านบนของ Fastai v1.0; รหัสนี้เข้ากันได้กับ v1.0.47 ถึง v1.0.59 (ปัจจุบัน ณ ปี 2019.11.03) ผลลัพธ์ระหว่างเวอร์ชัน FASTAI อาจแตกต่างกันเนื่องจากการเพิ่มประสิทธิภาพให้กับ Fastai แบบจำลองของเราได้รับการฝึกฝนโดยใช้ 1.0.47
เฟรมเวิร์กถูกเขียนใหม่เพื่อให้ใช้งานได้ง่ายขึ้นกับ Fastai ใหม่ล่าสุด
เราเปิดตัวโมเดลภาษา 7 รุ่นที่ผ่านการฝึกอบรมเกี่ยวกับการถ่ายโอนข้อมูลวิกิพีเดียที่สอดคล้องกัน:
ในการดึงโมเดลเพียงใช้ฟังก์ชัน multifit.from_pretrained ต่อไปนี้เป็นสมุดบันทึกตัวอย่างที่แสดงวิธีการฝึกอบรมตัวจําแนกโดยใช้โมเดลที่ผ่านการฝึกอบรม
ผลการจำแนกเอกสารในชุดข้อมูล MLDOC Schwenk และ Li, 2018
| แบบอย่าง | เดอ | ES | FR | มัน | จา | ร. | zh |
|---|---|---|---|---|---|---|---|
| เลเซอร์ | 92.70 | 88.75 | 90.80 | 85.93 | 85.15 | 84.65 | 88.98 |
| มีหลาย | 94.0 | 95.15 | 93.20 | 85.82 | 87.48 | 86.85 | 90.72 |
| มีความหลากหลาย | 95.90 | 96.07 | 94.77 | 90.25 | 90.03 | 87.65 | 92.52 |
ผลการจำแนกความเชื่อมั่นในชุดข้อมูล CLS Prettenhofer และ Stein, 2010
| เดอ | FR | จา | |
|---|---|---|---|
| มีหลาย | 86.05 / 84.90 / 82.00 | 86.15 / 86.90 / 86.65 | 80.87 / 82.83 / 79.95 |
| มีความหลากหลาย | 93.19 / 90.54 / 93.00 | 91.25 / 89.55 / 93.40 | 86.29 / 85.75 / 86.59 |
คุณสามารถใช้โมเดลที่ผ่านการฝึกอบรมกับไลบรารี Fastai ได้ดังนี้:
from fastai.text import *
import multifit
exp = multifit.from_pretrained("name of the model")
fa_config = exp.pretrain_lm.tokenizer.get_fastai_config(add_open_file_processor=True)
data_lm = (TextList.from_folder(imdb_path, **fa_config)
.filter_by_folder(include=['train', 'test', 'unsup'])
.split_by_rand_pct(0.1)
.label_for_lm()
.databunch(bs=bs))
learn = exp.finetune_lm.get_learner(data_lm)
# learn is a preconfigured fastai learner with a pretrained model loaded
learn.fit_one_cycle(10)
learn.save_encoder("enc")
...
ที่เก็บนี้เป็นการเขียนสคริปต์การฝึกอบรมดั้งเดิมใหม่ดังนั้นจึงขาดสคริปต์ทั้งหมดที่ใช้ในกระดาษ เรากำลังทำงานบนพอร์ตไปยัง Fastai v2.0 จากนั้นเราจะเพิ่มสคริปต์ที่แสดงวิธีการทำซ้ำผลลัพธ์ ในกรณีที่คุณต้องการใช้สคริปต์เร็วขึ้นคุณสามารถเข้าถึงสคริปต์ดั้งเดิมได้ที่นี่
@article{Eisenschlos2019MultiFit,
title={MultiFiT: Efficient Multi-lingual Language Model Fine-tuning},
author={Julian Eisenschlos, Sebastian Ruder, Piotr Czapla, Marcin Kardas, Sylvain Gugger, Jeremy Howard}
journal={Proceedings of EMNLP-IJCNLP 2019},
year={2019}
}