このプロジェクトについて

# Cactus Cactusは、モバイルデバイスやウェアラブル向けに設計されたハイブリッドエッジクラウドAIエンジンです。量子化、カーネル、計算グラフ、ランタイムエンジンを含む、オンデバイスAI推論のための完全なスタックを提供します。 ## アーキテクチャ このプロジェクトは4つの主要レイヤーで構成されています: - **Cactus Engine**:テキスト、音声、視覚タスク向けのOpenAI互換APIを提供し、チャット補完、ストリーミング、ツール呼び出し、文字起こし、埋め込み、RAG、クラウドハンドオフを含みます。 - **Cactus Graph**:行列乗算、アテンション、正規化、活性化関数などのテンソル演算向けのゼロコピー計算グラフ。 - **Cactus Kernels**:ARM NEON SIMDを使用し、Apple、Samsung、Pixel、その他のモバイルプラットフォーム向けに最適化されたCPU/GPUカーネル。 - **Cactus Quants**:4ビットから1ビット精度をサポートする独自の回転ベース量子化技術。 ## クイックスタート(Mac) Homebrewでインストールして実行: ```bash brew install cactus-compute/cactus/cactus cactus run ``` ## 主な機能 - **ハイブリッドエッジクラウド**:ローカルモデルの信頼度に基づいて、難しいクエリを自動的にクラウドにルーティングします。 - **モデルサポート**:Liquid、Gemma、Whisper、Parakeet、Qwenモデルファミリーで動作します。任意のHuggingFaceモデルを実験的に変換できます。 - **複数のバインディング**:Swift、Kotlin、Flutter、React Native、Python、Rust。 - **オンデバイスツール呼び出し**:オンデバイスツール呼び出し用の「Needle」と呼ばれる26Mパラメータモデルを含みます。 - **CLIツール**:モデルの実行、文字起こし、サービング、変換、ベンチマーク、テストのためのコマンド。 ## パフォーマンス ベンチマークはAppleシリコンおよびモバイルデバイスで強力なパフォーマンスを示しています。例えば、Mac M5 Maxでは、1kコンテキストのLLMベンチマークで2964トークン/秒のプリフィルと154トークン/秒のデコードを達成します。iPhone 17 Proでは、729トークン/秒のプリフィルと37トークン/秒のデコードを達成します。 ## 出力品質 量子化品質は複数のベンチマーク(ARC、HellaSwag、WinoGrande、MMLU、GPQA、GSM8K、HumanEval、BFCL)で評価されています。CQ4量子化は、ほとんどのタスクで元のFP16モデルに近い品質を維持します。 ## 使用方法 CLIは以下のコマンドを提供します: - `cactus run`:量子化ビット、バックエンド、画像/音声入力、ツールなどのオプションを指定してモデルを実行します。 - `cactus transcribe`:ライブマイク文字起こしまたはファイル文字起こし。 - `cactus download`:ビルド済みモデルバンドルをダウンロードします。 - `cactus convert`:HuggingFaceモデルをCactus CQ重みに変換します。 - `cactus serve`:OpenAI互換のローカルHTTPサーバーを起動します。 - `cactus code`:AIコーディングエージェントを実行します。 - `cactus benchmark`:ベンチマークスイートを実行します。 - `cactus test`:テストスイートを実行します。 ## ドキュメント 各コンポーネントの詳細なドキュメントが利用可能です: - Cactus Engine(C API) - Cactus Graph(C++) - Cactus Kernels(C++) - Cactus Quants(C++) - Cactus Hybrid(C/Python) - Pythonパッケージ ## 引用 研究でCactusを使用する場合は、以下を引用してください: ```bibtex @software{cactus, title = {Cactus: AI Inference Engine for Phones & Wearables}, author = {Ndubuaku, Henry and Cactus Team}, url = {https://github.com/cactus-compute/cactus}, year = {2025} } ```