- Introdução de um caso de setup e benchmark que executa o modelo quantizado A3B Q40 do Qwen3 30B MoE agrupando 4 pequenas placas Raspberry Pi como nós de inferência distribuída
- Configuração de rede com 1 ROOT + 3 WORKER (todos Raspberry Pi 5 8GB) por meio de um switch de rede
- A velocidade de geração de tokens foi medida em 14.33 tok/s na etapa de avaliação e 13.04 tok/s na etapa de predição
- O modelo é baseado na arquitetura Qwen3 MoE e é composto por 48 camadas e 128 especialistas
- Ao possibilitar a execução de modelos de linguagem de alto desempenho em hardware de baixo custo, o projeto amplia o potencial de clusters de Raspberry Pi e de pesquisa em IA com boa eficiência de custo
Visão geral do projeto
- Execução do modelo Qwen3 30B A3B Q40 em 4 Raspberry Pi 5 8GB usando Distributed Llama v0.16.0
- Projetado para viabilizar a execução de modelos de linguagem de grande porte em dispositivos de baixo custo
- Conexão de rede via switch TP-Link LS1008G
- O objetivo principal é rodar modelos de IA com eficiência mesmo sem recursos de computação de alto desempenho
- Distribuição do trabalho entre 4 dispositivos (1 root, 3 workers)
- Endereços IP: root (10.0.0.2), workers (10.0.0.1, 10.0.0.3, 10.0.0.4)
Hardware e configuração de rede
- Composição: cluster formado por 4 Raspberry Pi 5 8GB
- Cada dispositivo conectado ao switch TP-Link LS1008G
- O nó root e os 3 nós workers se comunicam pela rede
- Inicialização da rede: conexão bem-sucedida com todos os nós workers (10.0.0.1:9999, 10.0.0.3:9999, 10.0.0.4:9999)
- Operação de rede em modo não bloqueante
- Transferência de dados: na avaliação, envio de 12084kB e recebimento de 20085kB
- Uso de CPU: processamento otimizado com suporte a Neon Dotprod FP16
Detalhes do modelo
- Modelo: Qwen3 30B A3B Q40
- Arquitetura: Qwen3 MoE (Mixture of Experts)
- Número de camadas: 48
- Número de especialistas: 128, com 8 especialistas ativos
- Dimensões: Dim 2048, QDim 4096, KvDim 512, HiddenDim 6144
- Tokenizer: tamanho de vocabulário 151669, com pequena divergência em relação ao tamanho de vocabulário do modelo, 151936
- Tamanho de vocabulário geral: 151643
- Tamanho de vocabulário especial: 26
- Requisito de memória: 5513MB
- Comprimento máximo de sequência: 4096
- NormEpsilon: 0.000001, RopeTheta: 10000000
Desempenho de benchmark
- Etapa de avaliação
- Número de batches: 32
- Número de tokens: 19
- Velocidade de geração de tokens: 14.33 tok/s (69.80ms/tok)
- Etapa de predição
- Número de tokens: 109
- Velocidade de geração de tokens: 13.04 tok/s (76.69ms/tok)
- Logs detalhados de predição:
- Cada etapa de predição leva cerca de 49~70ms, com tempo de sincronização de 14~94ms
- Dados enviados de 636kB e recebidos de 1057kB de forma consistente
- Exemplo: geração de tokens como "Of", "course", "Poland"
- Número de threads: 4
- Tipo float do buffer: Q80
- Comprimento máximo de sequência: 4096
Atenções e limitações (Notes & Caveats)
- Há um aviso de divergência entre Tokenizer vocab size e Model vocab size, portanto é necessário verificar a consistência do tokenizer
- Como A3B Q40 é uma quantização agressiva, é preciso considerar o trade-off entre precisão e qualidade de resposta
- A configuração Pi 5 8GB × 4 tem limitações de memória e processamento, então a variação conforme tamanho do prompt, concorrência e qualidade da rede pode ser grande
Significado prático
- Projeto que demonstra a viabilidade de execução de IA de baixo custo
- Como caso reproduzível de execução distribuída de um modelo MoE na faixa de 30B em um cluster SBC de baixo custo, pode servir como referência para reduzir a barreira de entrada de inferência leve on-premises e experimentos de desenvolvimento
- A inclusão de logs de rede e sincronização por token fornece dados relevantes para medir e ajustar o overhead distribuído
- A combinação de framework distribuído + modelo quantizado pode elevar o desempenho em relação ao TCO em ambientes de pesquisa de edge ou pessoais
3 comentários
Os mini PCs da série n também são baratos, mas se juntar quatro de 16 GB... pensando bem, isso já dá o preço de um 8845 com 32 GB kkk
Impressionante. É bom ver que ultimamente está saindo cada vez mais informação sobre como operar LLMs de baixa carga.
Incrível..