21 pontos por GN⁺ 2024-07-17 | 1 comentários | Compartilhar no WhatsApp
  • Esqueça as caras GPUs da NVIDIA e use dispositivos que você já tem, como iPhone, iPad, Android, Mac e Linux, combinando tudo em uma única GPU poderosa
  • Suporte a LLaMA e vários outros modelos
  • Com o "particionamento dinâmico de modelos", divide o modelo de forma otimizada com base na topologia atual da rede e nos recursos de dispositivo disponíveis
    • Permite executar modelos maiores do que aqueles que caberiam em um único dispositivo
  • Encontra outros dispositivos com descoberta automática de dispositivos
  • Fornece API compatível com ChatGPT
  • Cada dispositivo se conecta em modo p2p, e não em uma estrutura Master-Worker (a estratégia de particionamento padrão é ring memory weighted partitioning)
  • Suporte a engines de inferência:
    • ✅ MLX
    • ✅ tinygrad
    • 🚧 llama.cpp
  • Suporte a módulos de rede:
    • ✅ GRPC
    • 🚧 Radio
    • 🚧 Bluetooth
  • Problemas conhecidos
    • Como a biblioteca está evoluindo rapidamente, a implementação em iOS está ficando para trás em relação ao Python
    • No longo prazo, a proposta é avançar para uma abordagem unificada para que não seja necessário manter implementações separadas

Resumo do GN⁺

  • O exo é um software experimental que pode integrar vários dispositivos em um único e poderoso cluster de IA
  • Oferece vários recursos, como descoberta automática de dispositivos e particionamento dinâmico de modelos, permitindo executar modelos maiores do que em um único dispositivo
  • Fornece uma API compatível com ChatGPT, facilitando a execução de modelos
  • Está promovendo uma abordagem unificada para resolver o problema de a implementação em iOS estar ficando para trás

1 comentários

 
GN⁺ 2024-07-17
Opiniões no Hacker News
  • É necessária a mlx, uma biblioteca exclusiva para Apple Silicon. Dizem que funciona em "iPhone, iPad, Android, Mac, Linux, pretty much any device", mas fico em dúvida se isso já foi realmente testado
  • Estou pensando em uma forma de usar com facilidade esse sistema otimizado para rede local via crowdsourcing. Estou procurando um jeito de permitir que todos no escritório participem facilmente da rede ou contribuam para modelos específicos de domínio escaneando um QR code
  • A ideia é excelente e amigável para o usuário. Há potencial para transformar vários dispositivos antigos em algo útil. Mas seria bom se fornecessem resultados sobre tok, latência e configuração de exemplo
  • Fiz o paddler do GitHub funcionar no Windows em dois dispositivos para balanceamento de carga. Isso seria útil para executar o Llama 400B em vários dispositivos. Mas ainda não há suporte para Windows
  • Esse recurso permite executar modelos maiores do que o que caberia em um único dispositivo. Porém, falta explicação sobre como isso funciona de forma concreta. Por exemplo, se algumas camadas da rede neural estiverem no deviceA e outras no deviceB, então, cada vez que um token for gerado, será necessário transmitir do deviceA para o deviceB os dados de saída da última camada
  • Computação em enxame deveria se tornar o padrão de toda computação. Há CPUs ociosas demais em todos os dispositivos que possuímos
  • Não vai funcionar por causa do gargalo de rede. Será preciso transferir gigabytes de dados. Portanto, é necessário ter uma boa internet (mais de 20mb/s) e bons dispositivos. Esse sistema vai acabar sendo só uma demo legal no Twitter. Espero que me provem o contrário
  • A nuvem não pode ser vencida em termos de computação/preço, mas migrar para o local pode resolver as questões de privacidade. O mundo precisa de uma segunda emenda para computação
  • Antes eu achava interessante executar modelos localmente em Mac, PC etc. Mas agora penso que a maior parte da computação de IA realmente útil vai acontecer na nuvem. Dá para rodar um modelo Llama3 lento na rede de casa, mas não há muita razão para isso quando dá para usar um serviço em nuvem por pouco dinheiro ou até de graça. A Apple está promovendo modelos de IA locais, mas há preocupações sérias sobre o impacto na bateria
  • Grandes clusters relatam que a sobrecarga de comunicação usando redes RDMA é um gargalo, então fico me perguntando como é possível que esse sistema não sofra um gargalo enorme em uma rede doméstica