Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

EXO: execução de clusters de IA distribuídos usando dispositivos domésticos ociosos, com suporte a vários mecanismos de inferência e descoberta automatizada de dispositivos.

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.

EXO: execução de clusters de IA distribuídos usando computadores domésticos ociosos com suporte para vários mecanismos de inferência e descoberta automatizada de dispositivos. -1


 

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

  1. 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.
  2. 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:source install.sh

Função Fluxo de operação

  1. 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) emhttp://localhost:52415.
    • Execute o exemplo em um único dispositivo:
      • Use o comando:exo run llama-3.2-3b
      • Use um prompt personalizado:exo run llama-3.2-3b --prompt "What is the meaning of exo?"
  2. 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 ambienteHF_HOMEpara alterar o local de armazenamento do modelo.
  3. ajustar os componentes durante o teste::
    • Uso de variáveis de ambienteDEBUG(0-9) Ativar o registro de depuração:DEBUG=9 exo
    • Para o mecanismo de inferência tinygrad, use um sinalizador de depuração separadoTINYGRAD_DEBUG(1-6):TINYGRAD_DEBUG=2 exo
  4. Código de formatação::
    • fazer uso deyapfCódigo de formatação:
      • Requisitos de formatação da instalação:pip3 install -e '.[formatting]'
      • Execute o script de formatação:python3 format.py ./exo

Uso

  1. Lançamento do EXO::
   exo

O EXO descobrirá e se conectará automaticamente a outros dispositivos sem configuração adicional.

  1. modelo operacional::
    • Use o modelo padrão:
     exo run llama-3.2-3b
    
    • Dicas personalizadas:
     exo run llama-3.2-3b --prompt "EXO的意义是什么?"
    
  2. Exemplos de uso da API::
    • Enviar solicitação: 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
      }'

otimização do desempenho

  • Usuários do macOS::
    • Atualize para a versão mais recente do macOS.
    • estar em movimento./configure_mlx.shOtimize 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
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " EXO: execução de clusters de IA distribuídos usando dispositivos domésticos ociosos, com suporte a vários mecanismos de inferência e descoberta automatizada de dispositivos.
pt_BRPortuguês do Brasil