16 pontos por GN⁺ 2024-12-30 | 1 comentários | Compartilhar no WhatsApp
  • Tudo começou com o interesse pelo ChatGPT, e a decisão foi tomar o caminho de treinar um modelo diretamente para entender em profundidade como os LLMs funcionam
  • No início, foi usado um chip M1, mas ao perceber as limitações, foi montado um equipamento personalizado com GPUs NVIDIA 4090

1. Definição de objetivos e planejamento de orçamento

  • Definição de objetivos: os requisitos de hardware variam conforme o tamanho e o tipo do modelo que se deseja treinar
  • Planejamento de orçamento: considerar o equilíbrio entre desempenho e custo, tendo em mente o preço dos componentes de alta performance

2. Escolha do hardware

  • Placa-mãe: recomendação da SuperMicro M12SWA-TF. Ela oferece pistas PCIe suficientes para usar várias GPUs
  • CPU: escolha do AMD Threadripper PRO 5955WX. Suporta 128 pistas PCIe, resolvendo problemas de largura de banda
  • RAM: recomendados 128 GB de memória. Adequado para grandes conjuntos de dados e tarefas computacionais
  • GPU: NVIDIA 4090 GPU — ideal para treinar LLMs
    • Com 24 GB de VRAM, é capaz de lidar com modelos e conjuntos de dados de grande porte
    • Desempenho em BFloat16 otimizado para cargas de trabalho de IA
    • 16.384 núcleos CUDA para ampliar a capacidade de processamento paralelo
  • Armazenamento: configuração com SSD NVMe de 6 TB e HDD de 8 TB
  • Fonte de alimentação: 2 PSUs de 1500 W para fornecimento de energia estável
  • Gabinete e sistema de refrigeração: uso de um gabinete com suporte a várias GPUs e solução de resfriamento eficiente

3. Montagem do equipamento

  • Configuração com duas PSUs: uma fonte alimenta a placa-mãe e a CPU, e a outra alimenta as GPUs
  • Verificação de compatibilidade: revisar cuidadosamente a compatibilidade entre os componentes
  • Como treinar seu próprio modelo LLM com 4 GPUs 4090
  • Organizar os cabos de forma limpa para melhorar o fluxo de ar e simplificar a manutenção

4. Configuração de software

  • Sistema operacional: uso de um OS baseado em Linux (por exemplo, Ubuntu) para um ambiente de treino estável
  • Drivers e dependências: instalação dos drivers de GPU mais recentes, CUDA e bibliotecas cuDNN
  • Framework de treino: instalação de PyTorch ou TensorFlow
  • Kernel customizado: ativação da comunicação P2P entre GPUs com um kernel fornecido pelo Tinygrad

5. Treinamento de LLM

  • Preparação dos dados: limpeza e pré-processamento do dataset para garantir dados de entrada de alta qualidade
  • Escolha do modelo: selecionar um modelo adequado ao hardware, como Llama2 ou GPT
  • Processo de treino: monitorar e otimizar o uso dos recursos

6. Otimização e expansão

  • Treinamento com múltiplas GPUs: uso de Distributed Data Parallel (DDP) ou da tecnologia ZeRO
  • Uso de patches de kernel para habilitar a comunicação P2P nas GPUs NVIDIA série 4xxx
  • Ajuste de performance: otimizar hiperparâmetros, tamanho de batch e learning rate para obter melhor convergência e eficiência

7. Manutenção e monitoramento

  • Atualizações regulares: manter sistema e software sempre atualizados
  • Monitoramento do sistema: usar nvidia-smi, Prometheus etc. para verificar o estado do sistema

Principais insights e dicas

  • Alternativas de hardware: GPUs como A100 ou H100 oferecem mais VRAM, mas GPUs de consumo como a 4090 entregam excelente desempenho em configurações com bom custo-benefício
  • Considerar o uso de nuvem: para projetos de longo prazo, on-premise; para trabalhos de curto prazo, a nuvem pode ser mais adequada
  • Aproveitar materiais da comunidade: consultar os guias do Hugging Face e de Andrej Karpathy

Montar um equipamento para treinar LLMs é um desafio, mas também um trabalho recompensador que pode se tornar uma ferramenta poderosa para explorar novas possibilidades no desenvolvimento de IA

1 comentários

 
GN⁺ 2024-12-30
Comentários do Hacker News
  • Esta montagem é excelente e é a melhor usando 6 RTX 4090

    • Especificações: 6 x 24GB NVIDIA GeForce RTX 4090, Intel Xeon W7-3465X, 256GB DDR5 ECC, SSD NVMe Samsung 980 PRO de 2TB, SSD Samsung 870 EVO de 4TB, Ubuntu 20.04
    • A escolha de 256GB de memória DDR5 ECC é interessante, e também seria possível mirar em 1TB de RAM
    • O custo é astronômico
  • Este texto parece ter sido escrito por um modelo de IA, e a parte final tem uma forte cara de IA

    • Um artigo de acompanhamento sobre curadoria de dados, limpeza e treinamento seria mais interessante do que a escolha de hardware
  • Seria mais interessante um texto sobre que tipo de treinamento dá para fazer com um equipamento como esse

  • Alguém compartilha pessoalmente a experiência de montar equipamento de ML em casa e pré-treinar um LLM

  • Fico curioso sobre qual hardware é necessário para fazer fine-tuning de modelos de tamanho médio

    • Há muitos guias, mas eles se concentram em configurar a toolchain, e faltam informações sobre datasets para um bom fine-tuning
  • Para a maioria das pessoas, o lado de software do treinamento de modelos deveria ser mais interessante e acessível

    • O uso "completo" da GPU ainda é um tema em aberto, e pode ser mais vantajoso alugar na nuvem para realizar o trabalho
    • Esse processo foi um bom material inspirador, e recomendam https://efficientml.ai/
  • Quero ler textos escritos por pessoas, não por modelos de IA

  • Quero falar sobre cabos riser

    • Estou enfrentando problemas com conectores riser que afirmam suportar PCIe 4.0, mas têm desempenho ruim
    • Ao conectar um drive NVMe, surge um problema e a máquina não inicializa
    • Parece que o NVMe não tolera bem taxas altas de erro de bits
  • É divertido para um hobby caro, mas para trabalho de verdade é melhor alugar no Runpod

    • Bom blog
  • Só precisa de 4 GPUs 4090 e de um circuito dedicado de 30 ampères