Eu: então além da matriz com os embeddings de um token eu ainda preciso passar essa máscara de entrada para uma LLM? isso é comum em todos os modelos de LLM?
deepseek: Sim, além da matriz de embeddings dos tokens, você geralmente precisa passar uma máscara de atenção (attention mask) para o modelo. Isso é comum na maioria dos modelos de LLM modernos, especialmente aqueles baseados em arquiteturas Transformer, como BERT, GPT, T5, entre outros.
-
Ignorar Tokens de Preenchimento:
- A máscara de atenção informa ao modelo quais tokens são reais e quais são tokens de preenchimento (padding).
- Isso é crucial porque os tokens de preenchimento não têm significado semântico e não devem influenciar o processamento do modelo.
-
Eficiência Computacional:
- Sem a máscara de atenção, o mecanismo de atenção do Transformer calcularia relações entre todos os tokens, incluindo os de preenchimento, o que seria um desperdício de recursos.
-
Flexibilidade em Tarefas:
- Em tarefas como tradução, sumarização ou classificação de texto, a máscara de atenção permite que o modelo se concentre apenas nas partes relevantes do texto.
- A máscara de atenção é uma matriz binária (ou tensor) com o mesmo formato que a matriz de embeddings.
- Cada posição na máscara corresponde a um token na entrada:
1
indica que o token é real e deve ser considerado.0
indica que o token é de preenchimento e deve ser ignorado.
Suponha que você tenha o seguinte texto tokenizado:
Tokens: ["Eu", "amo", "aprender", "<pad>", "<pad>"]
IDs: [101, 102, 103, 0, 0]
A máscara de atenção correspondente seria:
Máscara: [1, 1, 1, 0, 0]
Sim, a maioria dos modelos de LLM modernos, especialmente os baseados em Transformers, requerem uma máscara de atenção. Isso inclui:
- BERT: Usa máscaras de atenção para tarefas de classificação e compreensão de texto.
- GPT: Embora o GPT seja autoregressivo e processe tokens sequencialmente, ele ainda pode usar máscaras de atenção para ignorar tokens de preenchimento em entradas de tamanho fixo.
- T5, RoBERTa, XLNet, etc.: Todos usam máscaras de atenção para processar entradas de comprimento variável.
Se você estiver usando uma biblioteca como Hugging Face Transformers, a máscara de atenção é gerada automaticamente quando você usa o tokenizer
. Por exemplo:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
text = "Eu amo aprender"
inputs = tokenizer(text, padding=True, truncation=True, return_tensors="pt")
# inputs contém:
# - input_ids: os IDs dos tokens
# - attention_mask: a máscara de atenção
Nesse caso, inputs["attention_mask"]
será a máscara de atenção que você precisa passar para o modelo junto com os embeddings.
- Sim, a máscara de atenção é necessária na maioria dos modelos de LLM modernos.
- Ela é usada para ignorar tokens de preenchimento e garantir que o modelo processe apenas os tokens relevantes.
- Bibliotecas como Hugging Face Transformers facilitam o uso da máscara de atenção, gerando-a automaticamente durante o tokenização.