GPT2 รุ่นใหญ่และเล็กของเยอรมัน:
ดูการ์ดรุ่น GPT2 สำหรับการพิจารณาเกี่ยวกับข้อ จำกัด และอคติ ดูเอกสาร GPT2 สำหรับรายละเอียดเกี่ยวกับ GPT2
ฉันประเมินทั้ง Gerpt2-Large และ GPT2 GPT2, DBMDZ/German-GPT2 อื่น ๆ ในชุดข้อมูล CC-100 และ Wikipedia เยอรมัน:
| CC-100 (ppl) | Wikipedia (ppl) | |
|---|---|---|
| DBMDZ/GERMAN-GPT2 | 49.47 | 62.92 |
| Gerpt2 | 24.78 | 35.33 |
| ขนาดใหญ่ของ Gerpt2 | 16.08 | 23.26 |
ดูสคริปต์ evaluate.py ในพื้นที่เก็บข้อมูล Gerpt2 GitHub สำหรับรหัส
from transformers import AutoModelForCausalLM , AutoTokenizer , pipeline
tokenizer = AutoTokenizer . from_pretrained ( "benjamin/gerpt2-large" )
model = AutoModelForCausalLM . from_pretrained ( "benjamin/gerpt2-large" )
prompt = "<your prompt>"
pipe = pipeline ( "text-generation" , model = model , tokenizer = tokenizer )
print ( pipe ( prompt )[ 0 ][ "generated_text" ])นอกจากนี้สองเทคนิคอาจปรับปรุงข้อความที่สร้างขึ้น:
output = model . generate (
# during training an EOS token was used to mark the beginning of each text
# so it can help to insert it at the start
torch . tensor (
[ tokenizer . eos_token_id ] + tokenizer . encode ( prompt )
). unsqueeze ( 0 ),
do_sample = True ,
# try setting bad_words_ids=[[0]] to disallow generating an EOS token, without this the model is
# prone to ending generation early because a significant number of texts from the training corpus
# is quite short
bad_words_ids = [[ 0 ]],
max_length = max_length ,
)[ 0 ]
print ( tokenizer . decode ( output ))Gerpt2-Large ได้รับการฝึกฝนเกี่ยวกับข้อมูลภาษาเยอรมันทั้งหมดจาก CC-100 Corpus และน้ำหนักเริ่มต้นจากรุ่น GPT2 ภาษาอังกฤษ Gerpt2- ใหญ่ได้รับการฝึกฝนด้วย:
การฝึกอบรมใช้เวลาประมาณ 12 วันใน 8 คอร์ TPUV3
หากต้องการฝึกอบรม Gerpt2- ใหญ่ให้ทำตามขั้นตอนเหล่านี้ สคริปต์ตั้งอยู่ในที่เก็บ GitHub:
prepare/train_tokenizer.py ในฐานะที่เป็นข้อมูลการฝึกอบรมสำหรับ tokenizer ฉันใช้ชุดย่อยแบบสุ่ม 5% ของข้อมูล CC-100prepare/generate_aligned_wte.py สิ่งนี้ใช้เคล็ดลับที่ประณีตในการทำแผนที่ความหมายโทเค็นจากโทเค็นภาษาอังกฤษไปจนถึงโทเค็นจากโทเค็นเยอรมันโดยใช้การฝังคำที่จัดเรียง E. G.: ĠMinde -> Ġleast
Ġjed -> Ġwhatsoever
flughafen -> Air
vermittlung -> employment
teilung -> ignment
ĠInterpretation -> Ġinterpretation
Ġimport -> Ġimported
hansa -> irl
genehmigungen -> exempt
ĠAuflist -> Ġlists
Ġverschwunden -> Ġdisappeared
ĠFlyers -> ĠFlyers
Kanal -> Channel
Ġlehr -> Ġteachers
Ġnahelie -> Ġconvenient
gener -> Generally
mitarbeiter -> staff
สิ่งนี้ช่วยได้มากในการทดลองใช้งานที่ฉันทำแม้ว่าฉันจะไม่สามารถทำการเปรียบเทียบเต็มรูปแบบได้เนื่องจากข้อ จำกัด ด้านงบประมาณและเวลา ในการใช้เมทริกซ์ WTE นี้สามารถส่งผ่าน wte_path ไปยังสคริปต์การฝึกอบรม ให้เครดิตกับบล็อกนี้สำหรับแนวคิดในการเริ่มต้น GPT2 จากน้ำหนักภาษาอังกฤษ
prepare/tokenize_text.py สิ่งนี้สร้างไฟล์สำหรับโทเค็นรถไฟและการตรวจสอบในรูปแบบบรรทัด JSONtrain.py ! run.sh แสดงให้เห็นว่าสิ่งนี้ถูกดำเนินการอย่างไรสำหรับการเรียกใช้เต็มรูปแบบด้วย configs/tpu_large.json Gerpt2 ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
กรุณาอ้างอิง Gerpt2 ดังนี้:
@misc{Minixhofer_GerPT2_German_large_2020,
author = {Minixhofer, Benjamin},
doi = {10.5281/zenodo.5509984},
month = {12},
title = {{GerPT2: German large and small versions of GPT2}},
url = {https://github.com/bminixhofer/gerpt2},
year = {2020}
}
ขอบคุณการกอดหน้าสำหรับเครื่องมือและโครงสร้างพื้นฐานที่ยอดเยี่ยม ขอขอบคุณ Artus Krohn-Grimberghe ที่ Lytiq ที่ทำให้สิ่งนี้เป็นไปได้โดยสนับสนุนทรัพยากรที่ใช้สำหรับการฝึกอบรม