Review do livro “Transformer for natural language processing and computer vision – 3rd Edition”

Transformers para NLP e Visão
Livro de Transformers para NLP e Visão Computacional

Fiz mais um review de livro, como já tinha feito recentemente de MLOps, Azure Data Factory e algoritmos, mas desta vez foi “Transformer for natural language processing and computer vision – 3rd Edition“. O livro foi escrito por Denis Rothman e publicado pela Packt Pub. Neste livro você irá aprender sobre transformers para texto e visão computacional.

O livro e seus capítulos

Quero compartilhar minhas impressões iniciais, mas já sei que vou ter que ler mais vezes para realmente entender. Para mim esse assunto é novo, e achei difícil, por mais direto e didático que o Denis foi no livro, ainda sinto que é complexo e terei que estudar muito até ter confiança de sair falando de IA Generativa. O livro é uma leitura ampla, explica a arquitetura de transformers para texto e visão computacional. Em suas quase 700 páginas o livro possui 20 capítulos e está separado em três grandes grupos, sendo: Os Fundamentos dos Transformers; A Ascensão da NLP Supra-humana; Visão computacional generativa: uma nova maneira de ver o mundo.

Ao final de cada capítulo, acima de tudo, é possível ver as referências utilizadas para gerar o texto, além de algumas recomendações de leituras futuras para completar o aprendizado. FAlando em aprendizado, contudo, no final de cada capítulo você irá encontrar questões de Verdadeiro ou Falso sobre o que estudou. No final do livro tem o gabarito com as respostas, e algumas delas até tem uma explicação rápida da resposta correta.

Desde a arquitetura básica até aplicações práticas, este livro abrange:

  • Representações de Linguagem: Entenda como os transformers aprendem representações ricas para palavras e frases.
  • Tradução Automática: Discute como os transformers são usados para tradução de idiomas.
  • Visão Computacional: Descubra como aplicar os mesmos princípios aos dados de imagem.

Bom, vamos aos capítulos…

Capítulo 1

O que são transformer? O autor explica, de forma abrangente, o conceito de transformer e os modelos fundamentais. O texto trás a complexidade de tempo O(1) desses modelos, que, segundo o texto, revolucionou diversas áreas. Além disso, destaca como os transformers se tornaram dominantes e trouxeram avanços significativos em várias áreas de pesquisa. Transformers são importantes para texto e também para visão computacional.

Capítulo 2

Iniciando com a arquitetura do modelo transformer explora o contexto do Processamento de Linguagem Natural (NLP) e compreende como as arquiteturas de Redes Neurais Recorrentes (RNNs), Long Short-Term Memory (LSTM) e Redes Neurais Convolucionais (CNNs) foram abandonadas e abriram caminho para a arquitetura transformer. Nesse capítulo, o autor explora a arquitetura original do transformer, publicada no artigo científico Attention Is All You Need, desenvolvida por pesquisadores do Google Research e Google Brain. Além disso, descreve a teoria dos transformers e explora, na prática, como funcionam as subcamadas de múltiplas atenções em Python.

Capítulo 3

Em Tarefas emergentes vs. tarefas downstream: As profundezas invisíveis dos transformers, o autor estabelece uma conexão entre a arquitetura funcional e matemática dos transformers por meio da introdução do conceito de emergência. Em seguida, o autor aborda como medir o desempenho dos transformers antes de explorar diversas tarefas downstream, como o Standard Sentiment TreeBank (SST-2), a aceitabilidade linguística e os esquemas de Winograd.

Não sei como traduzir Downstream, então mantive com o nome original. Se você tiver uma tradução apropriada, me conte e eu atualizo o post 🙂

Capítulo 4

Já em Avanços em traduções com Google Trax, Google Translate e Gemini, o texto explora a tradução automática em três etapas. Primeiro, define o que é a tradução automática. Em seguida, explica o pré-processamento de um conjunto de dados do Workshop on
Statistical Machine Translation (WMT) de 2014. Por fim, demonstra como implementar códigos para traduções automáticas em Python.

Capítulo 5

Aprofundando no ajuste fino com BERT discute a arquitetura do transformer original. O Bidirectional Encoder Representations from Transformers (BERT) leva os transformers a uma nova e vasta maneira de perceber o mundo do NLP. Em vez de analisar uma sequência passada para prever uma sequência futura, o BERT analisa a toda a sequência! O autor explora as principais inovações da arquitetura do BERT e, em seguida, ajusta um modelo BERT passo a passo em um notebook do Google Colab.

Capítulo 6

No Pré-treinando um modelo RoBERTa do zero, o texto implementa um modelo de transformer RoBERTa a partir do zero usando PyTorch na Hugging Face. Primeiro, é treinado um tokenizador em um conjunto de dados personalizado. Em seguida, é feito um pré-treino de modelo de suporte ao cliente com IA generativa.

