EXO: 유휴 가정용 디바이스를 사용하여 분산형 AI 클러스터를 실행하고 다중 추론 엔진과 자동화된 디바이스 검색을 지원합니다.
일반 소개
Exo는 일상적인 디바이스(예: iPhone, iPad, Android, Mac, Linux 등)를 사용하여 자체 AI 클러스터를 실행하는 것을 목표로 하는 오픈 소스 프로젝트입니다. 동적 모델 파티셔닝과 자동화된 디바이스 검색을 통해 여러 디바이스를 하나의 강력한 GPU로 통합하여 LLaMA, Mistral, LlaVA, Qwen, Deepseek 등 여러 모델을 지원할 수 있으며, Exo는 사용자가 자신의 하드웨어에서 모델을 쉽게 실행할 수 있는 ChatGPT 호환 API도 제공합니다.

기능 목록
- 광범위한 모델 지원LLaMA, 미스트랄, LlaVA, 퀀, 딥시크 등 다양한 모델을 지원합니다.
- 동적 모델 파티셔닝현재 네트워크 토폴로지 및 디바이스 리소스를 기반으로 모델 파티셔닝을 최적화합니다.
- 자동화된 디바이스 검색수동 구성 없이 다른 장치를 자동으로 검색합니다.
- ChatGPT 호환 API자체 하드웨어에서 모델을 쉽게 실행할 수 있도록 ChatGPT 호환 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와 유사한 웹UI(tinygrad tinychat 기반)를 시작합니다.
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
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...