- O Transformer, apresentado em 2017, começou na tradução automática, expandiu-se para praticamente todas as áreas e se tornou um conhecimento essencial de IA que engenheiros modernos precisam dominar
- Este guia é estruturado em etapas, de redes neurais a attention, para que engenheiros acompanhem apenas o necessário para entender Transformers
- Ele oferece exemplos de código em Python executáveis e materiais de referência, permitindo aprender não só lendo, mas também verificando na prática
- O conteúdo é dividido em redes neurais, RNNs, NLP e attention, Transformer, e um apêndice de fundamentos de Python e matemática; também foram adicionados itens sobre PyTorch e Multi-Agents baseados em LLM
- As condições de uso para fins educacionais e não comerciais são relativamente abertas, mas contatos anônimos são limitados — por exemplo, consultas exigem pelo menos dois endereços de redes sociais para verificação
Caminho de aprendizado para entender Transformers
- The Engineer’s Guide To Deep Learning é um guia conciso que oferece o percurso mínimo necessário para engenheiros entenderem Transformers
- A IA atual é definida como a terceira era de ouro
- As duas eras de ouro anteriores ocorreram nas décadas de 1950–1960 e nos anos 1980
- Na época, as expectativas superaram a capacidade técnica, levando à decepção
- A atual era de ouro da IA, iniciada em meados da década de 2010, é descrita como um movimento que vem superando expectativas de forma contínua
- Transformer foi um avanço introduzido em 2017
- Inicialmente, foi desenvolvido como um modelo de tradução automática
- Depois, seu impacto se expandiu para praticamente todas as áreas
- Como material de apoio ao estudo, são fornecidos exemplos de código em Python executáveis
- Também são apresentados materiais de referência adicionais, para que cada leitor possa escolher os recursos mais adequados
Estrutura do documento e atualizações
- O guia é organizado para construir os fundamentos necessários em ordem, em vez de pular diretamente para Transformers
- Part 1: Neural Networks — conceitos básicos de redes neurais
- Part 2: Recurrent Neural Networks (RNNs) — RNN, LSTM, GRU
- Part 3: Natural Language Processing (NLP) and Attention Mechanisms — princípios centrais de NLP, incluindo tradução automática e attention
- Part 4: Transformer — modelo Transformer
- Appendix: Basic Knowledge — conhecimentos mínimos de Python e matemática necessários para entender Transformers
- O histórico de mudanças continua desde a publicação da primeira versão em 21 de maio de 2024
- 23 de julho de 2024: adição da versão em PyTorch às Parts 1 e 2
- 16 de setembro de 2024: adição da seção Multi-Agents baseados em LLM
- No futuro, é possível que o guia também cubra várias tecnologias baseadas em Transformer atualmente em desenvolvimento e outro grande avanço em um futuro próximo
Condições de uso e forma de contato
- As condições de uso no FAQ de copyright são abertas principalmente para usos educacionais e não comerciais
- Professores e estudantes vinculados a instituições de ensino podem usar livremente documentos e figuras para fins de aprendizado
- Em encontros e palestras não comerciais, documentos e figuras podem ser usados desde que o link do site e os direitos autorais sejam indicados
- As explicações sobre revenue share e full buyout na seção de uso comercial são uma piada, e o autor afirma não ter intenção de estabelecer relações comerciais
- E-mails de contato devem fornecer pelo menos dois endereços de redes sociais, como LinkedIn e Twitter, para fins de verificação
- Após o caso do backdoor no XZ, contatos de indivíduos anônimos não são aceitos
1 comentários
Opiniões no Hacker News
Transformers from Scratch: https://e2eml.school/transformers.html
A série introdutória do Andrej Karpathy também é boa: https://karpathy.ai/zero-to-hero.html
Let's build GPT: from scratch, in code, spelled out: https://www.youtube.com/watch?v=kCc8FmEb1nY
GPT with Andrej Karpathy: Part 1: https://medium.com/@kdwa2404/gpt-with-andrej-karpathy-part-1...
O “But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning”, do 3Blue1Brown: https://www.youtube.com/watch?v=wjZofJX0v4M
“Attention in transformers, visually explained | Chapter 6, Deep Learning”: https://www.youtube.com/watch?v=eMlx5fFNoYc
Playlist completa de redes neurais do 3Blue1Brown: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...
Para um tutorial de Keras, é bem caro
Meu plano é entender as soluções vencedoras do ano passado e depois escolher uma subtarefa menor: https://scrollprize.org/
Por exemplo, a parte que desenvolve o gradiente do LSTM não serve para ajudar você a implementá-lo no framework de sua preferência, mas para ajudar na compreensão
O objetivo de mostrar soluções em vários frameworks também é conectar como as fórmulas se parecem com como elas podem aparecer em código
Em especial, uma parte interessante da arquitetura Transformer é que o mecanismo de atenção é invariante a permutações. Isso fica ainda mais interessante se as pessoas não usarem embeddings posicionais para anular essa propriedade intrínseca; e, como é possível mascarar arbitrariamente nós específicos de um grafo ou até arestas individuais, há muita flexibilidade para incorporar conhecimento de domínio na arquitetura
Em muitos casos, embeddings posicionais ainda podem ser necessários, mas dá para projetar de forma mais inteligente, saindo da visão excessivamente limitada de tratar a entrada da camada de atenção apenas como uma sequência unidimensional
Pelo que entendi, um engenheiro de ML é quem cria modelos com frameworks como PyTorch; um engenheiro de IA é quem cria aplicações sobre soluções de IA, como engenharia de prompts ou APIs da OpenAI/Claude; e MLOps são as pessoas que ajudam na implantação e serving de modelos. Queria saber se essa divisão está correta
Na prática, esses papéis podem cobrir tudo, desde “faz pesquisa de ponta” até “já abriu um CSV uma vez”
Se você quer gerar impacto, basta ficar muito bom nisso. São habilidades úteis também em áreas como integração de sistemas ou análise de negócios, e as pessoas que pesquisam algoritmos — e hoje em dia até modelos treinados — podem trazer o restante
É bem amargo ver que, até entre pessoas técnicas, redes sociais estão sendo adotadas como meio de verificar identidade e confiança. Já era ruim o bastante quando alguns governos começaram a exigir nomes de usuário em redes sociais em análises de visto/imigração; agora até para mandar um simples e-mail para um técnico é preciso prova social?
O atacante do XZ provavelmente poderia ter feito login em inúmeros serviços via GitHub. Também acho provável que o autor original baixe coisas do PyPI, que foi potencialmente comprometido por um vazamento de token deixado sem correção por mais de um ano
Além disso, como ele está na área de machine learning, é bem provável que baixe do GitHub, conda e PyPI enormes frameworks Python difíceis de auditar, e pessoas dessa área também baixam modelos não confiáveis para experimentar
E o problema seria um e-mail em texto puro que pode ser lido em um cliente de e-mail de linha de comando com MIME e outras extensões desativadas?