Livro online de engenharia de ML
(github.com/stas00)-
Engenharia de combate em inteligência artificial — o que você precisa saber
- Uma coleção aberta de metodologias para o treinamento bem-sucedido de modelos de inteligência artificial (ML), especialmente modelos de linguagem de grande porte (LLM) e modelos multimodais (VLM).
- Material técnico para engenheiros e operadores de treinamento de LLM/VLM, com muitos scripts e comandos de copiar e colar para permitir executar rapidamente as tarefas necessárias.
- Registra continuamente a experiência e o know-how obtidos ao treinar o modelo open source BLOOM-176B em 2022 e o modelo multimodal IDEFICS-80B em 2023; atualmente, está desenvolvendo/treinando modelos open source com recuperação aumentada na Contextual.AI.
-
Índice
- Pede desculpas pelo layout instável, pois está no processo de escrever novos capítulos e reorganizar o conteúdo de forma mais intuitiva.
-
Componentes de hardware
- Aceleradores - Os cavalos de batalha do ML, incluindo GPU, TPU, IPU, FPGA, HPU, QPU e RDU.
- Rede - Conectividade dentro dos nós e entre nós, além do cálculo dos requisitos de largura de banda.
- Armazenamento - Discos e sistemas de arquivos locais e distribuídos.
- CPU - Conteúdo sobre CPU e afinidade.
- Memória da CPU - O capítulo mais curto sobre quanta memória de CPU é suficiente.
-
Desempenho
- Tolerância a falhas
- Desempenho
- Rede multinó
- Paralelismo de modelo
-
Operações
- SLURM
- Hiperparâmetros de treinamento e inicialização do modelo
- Instabilidade
-
Desenvolvimento
- Depuração de falhas de software e hardware
- Mais depuração
- Reprodutibilidade
- Precisão de tensor / tipos de dados
- Notas sobre HF Transformers - Dicas sobre modelos pequenos, tokenizers, datasets etc.
-
Outros
- Materiais - Cronologia de LLM/VLM.
-
Acesso rápido
- Ferramentas e guias que frequentemente precisam ser encontrados rapidamente.
- Ferramentas:
all_reduce_bench.py,torch-distributed-gpu-test.py - Guias:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
Criando o livro
- Se quiser gerar um PDF ou verificar links, consulte a seção 'Criando o livro'.
-
Agradecimentos
- Poder aprender esse know-how é um privilégio de que poucos podem desfrutar, já que o custo de alugar grandes clusters de computação para ML é extremamente alto.
- Agradecimentos especiais a Thom Wolf e à HuggingFace.
-
Como contribuir
- Se encontrar bugs, erros de digitação ou tiver sugestões de melhoria, recomenda-se abrir uma issue ou contribuir com um PR.
-
Licença
- O conteúdo deste site é distribuído sob a licença Attribution-ShareAlike 4.0 International.
-
Mapa do meu repositório
- Aprendizado de máquina: ML Engineering Open Book | ML ways | Porting
- Guias: The Art of Debugging
- Aplicativos: ipyexperiments
- Ferramentas e cheat sheets: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
Opinião do GN⁺
- Este material faz uma grande contribuição para a comunidade de ML ao fornecer conhecimento prático e ferramentas necessárias para treinar modelos de linguagem de grande porte e modelos multimodais.
- Ao compartilhar o know-how obtido em experiências de projetos reais, ajuda engenheiros de software iniciantes a adquirir o conhecimento prático necessário para o treinamento de modelos de ML em grande escala.
- A abordagem open source promove o compartilhamento de conhecimento e a colaboração na área de ML, desempenhando um papel importante na aceleração da pesquisa e da inovação.
1 comentários
Comentários do Hacker News
Este texto é realmente valioso. Trabalho depurando configurações de treinamento de LLM para apoiar pesquisas, e teria sido ótimo ter notas como estas quando comecei.
Trabalho com um Applied Scientist ajudando em tarefas relacionadas ao treinamento e à implantação de modelos; como alguém como eu pode ter mais contato com trabalhos de engenharia de nível mais baixo, como otimização, desempenho e coisas do tipo? Temos uma equipe de infraestrutura de ML, mas o objetivo deles é construir ferramentas em torno da plataforma, e não necessariamente executar as cargas de trabalho da forma mais otimizada.
Quero experimentar isso, mas não tenho uma GPU adequada. Como vocês executam essas coisas?
Muito obrigado por tudo na seção "Unsolicited Advice" do AI Battlefield [1]. É uma visão muito realista do avanço rápido do desenvolvimento de IA e da carga emocional que isso gera.
Quão amplamente o Slurm é usado?
Cliquei aleatoriamente e acabei lendo sobre repeatability, mas ainda fico me perguntando como isso é alcançado em treinamento distribuído. A sincronização determinística não deixa tudo mais lento? Ainda assim, ouvi dizer que pelo menos em algumas empresas grandes o treinamento deles é repetível.
Como se ganha experiência com esse tipo de coisa quando se está sem emprego?
Existe um PDF em algum lugar? Parece que há instruções de como compilar, mas não o arquivo em si.