Capítulo 7

No capítulo de A revolução da IA Generativa com o ChatGPT, o autor explora as melhorias significativas e a disseminação dos modelos ChatGPT no cotidiano de desenvolvedores e usuários finais. Inicialmente, é apresentada a arquitetura dos modelos GPT da OpenAI. Em seguida, trabalha com a API do GPT-4 e seus hiper-parâmetros para implementar diversos exemplos de NLP em Python. Por fim, aprendemos como obter melhores resultados com Retrieval Augmented Generation (RAG). No capítulo é implementado um exemplo de RAG com o GPT-4.

Capítulo 8

Ajuste fino de modelos OpenAI GPT, é explorada a técnica de ajuste fino para aprimorar os modelos GPT disponíveis por meio da API. Com o ajuste fino é possível obter resultados de maior qualidade do que apenas com prompts. Além disso, permite treinar o modelo com mais exemplos do que caberia em um prompt e economizar tokens devido a prompts mais curtos. Essa abordagem também reduz a latência das respostas nas solicitações. Os modelos da OpenAI já foram treinados em uma grande quantidade de texto, mas o fine tuning permite adaptá-los para tarefas em áreas de negócios específicas.

Capítulo 9

Desvendando a caixa preta com ferramentas interpretáveis, o autor trás detalhes dos modelos de transformer, interpretando e visualizando suas tarefas. Apresenta o BertViz para visualizar as camadas de atenção, o Language Interpretability Tool (LIT) para rodar uma análise de componentes principais (PCA) e o LIME para visualizar os transformers por meio do aprendizado de dicionário. Além disso, os LLMs da OpenAI vão mais a fundo, permitindo visualizar a atividade de um neurônio em um transformer de forma interativa.

Capítulo 10

Em Investigando o papel dos Tokenizadores na formação de Modelos de transformadores, apresenta inicialmente as práticas recomendadas independentes de tokenizadores para avaliar a qualidade de um tokenizador. Descreve as diretrizes básicas para conjuntos de dados e tokenizadores sob a perspectiva da tokenização. O autor explora a abordagem de tokenizadores de palavras e subpalavras, e demonstra como um tokenizador pode moldar o treinamento e o desempenho de um modelo de transformers.

Capítulo 11

O capítulo com titulo Alavancando os incorporamentos de LLM como alternativa ao ajuste fino, explora por que a busca com incorporamento pode ser, às vezes, uma alternativa eficaz ao ajuste fino. São discutidas as vantagens e limitações dessa abordagem. Além disso, são explicados os fundamentos dos incorporamentos de texto. Para solidificar o aprendizado, implementa um código Python que lê um arquivo, o tokeniza e o incorpora com as bibliotecas Gensim e Word2Vec. Para concluir, você terá trabalhado desde o design de prompts até a engenharia avançada de prompts, utilizando incorporamentos para a RAG.

Capítulo 12

Rumo à rotulagem de papéis semânticos sem sintaxe com o ChatGPT e o GPT-4 explora os conceitos de modelos estocásticos sem sintaxe e não repetitivos. Utilizam o ChatGPT Plus com o GPT-4 para executar amostras de Semantic Role Labeling (SRL), com exemplos simples e complexos. Apresenta como um modelo de propósito geral reage às solicitações de SRL.

Capítulo 13

Em Sumarização com T5 e ChatGPT, o autor explica os conceitos e a arquitetura do modelo de transformer T5. Utiliza o T5 para resumir documentos com modelos da Hugging Face. Os exemplos neste capítulo estão relacionados a áreas jurídicas e médicas, buscando explorar a sumarização em domínios específicos do conhecimento. Também trás uma comparação das abordagens de sumarização entre o T5 e o ChatGPT.

Capítulo 14

Explorando os LLMs de ponta com o Vertex AI e o PaLM 2. Apresenta o Google PaLM 2, um modelo com 540 bilhões de parâmetros. O PaLM 2 é um modelo autoregressivo, com ativação densa e decodificador. Explora como o PaLM 2 pode executar diversas tarefas como chat, classificação e geração de texto. O capítulo implementa a API do PaLM 2 dontro da Vertex AI, para várias tarefas de NLP, incluindo mas não se limitando, à perguntas e respostas e sumarização. FInaliza o capítulo, inclusive, com o processo de ajuste fino no Vertex AI.

Capítulo 15

Em Protegendo os gigantes: mitigando riscos em LLMs, exploram os riscos associados aos Large Language Models (LLMs) e estratégias para tentar mitigar os riscos. Estes são alguns riscos e abordagens de mitigação:

  1. Alucinações: LLMs podem gerar respostas falsas ou incorretas, inegavelmente, levando à desinformação;
  2. Memorização: LLMs podem memorizar exemplos específicos de seus dados de treinamento, reproduzindo-os literalmente;
  3. Comportamento emergente arriscado: LLMs podem exibir comportamento inesperado ou prejudicial devido à sua complexidade;
  4. Desinformação: LLMs podem ocasionalmente gerar conteúdo que dissemina desinformação;
  5. Operações de influência: Atacantes maliciosos podem explorar LLMs para manipular a opinião pública ou enganar os usuários;
  6. Conteúdo prejudicial: LLMs podem produzir saídas sobretudo prejudiciais ou ofensivas, e até criminosas;
  7. Ataques adversários (“Jailbreaks”): LLMs podem ser vulneráveis a manipulações intencional, comprometendo a integridade do conteúdo gerado.

A fim de mitigar esses riscos, empregam técnicas avançadas de engenharia de prompts. Isso inclui a implementação de um modelo de moderação, a manutenção de uma base de conhecimento, a análise de palavras-chave, o uso de pilotos de prompts, a moderação pós-processamento e a alavancagem de incorporamentos, entre outras…

Capítulo 16

O texto Além do texto: transformers de visão no amanhecer da IA revolucionária, explora os modelos de transformers que respeitam a estrutura básica do transformer original, mas fazem algumas extensões significativas. Isso gerou poderosos transformers para visão, como o ViT, CLIP, DALL-E e GPT-4V. O autor implementa transformer de visão em Python, utilizando o GPT-4V, e expande as interações de texto-para-imagem do DALL-3. É importante destacar que os transformers vão além de texto e chegam até visão computacional.

Capítulo 17

Em Transcendendo a fronteira entre imagem e texto com a Stable Difusion, o autor explora os modelos de difusão, apresentando o Stable Vision, que, aliás, criou uma onda incrível de imagens realistas que está se espalhando pelo mercado. Explica os princípios, a matemática e implementa um código de Stable Difusion no Keras. O texto analisa cada um dos principais componentes de um modelo de Stable Difusion e examina os códigos do Keras. Para finalizar, também discute um modelo de de texto-para-vídeo com a Hugging Face e um modelo de vídeo-para-texto com o TimeSformer da Meta.

Capítulo 18

Hugging Face AutoTrain: Treinando modelos de visão sem codificação explora como treinar um transformer de visão usando o AutoTrain da Hugging Face. O autor explica o processo de treinamento automatizado e o autor comenta os problemas imprevisíveis que demonstram por que até o aprendizado de máquina automatizado requer expertise humana. Este capítulo também trás uma discussão e mostra como explorar os limites de um modelo de visão computacional, independentemente de quão sofisticado ele seja.

Este desafio de re-treino automatizado está presente, inclusive, no Machine Learning tradicional. Não é algo exclusivo da IA Generativa

Capítulo 19

No caminho para a IA geral funcional com o HuggingGPT e seus pares demonstra como podemos usar modelos encadeados entre plataformas para resolver problemas complexos de classificação de imagens. O autor compara o HuggingGPT e o Google Cloud Vision no trabalho de identificação de imagens fáceis, difíceis e muito difíceis. Além disso, o capítulo comenta as abordagens clássicas e explora como encadear modelos.

Capítulo 20

Além dos prompts projetados por humanos com ideação generativa explora a ideação generativa, uma abordagem que automatiza a produção de ideias para conteúdo de texto e imagem. A fase de desenvolvimento destas ideações requer especialistas qualificados em IA. Já para o usuário final, a abordagem é uma experiência simples de point and click. O autor discute e nos faz pensar em ideias generativas éticas para empresas sem recursos de marketing, mas não se limita apenas à essa área de atuação.

 

Minha opinião

Na minha opinião é um material rico para conhecer e aplicar a arquitetura de transformers para texto e visão computacional, codificando com Python. O livro oferece uma visão ampla, porém prática e aplicada, de como a arquitetura funciona e vários detalhes sobre os modelo de linguagem e te visão. É uma leitura densa, e pra mim, vou ter que estudar mais porque achei o assunto complexo. Não é do meu cotidiano trabalhar com GenAI, e por isso quero estudar mais antes de sair falando besteira por ai. As referências e leituras adicionais ajudarão quando eu tiver tempo para aprofundar.

Em linhas gerais recomendo a leitura, principalmente para quem se interessa pelo assunto de Inteligência Artificial. A versão digital está na Amazon por um pouco menos de 250 reais enquanto escrevo esse texto.

 

Transformers para texto e visão computacional

A atualização do Github contendo os códigos é frequente, inclusive no momento que posto esse texto, a ultima atualização de código foi ontem 29/04/2024.

 

Bons estudos!

Sobre Diego Nogare 350 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.