Lm.rs: เทคโนโลยีอนุมาน LLM แบบมินิมอลบน CPU ด้วย Rust ที่ไม่มีการพึ่งพาไลบรารี
(github.com/samuel-vitorino)lm.rs: รันการอนุมานโมเดลภาษาภายในเครื่องบน CPU ด้วย Rust
-
แนะนำ
- lm.rs เป็นโปรเจกต์ที่สามารถรันการอนุมานโมเดลภาษาบน CPU โดยใช้ Rust
- ได้แรงบันดาลใจจาก
llama2.cและllm.cของ Karpathy และออกแบบมาเพื่อให้สามารถรันโมเดลภาษาได้ด้วยโค้ดที่น้อยที่สุดโดยไม่ต้องใช้ไลบรารี ML - เดิมรองรับเฉพาะโมเดล Gemma 2 ของ Google แต่ตอนนี้รองรับโมเดล Llama 3.2 และโมเดลภาพ PHI-3.5 แล้ว
-
โมเดลที่เตรียมไว้
- มีการให้ลิงก์ดาวน์โหลดและผลเบนช์มาร์กของโมเดลและโทเคไนเซอร์หลากหลายแบบ
- แนะนำให้ใช้โมเดลควอนไทซ์แบบ Q8_0 และ Q4_0
- ความเร็ววัดบน AMD Epyc แบบ 16 คอร์
-
การแปลงโมเดล
- สามารถแปลงโมเดลของ Google/Meta ไปเป็นฟอร์แมต
lmrsได้ - หลังติดตั้ง dependencies ของ Python แล้ว สามารถใช้สคริปต์
export.pyและtokenizer.pyเพื่อแปลงโมเดลและโทเคไนเซอร์ได้
- สามารถแปลงโมเดลของ Google/Meta ไปเป็นฟอร์แมต
-
การบิลด์
- สามารถคอมไพล์และรันโค้ด Rust ได้ด้วย
cargo - หากต้องการเปิดใช้ความสามารถแบบมัลติโหมด ต้องรวมฟีเจอร์
multimodalด้วย
- สามารถคอมไพล์และรันโค้ด Rust ได้ด้วย
-
TODOs
- เพิ่มวิธีการ sampling
- ทดสอบโมเดล 9B และ 27B
- ทำให้ลูป multi-head attention ทำงานแบบขนาน
- เพิ่มเมตริกด้านประสิทธิภาพ
- เพิ่มฟีเจอร์สำหรับส่ง system prompt
- รองรับการควอนไทซ์ (
int8,int4)
# สรุปโดย GN⁺
- lm.rs มอบวิธีที่มีประสิทธิภาพในการรันโมเดลภาษาบน CPU ด้วย Rust ซึ่งทำได้โดยไม่ต้องใช้ไลบรารี ML จึงเหมาะกับสภาพแวดล้อมแบบน้ำหนักเบา
- เหมาะกับนักพัฒนาที่เพิ่งเริ่มใช้ Rust และยังรองรับโมเดลได้หลากหลาย จึงขยายต่อได้ง่าย
- การรองรับโมเดลมัลติโหมดอย่าง PHI-3.5 ทำให้มีความสามารถด้านการประมวลผลภาพด้วย
- โปรเจกต์ที่มีฟังก์ชันคล้ายกันคือไลบรารี Transformers ของ Hugging Face
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
unsafeหรือไม่