Lm.rs: 依存関係なしのRust製ミニマルCPU LLM推論技術
(github.com/samuel-vitorino)lm.rs: RustでCPU上のローカル言語モデル推論を実行
-
紹介
- lm.rsは、Rustを使ってCPU上で言語モデル推論を実行できるプロジェクト。
- Karpathyのllama2.cとllm.cに着想を得ており、MLライブラリなしで最小限のコードで言語モデルを実行できるように設計されている。
- GoogleのGemma 2モデルのみをサポートしていたが、現在はLlama 3.2モデルとPHI-3.5画像モデルにも対応している。
-
用意されているモデル
- さまざまなモデルとトークナイザーのベンチマークおよびダウンロードリンクを提供。
- Q8_0、Q4_0量子化モデルの利用を推奨。
- 速度は16コアのAMD Epycで計測。
-
モデル変換
- Google/Metaのモデルをlmrs形式に変換可能。
- Python依存関係をインストールした後、
export.pyとtokenizer.pyスクリプトを使ってモデルとトークナイザーを変換できる。
-
ビルド
- Rustコードはcargoでコンパイルして実行可能。
- マルチモーダル機能を有効にするには、multimodal機能を含める必要がある。
-
TODOs
- サンプリング手法の追加。
- 9Bおよび27Bモデルのテスト。
- マルチヘッドアテンションループの並列化。
- 性能メトリクスの追加。
- システムプロンプト提供機能の追加。
- 量子化サポート(int8、int4)。
# GN⁺のまとめ
- lm.rsは、RustでCPU上の言語モデルを実行する効率的な方法を提供する。MLライブラリが不要なため、軽量な環境で有用。
- Rustを初めて使う開発者にも適しており、さまざまなモデルをサポートするため拡張性が高い。
- PHI-3.5のようなマルチモーダルモデルに対応しており、画像処理機能も含まれている。
- 類似機能を持つプロジェクトとして、Hugging FaceのTransformersライブラリがある。
1件のコメント
Hacker Newsの意見
unsafeなしで実装できるのかという疑問がある