- ทีมนักวิจัยของ Microsoft ได้พัฒนา BitNet b1.58 2B4T ซึ่งเป็น โมเดล AI ประสิทธิภาพสูงมาก
- ด้วยการทำ quantization แบบ 1 บิต ทำให้ ได้ความเร็วสูงและใช้หน่วยความจำน้อย จึงสามารถรันบน CPU ได้ และเผยแพร่ภายใต้ MIT License
- สามารถทำงานได้บน CPU อย่าง Apple M2 และทำงานได้โดยไม่ต้องใช้ GPU
- BitNet b1.58 2B4T ที่มี พารามิเตอร์ 2 พันล้านตัว ให้ประสิทธิภาพเหนือกว่า โมเดลของ Meta, Google และ Alibaba
- อย่างไรก็ตาม จำเป็นต้องใช้ เฟรมเวิร์ก bitnet.cpp ของ Microsoft และยังคงมีปัญหาเรื่องความเข้ากันได้กับ GPU
BitNet b1.58 2B4T โมเดล AI แบบ 1 บิตน้ำหนักเบามากของ Microsoft
แนวคิดของ BitNet ในฐานะโมเดลน้ำหนักเบามาก
- BitNet เป็นโมเดล AI ที่ใช้ quantization แบบ 1 บิต โดยใช้ค่าเพียงสามค่า -1, 0, 1 ในการแทนพารามิเตอร์
- โมเดล quantization แบบเดิมโดยทั่วไปมักแทนค่าด้วย 8 บิตหรือ 4 บิต แต่ BitNet ใช้เพียง 1 บิต จึงมี ประสิทธิภาพด้านหน่วยความจำที่โดดเด่นมาก
- วิธีนี้มีข้อได้เปรียบอย่างมากบน ฮาร์ดแวร์สเปกต่ำ โดยเฉพาะใน สภาพแวดล้อม CPU ที่ไม่มี GPU
จุดเด่นของ BitNet b1.58 2B4T
- จำนวนพารามิเตอร์: 2 พันล้านตัว
- ข้อมูลฝึก: 4 ล้านล้านโทเค็น (ประมาณหนังสือ 33 ล้านเล่ม)
- เปิดซอร์สภายใต้ MIT License
- สามารถทำงานได้บน CPU ทั่วไป เช่น Apple M2 CPU
การเปรียบเทียบประสิทธิภาพและผลเบนช์มาร์ก
- BitNet b1.58 2B4T แสดงประสิทธิภาพที่ดีกว่าโมเดลต่อไปนี้ในบางเบนช์มาร์ก:
- Meta Llama 3.2 1B
- Google Gemma 3 1B
- Alibaba Qwen 2.5 1.5B
- เบนช์มาร์กหลักที่ใช้:
- GSM8K: การประเมินโจทย์คณิตศาสตร์ระดับประถมศึกษา
- PIQA: การประเมินความสามารถในการให้เหตุผลเชิงสามัญสำนึกทางกายภาพ
- ในการทดสอบบางรายการ เร็วได้สูงสุด 2 เท่า และ ใช้หน่วยความจำน้อยกว่ามาก
ข้อจำกัดและปัญหาความเข้ากันได้
- ประสิทธิภาพของ BitNet ขึ้นอยู่กับ
bitnet.cpp ซึ่งเป็นเฟรมเวิร์กเฉพาะของ Microsoft
- ปัจจุบัน
bitnet.cpp รองรับเฉพาะ CPU บางรุ่น และ ยังไม่รองรับ GPU
- ด้วยเหตุนี้ จึงถูกชี้ว่าเป็นข้อเสียในด้าน การขาดความเข้ากันได้กับสภาพแวดล้อม GPU ซึ่งเป็นมาตรฐานของโครงสร้างพื้นฐาน AI
4 ความคิดเห็น
> BitNet เป็นโมเดล AI ที่ใช้การควอนไทซ์แบบ 1 บิต โดยใช้เพียงสามค่า คือ -1, 0, 1 ในการแทนพารามิเตอร์
มีค่าอยู่ 3 ค่าแต่เป็น 1 บิตเหรอ? ผมเลยคิดว่ามันแปลก ๆ ก็เลยไปอ่านคอมเมนต์ใน HN มาหน่อย
> https://compilade.net/blog/ternary-packing
แทนที่จะใช้ 8 บิตเพื่อแทนค่า 2 ค่าใน 1 ไบต์ กลับใช้ ternary digit 5 ตัวเพื่อแทนค่า 3 ค่า ดังนั้นถ้าพูดกันแบบเคร่งครัดมันไม่ใช่โมเดล 1 บิต แต่เป็นโมเดล 1.5849... บิตตาม log(3) / log(2) = 1.5849... ดูจากที่มี b1.58 อยู่ในชื่อโมเดลแล้ว น่าจะเป็นแบบนี้ครับ
ดูเหมือนว่าบรรทัดที่ 4 ต้องแก้จาก
พารามิเตอร์ 200 ล้านตัวเป็นพารามิเตอร์ 2 พันล้านตัวนะครับความคิดเห็นจาก Hacker News
บรรทัดที่ 4
모든 비교 모델은 1-2억 개의->모든 비교 모델은 10-20억 개의คำแปลของ billion ใน AI ดูแปลก ๆ นะครับ