Introdução geral
O Exo é um projeto de código aberto que tem como objetivo executar seu próprio cluster de IA usando dispositivos cotidianos (por exemplo, iPhone, iPad, Android, Mac, Linux etc.). Por meio do particionamento dinâmico de modelos e da descoberta automatizada de dispositivos, o Exo é capaz de unificar vários dispositivos em uma única GPU avançada com suporte a vários modelos, como LLaMA, Mistral, LlaVA, Qwen e Deepseek. O Exo também fornece uma API compatível com ChatGPT que permite aos usuários executar facilmente modelos em seu próprio hardware.
Lista de funções
- Amplo suporte ao modeloSuporte a uma ampla variedade de modelos, como LLaMA, Mistral, LlaVA, Qwen e Deepseek.
- Particionamento de modelo dinâmicoOtimize o particionamento do modelo com base na topologia de rede atual e nos recursos do dispositivo.
- Descoberta automatizada de dispositivosDescobre automaticamente outros dispositivos sem configuração manual.
- API compatível com ChatGPTAPI compatível com ChatGPT: fornece uma API compatível com ChatGPT para facilitar a execução de modelos em seu próprio hardware.
- igualdade de equipamentosOs dispositivos são conectados uns aos outros usando uma conexão ponto a ponto e não usam uma arquitetura mestre-escravo.
- Várias estratégias de particionamentoSuporte a uma variedade de estratégias de particionamento, como o particionamento ponderado pela memória em anel.
Usando a Ajuda
Usando a Ajuda
Processo de instalação
- preliminar::
- Certifique-se de que a versão do Python seja >= 3.12.0.
- Se estiver usando Linux e suportar GPUs NVIDIA, instale os drivers NVIDIA, o kit de ferramentas CUDA e a biblioteca cuDNN.
- Instalação a partir da fonte::
- Projeto de clonagem:
git clone https://github.com/exo-explore/exo.git
- Vá para o catálogo de projetos:
cd exo
- Instale a dependência:
pip install -e .
- Ou use um ambiente virtual para instalá-lo:
fonte install.sh
- Projeto de clonagem:
Função Fluxo de operação
- modelo operacional::
- Execute o exemplo em vários dispositivos macOS:
- Equipamento 1:
exo
- Equipamento 2:
exo
- O Exo descobre automaticamente outros dispositivos e inicia uma WebUI semelhante ao ChatGPT (com tecnologia tinygrad tinychat) em
http://localhost:52415
.
- Equipamento 1:
- Execute o exemplo em um único dispositivo:
- Use o comando:
exo executar llama-3.2-3b
- Use um prompt personalizado:
exo run llama-3.2-3b --prompt "Qual é o significado de exo?"
- Use o comando:
- Execute o exemplo em vários dispositivos macOS:
- Armazenamento de modelos::
- Por padrão, os modelos são armazenados na pasta
~/.cache/huggingface/hub
. - Isso pode ser feito definindo a variável de ambiente
HF_HOME
para alterar o local de armazenamento do modelo.
- Por padrão, os modelos são armazenados na pasta
- ajustar os componentes durante o teste::
- Uso de variáveis de ambiente
DEBUG
(0-9) Ativar o registro de depuração:DEBUG=9 exo
- Para o mecanismo de inferência tinygrad, use um sinalizador de depuração separado
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- Uso de variáveis de ambiente
- Código de formatação::
- fazer uso de
yapf
Código de formatação:- Requisitos de formatação da instalação:
pip3 install -e '. [formatação]'
- Execute o script de formatação:
python3 format.py . /exo
- Requisitos de formatação da instalação:
- fazer uso de
Uso
- Lançamento do EXO::
exo
O EXO descobrirá e se conectará automaticamente a outros dispositivos sem configuração adicional.
- modelo operacional::
- Use o modelo padrão:
exo executar llama-3.2-3b
- Dicas personalizadas:
exo run llama-3.2-3b --prompt "Qual é o significado de EXO?"
- Exemplos de uso da API::
- Enviar solicitação:
bash
Curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"modelo": "llama-3.2-3b".
"messages": [{"role": "user", "content": "What is the meaning of EXO?"}] ,
"temperatura": 0,7
}'
- Enviar solicitação:
otimização do desempenho
- Usuários do macOS::
- Atualize para a versão mais recente do macOS.
- estar em movimento
. /configure_mlx.sh
Otimize a alocação de memória da GPU.
problemas comuns
- Erro de SSLEm algumas versões do MacOS/Python, o certificado não está instalado corretamente. Execute o seguinte comando para corrigi-lo:
/Applications/Python 3.x/Install Certificates.command
- Registro de depuraçãoAtivar o registro de depuração:
DEBUG=9 exo