はじめに
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 exo
- 依存関係をインストールします:
pip install -e .
- あるいは、仮想環境を使ってインストールする:
source install.sh
- クローニング・プロジェクト
機能 操作の流れ
- 運用モデル::
- 複数のmacOSデバイスでサンプルを実行する:
- 設備 1:
exo
- 設備 2:
exo
- Exoは自動的に他のデバイスを検出し、ChatGPTのようなWebUIを起動します。
http://localhost:52415
.
- 設備 1:
- 単一のデバイスでサンプルを実行する:
- コマンドを使う:
exo run llama-3.2-3b
- カスタムプロンプトを使用する:
exo run llama-3.2-3b --prompt "What is the meaning of exo?"
- コマンドを使う:
- 複数のmacOSデバイスでサンプルを実行する:
- モデル・ストレージ::
- デフォルトでは、モデルは
~/.cache/huggingface/hub
. - これは、環境変数
HF_HOME
をクリックしてモデルの保存場所を変更します。
- デフォルトでは、モデルは
- テスト中にコンポーネントを調整する::
- 環境変数の使用
DEBUG
(0-9) デバッグログを有効にする:DEBUG=9 exo
- tinygrad推論エンジンには、別のデバッグ・フラグを使用する。
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- 環境変数の使用
- フォーマットコード::
- 利用する
yapf
フォーマットコード:- インストールフォーマットの要件:
pip3 install -e '.[formatting]'
- フォーマットスクリプトを実行する:
python3 format.py ./exo
- インストールフォーマットの要件:
- 利用する
使用方法
- EXOの立ち上げ::
exo
EXOは、追加設定なしで自動的に他のデバイスを検出し、接続します。
- 運用モデル::
- デフォルトモデルを使用する:
exo run llama-3.2-3b
- カスタムのヒント
exo run llama-3.2-3b --prompt "EXO的意义是什么?"
- APIの使用例::
- リクエストを送信
bash
curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"messages": [{"role": "user", "content": "EXO的意义是什么?"}],
"temperature": 0.7
}'
- リクエストを送信
パフォーマンス最適化
- macOSユーザー::
- macOSの最新バージョンにアップグレードする。
- うごきだす
./configure_mlx.sh
GPUメモリ割り当ての最適化。
一般的な問題
- SSLエラー一部のMacOS/Pythonのバージョンでは、証明書が正しくインストールされません。以下のコマンドを実行して修正してください:
/Applications/Python 3.x/Install Certificates.command
- デバッグ・ログデバッグログを有効にする:
DEBUG=9 exo