Transformers: A ideia que mudou a forma como víamos IA
- #Python
GPT?
GPT é a sigla para Generative Pretrained Transformer, um dos mais influentes e elegantes avanços em Inteligência Artificial. O termo 'Transformer' também é mencionado em um paper de 2017, conhecido como 'Attention is all you need', marcando um ponto crucial na história da IA, destacando a importância da atenção como mecanismo fundamental para a compreensão e geração de linguagem.
Em 2017, o paper abordou uma nova maneira de traduzir idiomas, simplificando a complexidade com uma premissa fundamental: "esqueça o que não é relevante". Essa ideia simples foi encapsulada no conceito de "Transformers", que se tornaria revolucionário para toda a IA quando amplamente adotado na Tecnologia GPT. Mas como funciona essa abordagem? E como o ChatGPT se encaixa no mundo da programação?
Os Transformers são modelos de aprendizado de máquina que usam mecanismos de atenção para processar sequências de dados. Eles são capazes de entender o contexto e as relações entre as palavras em uma frase, permitindo uma tradução mais precisa e uma geração de texto mais coerente. No mundo da programação, o ChatGPT utiliza uma abordagem semelhante. Ele analisa o contexto da conversa e as solicitações do usuário para gerar respostas relevantes e coerentes. Ao aprender com grandes conjuntos de dados, como textos da web, livros e artigos, o ChatGPT aprimora sua capacidade de compreensão e produção de linguagem, tornando-se uma ferramenta valiosa para uma variedade de aplicativos de software e desenvolvimento de IA.
Andrej Karpathy
Um ano atrás, Andrej Karpathy lançou um vídeo em seu canal intitulado "Let's build GPT: from scratch, in code, spelled out", no qual ele demonstra como implementar o Transformer por trás da tecnologia GPT a partir do zero. Andrej, um ex-membro da equipe da OpenAI (um dos pioneiros por trás da tecnologia GPT) e ex-Diretor de IA da Tesla, teve a oportunidade de compartilhar sua expertise ao construir o modelo desde o início. Eu acompanhei atentamente cada aula, fazendo apenas uma pequena alteração no código - ajustando os dados de entrada. Enquanto Andrej utilizava textos de Shakespeare, eu optei por uma versão em português de "O Pequeno Príncipe"
O que aprendi?
Durante a aula, mergulhei no fascinante mundo da tecnologia GPT e descobri que sua essência está enraizada no conceito de transformers, originado no artigo "Attention is All You Need". Para construir algo tão impressionante quanto gerar novos textos de referência, aprendi que existem alguns passos-chave a seguir:
- Escolha dos Dados: Selecionar cuidadosamente os dados é crucial. Eles servirão como a base sobre a qual o GPT aprenderá e gerará novo conteúdo.
- Tokenização dos Dados: Esse processo envolve dividir os dados em partes menores, como palavras ou subpalavras, para que a rede neural possa entendê-los e processá-los de forma eficiente.
- Organização dos Dados: Os dados precisam ser organizados de forma que a rede neural possa prever os próximos elementos com base nos padrões que identifica. Por exemplo, se a palavra "Olá, tudo bem?" foi codificada como 11 22 33 44 55, o código precisa ser capaz de prever o que virá após combinações crescentes desses elementos, como 11 22, 11 22 33, e assim por diante.
Esse processo de aprendizado progressivo permite que o GPT absorva informações dos dados de treinamento e, posteriormente, gere novos textos com base nessa base sólida.
Referências e leituras posteriores
- O código rescrito por mim no Kaggle (usando Pequeno Príncipe)
- Vídeo original do Andrej implementando a arquitetura
- Attention is All you Need (paper)
- Artigo meu sobre LLM (Dio)
- Artigo meu sobre Tokenização (Dio)
Em relação ao código original, houve apenas uma alteração mínima no conjunto de dados utilizado, com o restante sendo copiado e estudado como um meio de compreender os conceitos (dentro das minhas limitações).