1 ポイント 投稿者 GN⁺ 2024-10-12 | 1件のコメント | WhatsAppで共有

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.pytokenizer.pyスクリプトを使ってモデルとトークナイザーを変換できる。
  • ビルド

    • Rustコードはcargoでコンパイルして実行可能。
    • マルチモーダル機能を有効にするには、multimodal機能を含める必要がある。
  • TODOs

    • サンプリング手法の追加。
    • 9Bおよび27Bモデルのテスト。
    • マルチヘッドアテンションループの並列化。
    • 性能メトリクスの追加。
    • システムプロンプト提供機能の追加。
    • 量子化サポート(int8、int4)。

# GN⁺のまとめ

  • lm.rsは、RustでCPU上の言語モデルを実行する効率的な方法を提供する。MLライブラリが不要なため、軽量な環境で有用。
  • Rustを初めて使う開発者にも適しており、さまざまなモデルをサポートするため拡張性が高い。
  • PHI-3.5のようなマルチモーダルモデルに対応しており、画像処理機能も含まれている。
  • 類似機能を持つプロジェクトとして、Hugging FaceのTransformersライブラリがある。

1件のコメント

 
GN⁺ 2024-10-12
Hacker Newsの意見
  • M2 64GB MacBookで1.2G llama3.2-1b-it-q80.lmrsを実行したところ高速に動作し、CPU使用率は13スレッドで1000%だった
  • コード例を通じてTransformerの動作を説明するのに役立ちそう
    • ライブラリがstdoutに出力しないよう改善する必要がある
    • unsafe なしで実装できるのかという疑問がある
  • さまざまなRustツールを使ってモデルの読み込みやその他のLLM作業を行える
    • Python依存を減らすのに役立つかもしれない
    • 文法サポートの計画があるのか気になる
  • タイトルが明確ではない
    • "no dependency" という表現は誤解を招く可能性がある
  • 過去に似たような作業をしたが、性能は満足できるものではなかった
    • Rust実装のベンチマークが必要
    • LLM推論の実装がプログラマーにとって新しい "hello world!" になるかもしれない
  • Metal/Cuda対応は必須
  • Rustコミュニティの熱意を高く評価している
  • これらの実装がすべてCPU依存なのか気になる
  • 他のプロジェクトとの比較が必要
    • Visionモデルをサポートするなら試してみたい