Visão Auto-Supervisionada¶
O capítulo sobre o Vision Transformer (ViT) mostrou que um encoder Transformer, alimentado com embeddings de patches achatados, pode igualar ou superar redes convolucionais em larga escala. Também mostrou o custo dessa aposta: o ViT não carrega nenhum prior embutido de localidade ou equivariância à translação, de modo que depende de conjuntos de dados rotulados enormes — JFT-300M no artigo original — para extrair cada gota de sua capacidade. Este capítulo trata da pergunta natural que se segue. Se um ViT pode ser treinado sem rótulos, os rótulos podem ser descartados?
A resposta, em 2024–2026, é essencialmente sim. Os backbones visuais publicamente disponíveis mais fortes utilizados dentro de modelos de linguagem visual (VLMs), dentro de sistemas de segmentação de vocabulário aberto, dentro de pipelines de recuperação de imagens e dentro de stacks de predição densa não são classificadores supervisionados; são features auto-supervisionadas. Quatro desses backbones — MAE, DINOv2, SigLIP e SAM-2 — ancoram este capítulo. Cada um representa uma rota diferente para features visuais sem rótulos ou fracamente rotuladas, e cada um é um exemplo funcional de como a aposta do ViT compensa quando combinada com uma tarefa de pretexto auto-supervisionada.
1. Por que auto-supervisão em visão¶
O argumento para visão auto-supervisionada foi originalmente um argumento por analogia com NLP. BERT e GPT mostraram que masking ou predição autorregressiva de tokens de linguagem natural — tarefas de pretexto sem rótulos humanos no loop — produz representações que transferem para praticamente toda tarefa downstream. Grades convolucionais resistiram ao mesmo truque por anos: elas não aceitavam naturalmente mask tokens no estilo BERT, sinais de imagem são espacialmente redundantes de uma forma que texto não é, e decoders de imagem reconstroem pixels em vez de tokens semanticamente ricos [src_038]. A introdução do ViT removeu o obstáculo arquitetural: uma sequência de patches é uma sequência de tokens, e mask tokens podem ser inseridos exatamente como em BERT [src_038]. O obstáculo de densidade de informação — o fato de que um patch faltante geralmente pode ser preenchido por interpolação a partir de vizinhos — acabou sendo enfrentável simplesmente fazendo masking de forma muito mais agressiva do que BERT faz. O obstáculo de nível semântico — pixels são um alvo de reconstrução de baixo nível — acabou sendo enfrentável mudando a divisão encoder/decoder em vez da loss.
🔗 Conexão
A analogia com BERT em que esta seção se apoia é desenvolvida em Capítulo 7 (família encoder-decoder). O BERT pré-treina um encoder Transformer mascarando ~15% dos tokens de entrada e reconstruindo-os via masked language modelling (MLM); o MAE adapta a mesma ideia a imagens, mas com razão de masking de 75% porque patches de imagem são espacialmente redundantes de uma forma que tokens de texto não são.
O texto de Torralba/Isola/Freeman enquadra o aprendizado de representação auto-supervisionado como uma das ideias organizadoras centrais da visão computacional moderna, situando-se ao lado de detecção, segmentação e geração como uma tecnologia produtora de backbones em vez de uma tarefa em si mesma [src_008]. O survey de Courant et al., tratando "treinamento sem rótulos" como um dos principais eixos de extensão dos transformers visuais, adota a mesma visão pelo lado do transformer [src_009]. Um leitor que aprende o pretraining supervisionado em ImageNet como a receita padrão de visão está, em 2026, aprendendo uma receita que foi deslocada. As features que melhor fazem fine-tuning, as features que melhor recuperam quando congeladas e as features que se conectam a modelos de linguagem todas vêm de pretraining auto-supervisionado.
🔗 Conexão
O Capítulo 5 (Vision Transformers) desenvolve o ViT como um encoder Transformer de sequência de patches; este capítulo toma esse encoder como ponto de partida e substitui a tarefa de pretexto de classificação rotulada por alternativas auto-supervisionadas. Toda referência abaixo a "sequência de patches" ou "tokenização do ViT" assume o enquadramento de §2 / §4 do Capítulo 5.
2. A receita do MAE¶
Masked Autoencoders (MAE) são o análogo mais limpo do BERT em visão [src_038]. A receita tem três partes móveis. Primeiro, a imagem de entrada é dividida em patches não sobrepostos seguindo a tokenização padrão do ViT. Segundo, um subconjunto aleatório dos patches é mascarado — e crucialmente, a razão de masking é alta. O default no artigo do MAE é 75%, com forte acurácia de fine-tuning na faixa de 40% a 80% [src_038]. Isso contrasta nitidamente com a razão típica de masking de 15% do BERT para texto. Terceiro, o encoder consome apenas os 25% visíveis dos patches; um decoder leve e separado recebe os tokens visíveis codificados junto com mask tokens aprendidos compartilhados nas posições faltantes, e reconstrói valores de pixel para os patches mascarados. A loss de reconstrução é o erro quadrático médio em espaço de pixel, computado apenas sobre os patches mascarados [src_038].
O design encoder-decoder assimétrico é a vitória de engenharia. O encoder é a parte que será implantada downstream, então é pesado: um ViT-Large ou ViT-Huge completo. O decoder existe apenas em tempo de pretraining e é intencionalmente pequeno — o default são 8 blocos Transformer de largura 512, contribuindo aproximadamente 9% dos FLOPs do encoder por token [src_038]. Como mask tokens entram apenas no decoder, o encoder roda sobre um quarto do comprimento da sequência. O resultado é um speedup de wall-clock de \(3\times\) ou mais em relação a um design simétrico que passa mask tokens pelo encoder, e uma redução correspondente em memória que permite ao MAE escalar para ViT-Huge usando apenas ImageNet-1k [src_038].
O número de transferência principal é que um ViT-Huge pré-treinado com MAE em ImageNet-1k e depois com fine-tuning em resolução 448 atinge 87,8% de top-1 na validação do ImageNet-1k, o resultado mais forte entre métodos que usam apenas dados do ImageNet-1k naquela época [src_038]. A receita supervisionada anterior precisava do JFT-300M para extrair a mesma acurácia. Pretraining sem rótulos, na mesma coleção de imagens, superou o treinamento com rótulos.
Um esboço mínimo de pseudocódigo do passo de masking torna a implementação concreta:
import torch
def mae_mask(tokens: torch.Tensor, mask_ratio: float = 0.75):
"""Random patch masking for MAE. tokens has shape (B, N, D)."""
B, N, D = tokens.shape
n_keep = int(N * (1.0 - mask_ratio))
noise = torch.rand(B, N, device=tokens.device)
ids_shuffle = torch.argsort(noise, dim=1)
ids_keep = ids_shuffle[:, :n_keep]
ids_restore = torch.argsort(ids_shuffle, dim=1)
visible = torch.gather(
tokens, dim=1,
index=ids_keep.unsqueeze(-1).expand(-1, -1, D),
)
return visible, ids_restore
Embaralhamento aleatório por imagem, tomar os primeiros n_keep índices como visíveis, lembrar a permutação inversa para que o decoder possa colocar mask tokens de volta nas posições corretas. Nenhum operador esparso especializado é necessário, e o encoder simplesmente roda sobre visible [src_038].
💡 Resultado-chave
Pretraining MAE em ImageNet-1k apenas, sem rótulos, permite que um ViT-Huge em resolução 448 supere a receita supervisionada mais forte de sua época — que precisava do JFT-300M para alcançar a mesma acurácia.
3. Por que o MAE funciona¶
🎯 Intuição
O mecanismo que §3 defenderá em três observações é forma sobre textura: em razões altas de masking, a única maneira de preencher os buracos é internalizar a forma do objeto, o gestalt e a estrutura global, porque pistas de textura local desapareceram. As três observações abaixo decompõem essa tese única em uma sobre razão de masking, uma sobre colocação do mask token e uma sobre alvo de reconstrução.
A loss de pixel-MSE parece um objetivo de baixo nível; se essa fosse a história toda, o encoder aprenderia estatísticas de textura e pouco mais. O fato de que um encoder MAE transfere fortemente para fine-tuning e para tarefas de predição densa significa que algo mais está acontecendo, e os ablations do MAE tornam o mecanismo legível.
🔗 Conexão
Linear probing congela o encoder e treina um único classificador linear no topo; fine-tuning descongela o encoder. O Capítulo 5 (Vision Transformers) discute ambos, e o contraste de §8 neste capítulo (MAE mais forte após fine-tuning, DINOv2 mais forte congelado) depende dessa distinção.
A primeira observação é que a razão de masking é o hiperparâmetro chave. Em razões baixas — mais próximas dos 15% do BERT — um patch faltante pode ser reconstruído por extrapolação a partir de seus vizinhos [src_038]. Em uma razão de 75% apenas um punhado de patches sobrevive, e a tarefa de reconstrução não pode mais ser reduzida a interpolação local. O artigo do MAE mostra a acurácia do linear probe em ImageNet-1k subindo de 54,6% com 10% de masking para 73,5% com 75% de masking, e caindo novamente em razões extremas de 90% [src_038].
🤔 Pause e pense
Com 90% de masking, apenas ~10% dos patches permanecem visíveis. Por que a acurácia do linear-probe cai nesse extremo em vez de continuar subindo? O que muda na tarefa de reconstrução quando poucos patches demais sobrevivem? (Não olhe adiante — escreva a resposta ou diga em voz alta.)
A tarefa de razão alta força o encoder a representar forma, gist e o gestalt de objetos em vez de textura, porque nada mais é suficiente para preencher os buracos.
A segunda observação é que o mask token não deve entrar no encoder. Uma variante do MAE que alimenta mask tokens através do encoder perde 14% em linear probing, porque a distribuição de entrada do encoder em tempo de pretraining então difere acentuadamente de sua distribuição de entrada em tempo de implantação, onde todo patch é real [src_038]. Remover o mask token do encoder elimina esse gap de distribuição entre treino e teste e é, simultaneamente, a fonte do speedup de wall-clock. O design assimétrico e a alta razão de masking se reforçam mutuamente: a razão de masking cria uma tarefa de reconstrução difícil, e a assimetria mantém o encoder barato o suficiente para que a tarefa difícil possa ser treinada por muitas épocas.
Uma terceira observação, útil para cruzar referências com a taxonomia encoder/decoder tratada em outras partes deste livro, é que a escolha do alvo de reconstrução não é particularmente decisiva. Pixels normalizados — valores de pixel deslocados e escalados pela média e desvio padrão por patch — superam pixels não normalizados em aproximadamente 0,5%, e tokens dVAE (o alvo discreto no estilo BEiT) igualam pixels normalizados estatisticamente [src_038]. A receita mais simples vence por um fio porque tokens dVAE requerem uma etapa adicional de pretraining em um corpus de imagens separado. A lição estrutural é que a divisão encoder-decoder, e não a escolha do alvo de reconstrução, carrega a carga.
🔄 Recapitulação
- Complete: A razão de masking padrão do MAE é _____, e no extremo de 90% a acurácia do linear-probe _____ em vez de continuar subindo.
- Explique: Por que mask tokens não devem entrar no encoder? Nomeie em uma frase cada um: o argumento de distribuição entre treino e teste, e a consequência de speedup de wall-clock.
- Preveja: Dados pixels normalizados, pixels não normalizados e tokens dVAE como alvos candidatos de reconstrução — qual vence, por quanto, e por que a margem é pequena o suficiente para que o §3 chame a escolha de "não particularmente decisiva"?
4. DINOv2¶
O MAE prova que a reconstrução em nível de pixel funciona como tarefa de pretexto em escala. O DINOv2 demonstra o ponto paralelo para a família discriminativa: um objetivo de auto-destilação aluno-professor, sem texto e sem rótulos humanos, pode produzir features visuais de uso geral que igualam ou superam features treinadas com supervisão de texto [src_039].
O loop de treinamento do DINOv2 tem três componentes centrais [src_039].
🎯 Intuição
Antes que os nomes técnicos cheguem, aqui está o que cada peça central está de fato fazendo.
| Componente | O que faz | Imagem em linguagem simples |
|---|---|---|
| DINO image-level loss | Auto-destilação em nível de imagem inteira | Aluno casa a predição do professor sobre protótipos aprendidos para a mesma imagem |
| iBOT patch-level loss | Auto-destilação em nível de patch mascarado | Features de patches mascarados do aluno devem casar com features de patches não mascarados do professor |
| Professor EMA | Snapshot lento do aluno | O professor é o passado do próprio aluno — nenhuma fonte externa de rótulo |
Os três estabilizadores adicionais (Sinkhorn-Knopp, KoLeo, adaptação de alta resolução) evitam que esse loop colapse.
Uma loss de nível de imagem derivada do DINO (o predecessor de auto-destilação de 2021 do DINOv2, com a mesma estrutura student-teacher de cross-entropy sobre protótipos, mas em um corpus menor) computa a entropia cruzada entre predições do aluno e do professor sobre um conjunto aprendido de protótipos, com cada rede vendo um crop diferente (multi-crop augmentation) da mesma imagem. Uma loss de nível de patch derivada do iBOT (o equivalente de 2022 do DINO em masked-image-modelling; mesma estrutura de auto-destilação aplicada a patch tokens mascarados em vez de views de imagem inteira) faz a mesma coisa no nível dos patch tokens, com patches mascarados no aluno comparados com patches não mascarados no professor. O professor é construído a partir de uma média móvel exponencial dos parâmetros do aluno; isso é o que torna o procedimento auto-destilação em vez de destilação supervisionada. Três estabilizadores adicionais — centralização Sinkhorn-Knopp das saídas do professor, um regularizador KoLeo que distribui features uniformemente pelo batch e uma curta fase de adaptação de alta resolução — permitem ao procedimento escalar para um ViT de bilhão de parâmetros em um conjunto de dados de cem milhões de imagens [src_039].
O pipeline de dados é, honestamente, grande parte da história. O DINOv2 é treinado no LVD-142M, um corpus de 142 milhões de imagens curadas montado a partir de um pool não curado de 1,2 bilhão de imagens por um procedimento automático de deduplicação e recuperação [src_039]. A etapa de recuperação faz embedding de imagens curadas de referência com um ViT-H/16 auto-supervisionado e busca os vizinhos mais próximos no pool não curado. Não há metadados, nenhum texto de legenda e nenhum rótulo humano dentro do loop. Mesmo assim, a qualidade das features em dados não curados é marcadamente pior do que em dados curados: na ablation do artigo, treinar com 142 milhões de imagens não curadas versus o LVD-142M curado mostra os dados não curados ficando atrás na maioria dos benchmarks, às vezes por vários pontos [src_039]. A lição é que a curadoria de dados não é grátis; ela é parte da receita, e o investimento de engenharia é real.
A afirmação empírica que ancora o capítulo é que features congeladas do DINOv2 rivalizam ou superam o OpenCLIP (a receita do CLIP — softmax sobre a matriz de similaridade \(|B| \times |B|\), all-gather entre dispositivos — é examinada em §5) em uma ampla gama de benchmarks — classificação de imagens, recuperação de instâncias, segmentação semântica, profundidade monocular — sem nunca ver uma legenda [src_039]. Um ViT-g/14 treinado com DINOv2 no LVD-142M e congelado para avaliação supera o OpenCLIP ViT-G/14 no linear probing do ImageNet-1k em aproximadamente 0,3%, com ganhos maiores em conjuntos de teste robustos como o ImageNet-V2 [src_039]. A interpretação é que a supervisão de texto é uma fonte de sinal, mas não é estritamente necessária; um objetivo auto-supervisionado suficientemente rico em um corpus de imagens suficientemente diverso pode produzir features comparáveis. O treinamento no estilo CLIP permanece atraente para classificação zero-shot através de texto, mas o encoder visual em si não precisa de texto para alcançar a fronteira dos foundation models.
💡 Resultado-chave
Auto-destilação em um corpus curado de 142 milhões de imagens (LVD-142M) sem rótulos de texto produz features visuais congeladas que igualam ou superam as features do OpenCLIP supervisionadas por legenda em benchmarks de recuperação, predição densa e classificação.
5. SigLIP¶
O SigLIP mantém a supervisão de texto mas muda a loss [src_040]. O treinamento contrastivo imagem-texto no estilo CLIP aplica um softmax duas vezes por batch — imagem-para-texto e texto-para-imagem — sobre a matriz completa de similaridade par a par \(|B| \times |B|\). Para computar esse softmax entre dispositivos paralelos de dados, todo dispositivo deve fazer all-gather dos embeddings de imagem e texto de todo outro dispositivo (all-gather é uma collective de distributed-training: todo dispositivo envia seus embeddings locais para todo outro dispositivo, de modo que todos terminam com o batch completo), e a matriz \(|B| \times |B|\) deve ser materializada na memória de pelo menos um deles. O truque de estabilidade numérica de subtrair o logit máximo antes de exponenciar requer mais uma passada sobre o batch completo [src_040]. A receita é correta, mas também é cara e acopla a definição da loss ao tamanho do batch: o artigo contra o qual se está implicitamente comparando tem um batch de \(|B|\), e mudar o batch muda a tarefa.
🎯 Intuição
Imagine a matriz de similaridade \(|B| \times |B|\) entre toda imagem e todo texto no batch. O CLIP normaliza ao longo de cada linha e de cada coluna com dois softmaxes, tratando o par correspondente como um entre \(|B|\) candidatos por linha (e por coluna). O SigLIP simplesmente pergunta a cada célula sim ou não: este par imagem-texto é um match? A diagonal correspondente é positiva, toda célula fora da diagonal é negativa, e a loss total é uma soma de classificações binárias independentes — uma por célula da matriz.
O SigLIP substitui o softmax global por um sigmoid por par. Cada par imagem-texto torna-se uma classificação binária independente — positivo para o par correspondente, negativo caso contrário — e a loss para um único par \((i, j)\) assume a forma
onde \(\mathbf{x}_i = f(I_i) / \lVert f(I_i) \rVert_2\) é o embedding de imagem normalizado em L2, \(\mathbf{y}_j = g(T_j) / \lVert g(T_j) \rVert_2\) é o embedding de texto normalizado em L2, \(t = \exp(t_0)\) é uma temperatura aprendível, \(b\) é um escalar de viés aprendível, e \(z_{ij} = +1\) quando \(i = j\) e \(z_{ij} = -1\) caso contrário [src_040]. A loss total do batch é \(-\frac{1}{|B|}\sum_{i,j} L_{ij}\) somada sobre todos os pares no batch.
🤔 Pause e pense
Faça \(z_{ij} = +1\) na loss acima: o que \(\log \sigma\) recompensa (similaridade alta ou baixa)? Agora faça \(z_{ij} = -1\): o que é recompensado (similaridade alta ou baixa)? Por que essa construção de dois-casos-em-uma-equação faz com que cada célula da matriz de similaridade seja um classificador binário independente? (Não olhe adiante.)
A consequência do desacoplamento é o ponto que sustenta a carga. Como a loss é uma soma de termos independentes por par, nenhum all-gather global é necessário e nenhuma matriz \(|B| \times |B|\) é jamais materializada; cada dispositivo computa sua parte, troca embeddings com um vizinho e acumula [src_040]. O custo de memória por dispositivo vai de \(|B|^2\) para \(b^2\) onde \(b = |B|/D\) é o batch por dispositivo e \(D\) é a contagem de dispositivos. O SigLIP escala para um batch global de um milhão em relativamente poucos aceleradores, e em tamanhos de batch pequenos — o artigo destaca abaixo de 16k como o regime onde o gap é mais visível — supera o softmax por uma margem substancial [src_040]. Ambas as losses saturam em torno de 32k. O recado não é que batches maiores são inúteis, mas que o regime de "batch enorme é obrigatório" do CLIP era, em parte, um artefato da receita softmax.
Implementação distribuída¶
Um esboço de pseudocódigo da loss por batch, seguindo o algoritmo 1 do artigo, cabe em algumas linhas:
import torch
import torch.nn.functional as F
def siglip_loss(img_emb: torch.Tensor, txt_emb: torch.Tensor,
t_prime: torch.Tensor, b: torch.Tensor) -> torch.Tensor:
"""SigLIP sigmoid loss. img_emb, txt_emb have shape (n, dim).
t_prime and b are learnable scalars."""
n = img_emb.shape[0]
t = t_prime.exp()
z_img = F.normalize(img_emb, dim=-1)
z_txt = F.normalize(txt_emb, dim=-1)
logits = z_img @ z_txt.T * t + b
labels = 2.0 * torch.eye(n, device=logits.device) - 1.0
return -F.logsigmoid(labels * logits).sum() / n
A matriz de sinais labels é \(+1\) na diagonal e \(-1\) fora dela, espelhando exatamente o escalar \(z_{ij}\) na equação acima [src_040]. Note que esse trecho retorna a contribuição por dispositivo; na implementação distribuída completa os embeddings são permutados entre dispositivos e as losses por dispositivo são somadas, mas nenhum all-gather é necessário.
💡 Resultado-chave
Substituir o softmax do CLIP por um sigmoid por par desacopla a loss da dimensão de batch: a mesma receita escala para um batch global de um milhão em relativamente poucos aceleradores e supera o softmax abaixo de um batch de 16k.
🔄 Recapitulação
- Explique: Por que o DINOv2 é chamado de "auto-destilação em vez de destilação supervisionada"? Nomeie em uma frase o mecanismo do EMA-como-self.
- Compare: DINOv2 e SigLIP são ambas rotas que contornam o gargalo da classificação supervisionada. O que cada uma remove e o que cada uma mantém? Qual é livre de texto, e qual mantém texto mas baratea a loss?
- Preveja: Dado um ViT-g/14 de 1B parâmetros treinado com DINOv2 no LVD-142M e congelado para avaliação, preveja se ele supera o OpenCLIP ViT-G/14 no linear probing do ImageNet-1k — e por aproximadamente quanto, e em que tipo de conjunto de teste a margem é maior.
6. SAM-2¶
O SAM-2 está uma camada acima dos três anteriores. É um foundation model de segmentação, não um extrator de features, mas se apoia na mesma maquinaria: um image encoder no estilo ViT pré-treinado com MAE, mais cabeças específicas de tarefa e um módulo de memória que transforma o sistema de um segmentador de imagens em um segmentador de vídeos [src_041]. Examinar sua arquitetura é instrutivo porque mostra o que acontece quando features auto-supervisionadas são implantadas downstream em vez de avaliadas em linear probes.
A tarefa que o SAM-2 resolve é Promptable Visual Segmentation (Segmentação Visual acionável por prompt): dado um vídeo e um prompt — um clique de ponto, uma bounding box, uma máscara ou uma combinação — em qualquer frame, produzir uma máscara espaço-temporal (uma "masklet") que segmenta o objeto promptado ao longo de todo o vídeo [src_041]. A arquitetura tem quatro componentes [src_041]. Primeiro, um image encoder roda uma vez por frame e emite features espaciais não condicionadas. O SAM-2 usa um backbone hierárquico Hiera (um ViT hierárquico de 2023 — feature pyramid de múltiplos estágios, sem shifted windows, treinável apenas com MAE; irmão do Swin em espírito, mas mais simples), que ele mesmo é pré-treinado com MAE, conectando a receita da seção 2 diretamente em um foundation model downstream. Segundo, um módulo de memory attention condiciona as features do frame atual em memórias de frames passados, empilhando blocos transformer que executam self-attention seguida de cross-attention para um banco de memória. Terceiro, um prompt encoder transforma cliques, boxes ou máscaras em prompt tokens. Quarto, um mask decoder leve prediz a máscara de segmentação por frame.
O banco de memória é o truque de extensão temporal. É uma fila FIFO de até \(N\) features espaciais de frames recentes não promptados, mais uma fila FIFO separada de até \(M\) memórias de frames promptados cujas posições temporais não são codificadas — porque em tempo de inferência os frames promptados podem vir de uma faixa temporal muito diferente da do treinamento [src_041]. Junto a essas memórias espaciais, o banco armazena uma lista de object pointers — vetores leves derivados dos tokens de saída do mask decoder que carregam informação semântica de alto nível sobre o objeto segmentado. A memory attention faz cross-attention tanto para as features de memória espacial quanto para os object pointers.
⚠️ Armadilha
Cada componente do banco de memória carrega um tipo distinto de informação. As duas filas FIFO contêm contexto espacial (os \(N\) frames não promptados carregam aparência recente; os \(M\) frames promptados carregam aparência alinhada ao prompt vinda de tempos arbitrários). Os object pointers carregam identidade semântica — o o quê do objeto segmentado. A recuperação por clique único em caso de oclusão funciona porque o object pointer sobrevive mesmo quando as features espaciais não casam mais com o frame visível; as filas espaciais sozinhas perderiam o objeto ao longo de desaparecimentos longos.
A combinação é o que permite ao SAM-2 propagar masklets ao longo de vídeos longos e se recuperar de oclusão: quando um objeto desaparece e reaparece, um único clique corretivo em um frame posterior é suficiente para colocar o modelo de volta nos trilhos, porque o banco de memória ainda carrega a identidade do objeto [src_041].
Os dados de treinamento são o conjunto SA-V: aproximadamente 51.000 vídeos com 643.000 masklets, coletados através de um data engine com modelo no loop que melhorou a eficiência de anotação de 38 segundos por frame na fase apenas-SAM para cerca de 5 segundos por frame na fase totalmente equipada do SAM-2 [src_041]. O volume — cerca de 53 vezes mais máscaras do que o maior conjunto de dados anterior de segmentação de vídeo — é o que torna a arquitetura de memória em streaming treinável de fato.
Para os propósitos deste capítulo, o SAM-2 ilustra duas coisas. Primeiro, o encoder Hiera pré-treinado com MAE não é uma curiosidade acadêmica; é o backbone visual que sustenta a carga de um sistema de segmentação implantado [src_041, src_038]. Segundo, o desacoplamento entre features por frame não condicionadas e um módulo separado de memória temporal é um padrão arquitetural limpo: o image encoder, treinado uma vez com MAE, pode ser reutilizado em muitas tarefas; a memory attention é o acréscimo específico da tarefa que o transforma em um segmentador de vídeo.
7. Para onde isso aponta¶
Modelos modernos de linguagem visual — Llama 3.2 Vision e Qwen2-VL são os pontos de referência óbvios de 2024–2025 — anexam um encoder visual exatamente dos tipos discutidos neste capítulo a um modelo de linguagem decoder-only. A torre visual é tipicamente um ViT no estilo SigLIP ou DINOv2, e a camada de projeção que mapeia tokens visuais para o residual stream do LLM é um adaptador treinável fino em vez de um modelo separado [src_009]. Este capítulo não trata VLMs em profundidade; o tratamento completo é o ponto de partida natural para um capítulo futuro sobre modelos multimodais. O ponteiro vale ser dado aqui porque explica por que as quatro receitas de pretraining cobertas acima não são curiosidades acadêmicas. São os backbones visuais de todo sistema multimodal moderno, e a escolha de qual usar na frente de um VLM é uma decisão de engenharia ativa em vez de uma questão resolvida.
🔗 Conexão
VLMs (vision-language models) — incluindo Llama 3.2 Vision, Qwen2-VL e os lançamentos open-weights de 2024-2026 — estão fora do escopo deste livro. Quando o capítulo de VLM for escrito, esta seção será reduzida a um único Connection callout apontando para ele; por ora §7 é um placeholder marcando o slot estrutural.
8. Resumo de fechamento¶
Quatro receitas, quatro maneiras de contornar o gargalo da classificação supervisionada e quatro usos downstream diferentes. A tabela abaixo as organiza por sinal de treinamento, pelo tipo de exigência de rótulo que impõem e por aquilo para o que são mais frequentemente implantadas em 2024–2026.
| Método | Sinal de treinamento | Exigência de rótulo | Uso downstream dominante |
|---|---|---|---|
| MAE [src_038] | Reconstrução de pixel (MSE em patches mascarados) | Nenhuma | Baseline de fine-tuning; pretraining para encoders hierárquicos como o Hiera |
| DINOv2 [src_039] | Auto-destilação entre views aluno/professor (DINO + iBOT, multi-crop) | Nenhuma (conjunto de imagens curadas; sem legendas) | Recuperação com features congeladas, profundidade, segmentação, classificação fine-grained |
| SigLIP [src_040] | Loss contrastiva sigmoid por par em pares imagem-texto | Pares imagem-texto (escala web) | Alinhamento multimodal; torre visual para VLMs |
| SAM-2 [src_041] | Predição de máscara com memória em streaming; backbone Hiera pré-treinado com MAE | Máscaras humanas (data engine SA-V) | Segmentação promptable em imagens e vídeos |
As duas receitas sem rótulos — MAE e DINOv2 — resolvem problemas diferentes. O MAE produz um backbone que é mais forte após fine-tuning, no sentido de que suas representações de encoder não são particularmente linearmente separáveis mas tornam-se muito fortes quando alguns blocos transformer são ajustados [src_038]. O DINOv2 produz um backbone que é mais forte congelado, porque o objetivo discriminativo de auto-destilação molda explicitamente o espaço de features [src_039]. As duas receitas fracamente rotuladas — SigLIP e SAM-2 — também resolvem problemas diferentes. O SigLIP alinha representações visuais e textuais através de uma loss que se desacopla do tamanho do batch, tornando o treinamento imagem-texto em larga escala barato e o treinamento imagem-texto em pequena escala viável [src_040]. O SAM-2 sobrepõe uma memória temporal e um mask decoder promptable em cima de um backbone pré-treinado com MAE para entregar um sistema de segmentação implantado [src_041].
Os ponteiros para frente são curtos. Scaling laws (Parte: Scale) explicam por que cada uma dessas receitas responde bem a mais dados e mais computação. Pretraining paradigms (Parte: Pretraining Paradigms) constroem o argumento encoder-decoder que enquadra o MAE como um análogo visual do masked autoencoding da classe BERT. O capítulo sobre VLM, quando escrito, retomará SigLIP e DINOv2 como front ends visuais de LLMs multimodais e explicará o adaptador de projeção que faz a ponte entre um ViT e um decoder Transformer. Até lá, as quatro receitas aqui são o conjunto de trabalho: masked autoencoding em espaço de pixel, auto-destilação discriminativa, aprendizado contrastivo imagem-texto com loss sigmoid e segmentação promptable com memória em streaming.
🔗 Conexão
O Capítulo 9 (Scaling laws) explica por que cada uma dessas receitas responde bem a mais dados e mais computação; o Capítulo 7 (família encoder-decoder) constrói o argumento encoder-decoder que enquadra o MAE como um análogo visual do masked autoencoding da classe BERT.
🔄 Recapitulação
- Complete: O banco de memória do SAM-2 carrega duas filas FIFO de comprimento _____ e _____ mais uma lista de _____. O image encoder é um backbone _____, ele mesmo pré-treinado com _____.
- Explique: Por que a recuperação por clique único em caso de oclusão é possível no SAM-2 mas não seria possível se o banco contivesse apenas as duas filas FIFO sem object pointers?
- Compare: Olhe a tabela de quatro receitas em §8. Quais são livres de rótulos, quais são fracamente rotuladas, e qual é a única que produz um sistema implantado em vez de um backbone ou extrator de features?
- Gere: Em suas próprias palavras, explique por que features do MAE são mais fortes após fine-tuning enquanto features do DINOv2 são mais fortes congeladas. O que cada objetivo recompensa no espaço de features?
Referências¶
- [src_008] Antonio Torralba, Phillip Isola, and William T. Freeman. Foundations of Computer Vision. MIT Press, 2024. https://visionbook.mit.edu/
- [src_009] Robin Courant, Maika Edberg, Nicolas Dufour, and Vicky Kalogeiton. "Transformers and Visual Transformers." Humana/Springer, 2023. https://doi.org/10.1007/978-1-0716-3195-9_6
- [src_038] Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, and Ross Girshick. "Masked Autoencoders Are Scalable Vision Learners." 2022. https://arxiv.org/pdf/2111.06377
- [src_039] Maxime Oquab, Timothée Darcet, Théo Moutakanni, et al. "DINOv2: Learning Robust Visual Features without Supervision." Transactions on Machine Learning Research, 2024 (arXiv 2023). https://arxiv.org/pdf/2304.07193
- [src_040] Xiaohua Zhai, Basil Mustafa, Alexander Kolesnikov, and Lucas Beyer. "Sigmoid Loss for Language Image Pre-Training." 2023. https://arxiv.org/pdf/2303.15343
- [src_041] Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, et al. "SAM 2: Segment Anything in Images and Videos." 2024. https://arxiv.org/pdf/2408.00714