はじめに
Exoは、日常的なデバイス(iPhone、iPad、Android、Mac、Linuxなど)を使用して独自のAIクラスタを実行することを目的としたオープンソースプロジェクトです。動的なモデルのパーティショニングと自動化されたデバイスの発見により、Exoは複数のデバイスを単一の強力なGPUに統合することができ、LLaMA、Mistral、LlaVA、Qwen、Deepseekなどの複数のモデルをサポートしています。また、ExoはChatGPT互換のAPIを提供し、ユーザーが独自のハードウェア上でモデルを簡単に実行できるようにしています。
機能一覧
- 幅広いモデルのサポートLLaMA、Mistral、LlaVA、Qwen、Deepseekなど幅広い機種に対応。
- 動的モデル分割現在のネットワーク・トポロジーとデバイス・リソースに基づいてモデル分割を最適化します。
- デバイスの自動検出手動で設定することなく、自動的に他のデバイスを検出します。
- ChatGPT互換APIChatGPTと互換性のあるAPIを提供し、独自のハードウェアでモデルを実行できるようにします。
- 設備平等デバイス同士はポイント・ツー・ポイントで接続され、マスター・スレーブ方式ではありません。
- 複数のパーティショニング戦略リングメモリ加重パーティショニングなど、さまざまなパーティショニング戦略をサポート。
ヘルプの使用
ヘルプの使用
設置プロセス
- 予備::
- Pythonのバージョンが3.12.0以上であることを確認してください。
- Linuxを使用し、NVIDIA GPUをサポートしている場合は、NVIDIAドライバ、CUDAツールキット、cuDNNライブラリをインストールします。
- ソースからのインストール::
- クローニング・プロジェクト
git clone https://github.com/exo-explore/exo.git
- プロジェクト・カタログにアクセスする:
CDエクソ
- 依存関係をインストールします:
pip install -e .
- あるいは、仮想環境を使ってインストールする:
ソース install.sh
- クローニング・プロジェクト
機能 操作の流れ
- 運用モデル::
- 複数のmacOSデバイスでサンプルを実行する:
- 設備 1:
エクソ
- 設備 2:
エクソ
- Exoは自動的に他のデバイスを検出し、ChatGPTのようなWebUIを起動します。
http://localhost:52415
.
- 設備 1:
- 単一のデバイスでサンプルを実行する:
- コマンドを使う:
エキゾ・ランllama-3.2-3b
- カスタムプロンプトを使用する:
exo run llama-3.2-3b -プロンプト "exoの意味は?"
- コマンドを使う:
- 複数のmacOSデバイスでサンプルを実行する:
- モデル・ストレージ::
- デフォルトでは、モデルは
~/.cache/huggingface/hub
. - これは、環境変数
HF_HOME
をクリックしてモデルの保存場所を変更します。
- デフォルトでは、モデルは
- テスト中にコンポーネントを調整する::
- 環境変数の使用
デバッグ
(0-9) デバッグログを有効にする:DEBUG=9 エキソ
- tinygrad推論エンジンには、別のデバッグ・フラグを使用する。
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- 環境変数の使用
- フォーマットコード::
- 利用する
ヤップ
フォーマットコード:- インストールフォーマットの要件:
pip3 install -e '.[フォーマット]'
- フォーマットスクリプトを実行する:
python3 format.py ./exo
- インストールフォーマットの要件:
- 利用する
使用方法
- EXOの立ち上げ::
エクソ
EXOは、追加設定なしで自動的に他のデバイスを検出し、接続します。
- 運用モデル::
- デフォルトモデルを使用する:
エキゾ・ランllama-3.2-3b
- カスタムのヒント
exo run llama-3.2-3b --prompt "EXOの意味は?"
- APIの使用例::
- リクエストを送信
バッシュ
curl http://localhost:52415/v1/chat/completions
-H「Content-Type: application/json」。
-d '{
"model": "llama-3.2-3b".
"メッセージ": [{"役割": "ユーザー", "内容": "EXOの意味は?" }] 。,
「温度」:0.7
}'
- リクエストを送信
パフォーマンス最適化
- macOSユーザー::
- macOSの最新バージョンにアップグレードする。
- うごきだす
./configure_mlx.sh
GPUメモリ割り当ての最適化。
一般的な問題
- SSLエラー一部のMacOS/Pythonのバージョンでは、証明書が正しくインストールされません。以下のコマンドを実行して修正してください:
/アプリケーション/Python 3.x/証明書のインストール.コマンド
- デバッグ・ログデバッグログを有効にする:
DEBUG=9 エキソ