1 pontos por GN⁺ 2024-09-01 | 1 comentários | Compartilhar no WhatsApp
  • 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

1 comentários

 
GN⁺ 2024-09-01
Opiniões no Hacker News
  • Pode ser uma pergunta ignorante, mas fico curioso se isso é diferente do vídeo do Andrej Karpathy https://www.youtube.com/watch?v=kCc8FmEb1nY
    • A série do Andrej também é excelente, e o livro e este vídeo do Sebastian também são excelentes
      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
  • Gosto dos textos do Sebastian e estou ansioso pelo livro. Há muitos detalhes sobre como LLMs são construídos, mas, no longo prazo, parece que o campo de batalha vai nessa direção, então seria bom se ele também tratasse mais de como a Llama e a OpenAI podem refinar e estruturar dados de treinamento
  • Usar PyTorch não é construir um LLM do zero
    É um bom tutorial de PyTorch, mas a ideia é não fingir que isso é baixo nível
    • Para fazer uma torta de maçã do zero, primeiro é preciso inventar o universo
    • O conteúdo do Sebastian é muito bom, mas concordo com essa parte. Até começar criando um mecanismo de diferenciação automática do zero, como na série do Karpathy, eu não tinha entrado de verdade em deep learning
      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
    • Aprender a tocar Bach: começar por construir seu próprio piano
    • Por qual critério isso não é baixo nível? Escrever um cliente IRC usando só a API de sockets em Python também não é do zero?
    • No contexto de LLM, pytorch.nn também é baixo nível. Em educação, é importante não lidar com camadas demais de abstração de uma vez
  • Há algum tempo escrevi um guia prático para treinar o nanoGPT do zero na Azure. É fácil de seguir manualmente e bem prático
    https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
    • Fico curioso se realmente custou só 200 dólares
      Também queria saber que tipo de coisa dava para fazer com o modelo criado assim, e como ensinar acontecimentos recentes a ele
  • Pode ser irracional, mas tenho uma impressão basicamente negativa quando usam a palavra coding em vez de programming ou development
    • Essa reação, vinda de alguém que está entre os mais obcecados por linguagem nesta comunidade, parece meio espalhafatosa
      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
    • Sou do Brasil, e o motivo de isso ser engraçado é que, entre meus amigos e colegas, quando falamos em inglês normalmente usamos coding, e entre brasileiros usamos muito codar, como se fosse um verbo em português
      Não sei exatamente o motivo, mas acho que é porque, no português do Brasil, "programa" tem uma associação forte com prostituição
    • Concordo totalmente. Também discutimos esse tema um ano atrás: https://news.ycombinator.com/item?id=36924239
    • Talvez hoje seja uma opinião impopular, mas concordo, mesmo num clima em que esse tipo de julgamento é recebido como julgamento moral ou gatekeeping
    • Isso é mais uma sensibilidade europeia
  • É exatamente o nível de detalhe que eu estava procurando. Tenho bastante experiência com deep learning e pytorch, então não quero ver essa parte implementada do zero
    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
  • Excelente. Justo ontem eu estava me perguntando exatamente como transformers/attention e LLMs funcionam
    Muito tempo atrás, acompanhei como a retropropagação funciona em RNNs profundas, então pensei que seria interessante ver o restante também
    • Se quiser ganhar intuição, os vídeos do 3b1b explicam muito bem. Só não entram nos mínimos detalhes
  • Legal. Seria bom se funcionasse também no Windows 11
    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
    • No WSL2 dá para acessar a GPU, então acho que deve rodar sem problemas. Só não dá para esquecer de instalar o Cuda toolkit, e a NVidia também oferece um específico para WSL2
      https://developer.nvidia.com/cuda-downloads?target_os=Linux&...
    • Se não funcionar no Windows 11, tentar no WSL (Windows Subsystem for Linux) também é uma opção
  • Esta página é basicamente só um contêiner para o vídeo do YouTube. Como a descrição da página contém os mesmos links, seria melhor mudar o link no HN para apontar diretamente para o vídeo
    • Pelo contrário, isso poupou a etapa extra de procurar o repositório de posts do Sebastian Raschka
    • Ele compartilha muitos vídeos e código, e o material tem muito valor. Não basta simplesmente apoiar o criador?
    • Há algum motivo para não apoiar o site do próprio autor? O site também parece bom