Construindo LLMs do zero: workshop de programação de 3 horas
(magazine.sebastianraschka.com)- Um workshop em que você pode dedicar algumas horas no fim de semana para acompanhar em código como os LLMs funcionam e ver de uma vez o fluxo de implementação, treinamento e uso
- A prática começa com uma introdução aos LLMs e avança gradualmente por dados de entrada, tokenizador e implementação da arquitetura do modelo
- Depois da implementação da arquitetura, aborda GPT-2 e Llama 2, pré-treinamento e carregamento de pesos pré-treinados, conectando até o fluxo de uso de modelos reais
- Também inclui uso de pesos com LitGPT, ajuste fino por instruções, avaliação com benchmarks e avaliação de desempenho em conversação
- O livro, o repositório no GitHub, o código do workshop, o Lightning Studio e o repositório do LitGPT são fornecidos juntos, facilitando acompanhar e testar por conta própria
Fluxo do vídeo do workshop de 3 horas
- Trata o processo de implementar, treinar e usar LLMs em um único workshop de programação
- Há capítulos clicáveis, permitindo ir direto ao tema necessário
-
Fundamentos e processamento de entrada
- 0:00 Visão geral do workshop
- 2:17 Introdução aos LLMs
- 9:14 Materiais do workshop
- 10:48 Entendendo os dados de entrada de LLMs
- 23:25 Classe simples de tokenizador
-
Implementação e treinamento do modelo
- 41:03 Programando a arquitetura de LLM
- 45:01 GPT-2 e Llama 2
- 1:07:11 Pré-treinamento
- 1:29:37 Carregamento de pesos pré-treinados
- 1:45:12 Uso de pesos pré-treinados com LitGPT
-
Ajuste fino e avaliação
- 1:53:09 Ajuste fino por instruções
- 2:08:21 Ajuste fino por instruções com LitGPT
- 2:26:45 Avaliação com benchmarks
- 2:36:55 Avaliação de desempenho em conversação
- 2:42:40 Encerramento
Materiais necessários para acompanhar
- Build an LLM from Scratch book: livro para criar um LLM do zero
- Build an LLM from Scratch GitHub repository: repositório no GitHub relacionado ao livro
- GitHub repository with workshop code: repositório com o código do workshop
- Lightning Studio for this workshop: Lightning Studio para este workshop
- LitGPT GitHub repository: repositório do LitGPT no GitHub
1 comentários
Opiniões no Hacker News
Há bastante sobreposição, mas eles abordam temas diferentes com mais detalhes ou têm focos distintos. A série completa do Andrej vale muito a pena, e o trabalho futuro da Eureka Labs também parece muito bom. Também acho que o blog e o livro do Sebastian valem o tempo e o dinheiro
https://ai.meta.com/research/publications/the-llama-3-herd-o...
É um bom tutorial de PyTorch, mas a ideia é não fingir que isso é baixo nível
Antes disso, tentei aprender com fast.ai, mas eles começavam direto montando redes com Pytorch e eu logo desisti. Parecia tão sem graça quanto aprender Java no ensino médio; eu precisava entender com que objeto estava lidando
https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
Também queria saber que tipo de coisa dava para fazer com o modelo criado assim, e como ensinar acontecimentos recentes a ele
Pensando bem, "code" é algo estabelecido como conteúdo do meio codex. Para o contexto histórico, veja https://en.wikipedia.org/wiki/Codex; ele começou em conjuntos de regras no campo jurídico e, em inglês, seu uso se expandiu para outras áreas pelo menos desde meados do século XVI
"program" é mais algo como publicar um conjunto de intenções, por exemplo com o sentido de "primeiro toca-se Bach e depois Mozart". Esse uso aparece alguns séculos depois de code como "conjunto de regras"
"develop" é uma boa palavra por significar desdobrar/revelar, mas não implica regras ou procedimentos sequenciais como as duas anteriores
Não sei exatamente o motivo, mas acho que é porque, no português do Brasil, "programa" tem uma associação forte com prostituição
O material do Andrej é baixo nível demais para mim, e acabo me perdendo nos detalhes. Não é uma crítica, mais um comentário que pode ajudar quem está em situação parecida com a minha
Muito tempo atrás, acompanhei como a retropropagação funciona em RNNs profundas, então pensei que seria interessante ver o restante também
Quando Windows não é mencionado explicitamente, costumo ver que o ambiente não foi testado nele e que não roda direito por problemas aleatórios
https://developer.nvidia.com/cuda-downloads?target_os=Linux&...