Lm.rs: Teknik inferensi LLM CPU minimal berbasis Rust tanpa dependensi
(github.com/samuel-vitorino)lm.rs: Menjalankan inferensi model bahasa lokal di CPU dengan Rust
-
Pengenalan
- lm.rs adalah proyek yang memungkinkan inferensi model bahasa dijalankan di CPU menggunakan Rust.
- Terinspirasi oleh llama2.c dan llm.c karya Karpathy, proyek ini dirancang agar model bahasa dapat dijalankan dengan kode seminimal mungkin tanpa library ML.
- Awalnya hanya mendukung model Gemma 2 dari Google, tetapi kini juga mendukung model Llama 3.2 dan model gambar PHI-3.5.
-
Model yang disiapkan
- Menyediakan benchmark untuk berbagai model dan tokenizer serta tautan unduhan.
- Disarankan menggunakan model terkuantisasi Q8_0 dan Q4_0.
- Kecepatan diukur pada AMD Epyc 16-core.
-
Konversi model
- Model dari Google/Meta dapat dikonversi ke format lmrs.
- Setelah memasang dependensi Python, model dan tokenizer dapat dikonversi menggunakan skrip
export.pydantokenizer.py.
-
Build
- Kode Rust dapat dikompilasi dan dijalankan dengan
cargo. - Untuk mengaktifkan fitur multimodal, perlu menyertakan fitur
multimodal.
- Kode Rust dapat dikompilasi dan dijalankan dengan
-
TODOs
- Menambahkan metode sampling.
- Menguji model 9B dan 27B.
- Memparelkan loop multi-head attention.
- Menambahkan metrik performa.
- Menambahkan fitur penyediaan system prompt.
- Dukungan kuantisasi (int8, int4).
# Ringkasan GN⁺
- lm.rs menawarkan cara efisien untuk menjalankan model bahasa di CPU dengan Rust. Ini dapat dilakukan tanpa library ML sehingga berguna di lingkungan yang ringan.
- Cocok bahkan untuk pengembang yang baru menggunakan Rust, serta mendukung beragam model sehingga memiliki skalabilitas tinggi.
- Dukungan untuk model multimodal seperti PHI-3.5 juga mencakup kemampuan pemrosesan gambar.
- Proyek dengan fungsi serupa antara lain library Transformers dari Hugging Face.
1 komentar
Komentar Hacker News
unsafe