- โค้ดที่ Andrej Karpathy ผู้ลาออกจาก OpenAI เพิ่งเปิดเผยใหม่
- โค้ดแบบมินิมอล/สะอาดสำหรับอัลกอริทึม (Byte Level) Byte Pair Encoding (BPE) ที่โดยทั่วไปใช้ในการทำโทเค็นของ LLM
- Byte Level : เพราะทำงานกับสตริงที่เข้ารหัสด้วย UTF-8
- BPE ได้รับความนิยมใน LLM จากบทความ GPT-2 และการเผยแพร่โค้ด GPT-2 ที่เกี่ยวข้องของ OpenAI
- ปัจจุบัน LLM สมัยใหม่ทั้งหมด (เช่น GPT, Llama, Mistral) ใช้อัลกอริทึมนี้เพื่อฝึก Tokenizer
- ใน repo มีโทเค็นไนเซอร์ 2 ตัว โดยทั้งคู่ทำงานหลัก 3 อย่าง
-
- ฝึก vocabulary และ merge ของ Tokenizer กับข้อความที่กำหนด
-
- เข้ารหัสจากข้อความเป็นโทเค็น
-
- ถอดรหัสจากโทเค็นกลับเป็นข้อความ
- มีคลาสฐาน Tokenizer,
BasicTokenizer ซึ่งเป็นอิมพลีเมนเทชันที่ง่ายที่สุด และ RegexTokenizer ที่แยกสตริงอินพุตด้วย regex
GPT4Tokenizer ซึ่งเป็น wrapper ของ RegexTokenizer สามารถจำลองการทำโทเค็นของ GPT-4 ได้อย่างแม่นยำในไลบรารี tiktoken
1 ความคิดเห็น
มีวิดีโอเกี่ยวกับการสร้าง GPT Tokenizer ที่เกี่ยวข้องกับเรื่องนี้อัปโหลดขึ้นมาด้วย สร้าง GPT Tokenizer โดย Andrej Karpathy [วิดีโอ]