tairov/llama2.mojo

Inference Llama 2 in one file of pure 🔥

What it solves

llama2.mojo は、Mojo 言語で記述された Llama 2 推論の高性能実装です。重いフレームワークに依存せず、中規模までの LLM 推論を効率的かつハードウェア最適化された CPU 推論として実現する必要性を解決します。Python 実装よりも大幅に高速化し、C ベースの代替手段と比較しても遜色ないパフォーマンスを提供します。

How it works

このプロジェクトは、M、Mojo の SIMD (Single Instruction, Multiple Data) とベクトル化プリミティブを使用して、行列乗算やその他のテンソル演算を最適化します。永続的なワーカープールを使用してマルチスレッド推論を実行することで、特定の baby-llama モデルにおいて CPU 上で llama2.cllama.cpp を凌駕する性能を発揮します。

Who it’s for

AI ワークロードにおける Mojo 言語の効率性を探求している開発者や研究者、および CPU 上で Llama スタイルのモデルを軽量かつ純 Mojo で実行するための軽量な実装を探している人々です。

Highlights

\n* High Performance: Python パフォーマンスをほぼ 250 倍にし、マルチスレッド推論において llama2.c を 30% 上回ります。

  • Hardware Optimization: Mojo の高度なハードウェアレベルの機能を使用して、CPU 推論を最適化しています。
  • Model Support: さまざまな "baby Llama" モデル (stories 260K から 110M) と TinyLlama-1.1B-Chat-v0.2 をサポートします。
  • Single File: 純 Mojo による単一ファイルでの Llama 2 推論を実装しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト