Entendendo o transformer

Introdução a LLMs em Python

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

O que é um transformer?

  • Arquiteturas de deep learning
  • Processam, entendem e geram texto
  • Usadas na maioria dos LLMs
  • Tratam sequências longas em paralelo

Ilustração de três arquiteturas transformer: apenas codificador, apenas decodificador e codificador-decodificador

Introdução a LLMs em Python

Arquiteturas de transformer

Ilustração de três arquiteturas transformer: apenas codificador, apenas decodificador e codificador-decodificador

  • Veja os detalhes da arquitetura no model card da Hugging Face
Introdução a LLMs em Python

Apenas codificador

Ilustração: apenas codificador

  • Entende o texto de entrada
  • Sem saída sequencial
  • Tarefas comuns:
    • Classificação de texto
    • Análise de sentimento
    • Perguntas e respostas extrativas (extrair ou rotular)
  • Modelos BERT
  • Ex.: "distilbert-base-uncased-distilled-squad"
Introdução a LLMs em Python

Apenas codificador

Ilustração: apenas codificador

llm = pipeline(model="bert-base-uncased")
print(llm.model)
BertForMaskedLM(
  (bert): ...
    )
    (encoder): BertEncoder(
      ...
print(llm.model.config)
BertConfig {
...
  "architectures": [
    "BertForMaskedLM"
...
Introdução a LLMs em Python

Apenas codificador

Ilustração: apenas codificador

print(llm.model.config.is_decoder)
False
  • Alternativa: llm.model.config.is_encoder_decoder
Introdução a LLMs em Python

Apenas decodificador

Ilustração: apenas decodificador

  • Foco vai para a saída
  • Tarefas comuns:
    • Geração de texto
    • Perguntas e respostas generativas (frase(s) ou parágrafo(s))
  • Modelos GPT
  • Ex.: "gpt-3.5-turbo"
Introdução a LLMs em Python

Apenas decodificador

Ilustração: apenas decodificador

llm = pipeline(model="gpt2")
print(llm.model.config)
GPT2Config {
...
  "architectures": [
    "GPT2LMHeadModel"
  ],
...
  "task_specific_params": {
    "text-generation": {
...
print(llm.model.config.is_decoder)
False
Introdução a LLMs em Python

Codificador-decodificador

Ilustração: codificador-decodificador

  • Entende e processa entrada e saída
  • Tarefas comuns:
    • Tradução
    • Sumarização
  • Modelos T5, BART
Introdução a LLMs em Python

Codificador-decodificador

Ilustração: codificador-decodificador

llm = pipeline(model="Helsinki-NLP/opus-mt-es-en")
print(llm.model)
MarianMTModel(
...
    (encoder): MarianEncoder(
...
    (decoder): MarianDecoder(
...
Introdução a LLMs em Python

Codificador-decodificador

Ilustração: codificador-decodificador

print(llm.model.config)
MarianConfig {
...
  "decoder_attention_heads": 8,
...
  "encoder_attention_heads": 8,
...
  "is_encoder_decoder": true,
...
print(llm.model.config.is_encoder_decoder)
True
Introdução a LLMs em Python

Vamos praticar!

Introdução a LLMs em Python

Preparing Video For Download...