Lm.rs: Kỹ thuật suy luận LLM tối giản bằng Rust trên CPU không phụ thuộc thư viện
(github.com/samuel-vitorino)lm.rs: Chạy suy luận mô hình ngôn ngữ cục bộ trên CPU bằng Rust
-
Giới thiệu
- lm.rs là một dự án cho phép chạy suy luận mô hình ngôn ngữ trên CPU bằng Rust.
- Được lấy cảm hứng từ llama2.c và llm.c của Karpathy, dự án được thiết kế để có thể chạy mô hình ngôn ngữ với lượng mã tối thiểu mà không cần thư viện ML.
- Trước đây chỉ hỗ trợ mô hình Gemma 2 của Google, nhưng nay đã hỗ trợ thêm mô hình Llama 3.2 và mô hình hình ảnh PHI-3.5.
-
Các mô hình đã chuẩn bị sẵn
- Cung cấp benchmark và liên kết tải xuống cho nhiều mô hình và tokenizer khác nhau.
- Khuyến nghị sử dụng các mô hình lượng tử hóa Q8_0, Q4_0.
- Tốc độ được đo trên AMD Epyc 16 lõi.
-
Chuyển đổi mô hình
- Có thể chuyển đổi các mô hình của Google/Meta sang định dạng lmrs.
- Sau khi cài đặt các phụ thuộc Python, có thể dùng các script
export.pyvàtokenizer.pyđể chuyển đổi mô hình và tokenizer.
-
Build
- Có thể biên dịch và chạy mã Rust bằng cargo.
- Để kích hoạt tính năng đa phương thức, cần bao gồm tính năng multimodal.
-
TODOs
- Thêm các phương pháp lấy mẫu.
- Kiểm thử các mô hình 9B và 27B.
- Song song hóa vòng lặp multi-head attention.
- Thêm các chỉ số hiệu năng.
- Thêm tính năng cung cấp system prompt.
- Hỗ trợ lượng tử hóa (int8, int4).
# Tóm tắt của GN⁺
- lm.rs cung cấp một cách hiệu quả để chạy mô hình ngôn ngữ trên CPU bằng Rust. Điều này hữu ích trong các môi trường gọn nhẹ vì không cần thư viện ML.
- Phù hợp cả với các lập trình viên mới làm quen với Rust, đồng thời hỗ trợ nhiều mô hình nên có tính mở rộng cao.
- Việc hỗ trợ các mô hình đa phương thức như PHI-3.5 cũng bao gồm khả năng xử lý hình ảnh.
- Một dự án có chức năng tương tự là thư viện Transformers của Hugging Face.
1 bình luận
Ý kiến trên Hacker News
1.2G llama3.2-1b-it-q80.lmrstrên MacBook M2 64GB, nó hoạt động nhanh và mức sử dụng CPU là 1000% trên 13 luồngstdoutunsafehay không