4.1 KiB
Com essa configuração de hardware, você possui uma excelente base para um ecossistema multi-agente local, embora precise lidar com as limitações de largura de banda de memória típicas de sistemas DDR4 ao rodar LLMs em CPU.
Aqui está o que você pode esperar em termos de capacidade e performance para sua infraestrutura:
1. Performance de Inferência (Velocidade de Geração)
O principal gargalo para LLMs em CPU é a largura de banda da memória RAM. O processador Intel Xeon E5-2699 v3 suporta quatro canais de memória por socket, com uma largura de banda máxima de aproximadamente 68\\text{ GB/s} por CPU.
- Modelos de 7B/8B (ex: Llama 3.1 8B, Qwen 2.5 7B): Usando quantização Q4_K_M, você deve obter entre 7 a 10 tokens por segundo por instância. Essa velocidade é suficiente para uma interação humana fluida.
- Modelos de 70B (ex: Llama 3.1 70B): O desempenho cai drasticamente para cerca de 0,7 a 1,5 tokens por segundo. Isso é utilizável para tarefas de "segundo plano" (pesquisas profundas, resumos de grandes documentos), mas frustrante para chat em tempo real.
- Dica de Otimização (NUMA): Em sistemas de dois sockets, o link QPI entre as CPUs pode introduzir latência. Para melhor performance, configure o BIOS para desativar o SNC (Sub-NUMA Clustering) ou utilize o comando numactl --interleave=all para distribuir a carga de memória uniformemente.
2. Capacidade Simultânea (Quantidade de Agentes)
Com 128 GB de RAM, sua principal vantagem é a capacidade de manter múltiplos agentes ou modelos carregados simultaneamente sem swap de disco.
- Agentes Especializados (8B): Cada agente com um modelo de 8B (Q4) e uma janela de contexto de 8k tokens ocupa cerca de
8\\text{ a }10\\text{ GB}de RAM. Você poderia rodar tranquilamente 10 a 12 agentes simultâneos mantendo uma margem de segurança para o sistema operacional e o banco de dados. - Agentes de Raciocínio Pesado (70B): Um modelo de 70B (Q4) consome cerca de
40\\text{ GB}de RAM. Você poderia rodar 2 agentes de grande porte simultaneamente, deixando o restante da memória para agentes menores de suporte.
3. Banco de Dados e Memória Semântica (Qdrant)
O banco de dados vetorial Qdrant é extremamente eficiente em termos de recursos. Para a "memória" dos seus agentes, o hardware atual é mais que suficiente:
- Armazenamento de Vetores: Para armazenar 1 milhão de memórias (vetores de 1024 dimensões), o Qdrant precisará de aproximadamente 6 GB de RAM para performance máxima (tudo em memória).
- Fórmula de Estimativa:
\\text{RAM\\\_Qdrant} \= \\text{Nº de vetores} \\times \\text{dimensão} \\times 4 \\text{ bytes} \\times 1,5 - Uso de SSD NVMe: Como você possui NVMe, pode configurar o Qdrant com on_disk: true. Isso permite que o banco gerencie coleções muito maiores do que a sua RAM disponível, carregando apenas os vetores mais acessados para o cache.
4. Busca e Embeddings
Para que os agentes compartilhem memória sem latência alta, você deve usar modelos de embedding extremamente leves executados na CPU via ONNX ou FastEmbed:
-
Modelo Sugerido: sentence-transformers/all-MiniLM-L6-v2 ou BGE-small-en-v1.5. Eles geram embeddings em menos de 25-50ms na sua CPU, permitindo que a busca por memórias passadas seja quase instantânea antes de cada resposta do agente.
-
Busca Web: Ao usar o SearXNG em Docker, o impacto no processamento é mínimo (menos de 2 GB de RAM e uso de CPU desprezível fora dos picos de busca).
Resumo da Entrega Tecnológica
| Componente | Expectativa no Xeon E5-2699 v3 |
|---|---|
| Throughput Total | ~20-30 tokens/s (distribuídos entre agentes) |
| Latência Médio (8B) | ~100-150ms por token |
| Memória Livre p/ Contexto | ~100 GB (após carregar o SO e ferramentas) |
| Escalabilidade de Memória | Alta (Pode indexar >10 milhões de documentos) |
Recomendação final: Para manter a eficiência, use modelos como o Phi-3 Mini (3.8B) para agentes de orquestração rápida e o Llama 3.1 8B para os especialistas que realizam a pesquisa e escrita.