Design clássico · Pleno
Legendagem de imagens
Projeto de entrevista clássico. Pontos centrais: encoder visual + decoder de texto, cross-attention e CIDEr.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: encoder visual + decoder de texto, cross-attention e CIDEr. Legendar uma imagem é gerar uma frase que descreva o que ela mostra. É um problema de ML system design que junta visão e linguagem.
01 · CONTEXTO
O que é legendar uma imagem
Legendar uma imagem é gerar uma frase que descreva o que ela mostra. É um problema de ML system design que junta visão e linguagem. Segundo o paper Show and Tell, uma boa descrição precisa capturar os objetos da imagem, a relação entre eles, seus atributos e as atividades em que se envolvem, e ainda expressar isso em linguagem natural; por isso é necessário um modelo de linguagem além da compreensão visual.
02 · ARQUITETURA BASE
Codificador visual e decodificador de texto
A abordagem do paper Show and Tell, chamada NIC, é um único modelo: recebe a imagem e é treinado para maximizar a verossimilhança da sequência de palavras que a descreve. Os blocos de visão e de linguagem podem ser pré-treinados em corpora maiores.
O diagrama começa pela imagem de entrada, que segue para o codificador visual.
O codificador é uma CNN pré-treinada em classificação de imagens, e a última camada oculta dela alimenta o decodificador.
A imagem entra uma única vez, para informar o decodificador sobre o conteúdo; nos testes dos autores, alimentá-la a cada passo deu resultado inferior.
O decodificador gera a frase uma palavra por vez, até emitir a palavra de parada, que sinaliza que a frase está completa.
O diagrama termina na aplicação que consome a legenda pronta.
Na inferência, o paper compara amostragem com busca em feixe: esta mantém as k melhores frases parciais como candidatas a cada passo, e usar um feixe de tamanho um (busca gulosa) piorou os resultados em média.
| Abordagem | O que a fonte diz |
|---|---|
| Detecções e modelos de frase | Detecções viram um trio de elementos de cena, convertido em texto por modelos fixos (templates); a fonte os descreve como limitados em expressividade. |
| Ranking de descrições existentes | Recupera descrições próximas da imagem em um espaço de embedding conjunto; não descreve composições de objetos nunca vistas. |
| Modelo único (NIC) | Um único modelo treinado para maximizar a verossimilhança da sequência de palavras dada a imagem. |
03 · ATENÇÃO VISUAL
Olhar para a região certa a cada palavra
O paper Show, Attend and Tell aponta um limite de usar só a representação da camada de topo da convnet: pode perder informação útil para legendas mais ricas. A saída é extrair características de uma camada convolucional inferior, o que permite ao decodificador focar em partes específicas da imagem.
O diagrama começa pela imagem, que segue para o extrator de características espaciais.
O extrator usa uma camada convolucional inferior, e não uma camada totalmente conectada, para que o decodificador possa focar em partes da imagem.
O módulo de atenção dá um peso a cada região, lido como a probabilidade de ela ser o lugar certo para focar na próxima palavra, e resume o resultado em um vetor de contexto, uma representação dinâmica da parte relevante da imagem.
O decodificador gera uma palavra por passo, condicionada ao vetor de contexto, ao estado oculto anterior e às palavras já geradas.
A aresta de volta, do decodificador ao módulo de atenção, representa a atenção que muda conforme cada palavra é gerada.
| Variante | Como é treinada |
|---|---|
| Atenção suave (soft) | Mecanismo determinístico, treinável por retropropagação padrão. |
| Atenção rígida (hard) | Mecanismo estocástico, treinado maximizando um limite inferior variacional aproximado, ou de forma equivalente por REINFORCE. |
04 · AVALIAÇÃO
Como medir se a legenda é boa
A avaliação por avaliadores humanos, que dão uma nota de utilidade a cada descrição, é descrita no paper Show and Tell como a mais confiável, porém demorada. Entre as métricas automáticas, o BLEU é uma forma de precisão de n-gramas de palavras entre a frase gerada e as de referência.
As fontes divergem sobre o BLEU: os autores do NIC relatam que ele se correlaciona bem com avaliações humanas, enquanto os autores do CIDEr afirmam que BLEU e ROUGE têm correlação fraca com o julgamento humano. Daí a proposta do CIDEr, que mede a similaridade de uma frase com o consenso de como a maioria das pessoas descreve a imagem.
O diagrama começa pelas imagens de avaliação, que alimentam o modelo de legendagem.
O avaliador recebe a legenda gerada e as legendas humanas de referência, porque o CIDEr mede a similaridade de uma frase com o consenso de como a maioria descreve a imagem.
Cinco frases de referência por imagem não bastam, segundo os autores do CIDEr, para medir como a maioria das pessoas descreveria a imagem; por isso eles coletaram conjuntos de avaliação com muito mais descrições por imagem.
O CIDEr pondera cada n-grama por TF-IDF: o IDF desconta palavras populares, pouco informativas visualmente.
O CIDEr-D está disponível no servidor de avaliação do MS COCO e é mais robusto a manipulação do que a versão original.
05 · PRODUÇÃO
Levando o modelo para um serviço
Esta seção é uma proposta de estudo, não a arquitetura de uma empresa. Três decisões merecem atenção ao levar o modelo para produção: se a legenda volta na hora ou depois, onde as imagens e as legendas ficam guardadas, e como a qualidade é acompanhada ao longo do tempo. Veja também filas de mensagens e monitoramento.
O diagrama começa pelo cliente, que chega ao serviço de legendagem passando pelo gateway de API.
No diagrama, o serviço de legendagem se liga ao armazenamento de imagens e ao cache de legendas.
No diagrama, o serviço também se liga à fila de inferência, da qual o worker de inferência consome.
No diagrama, o worker se liga ao armazenamento, ao cache e ao monitoramento de qualidade.
Perguntas frequentes
O que é Legendagem de imagens?
Projeto de entrevista clássico. Pontos centrais: encoder visual + decoder de texto, cross-attention e CIDEr.
O que o design de Legendagem de imagens cobre?
Ele está organizado nestas seções: O que é legendar uma imagem, Codificador visual e decodificador de texto, Olhar para a região certa a cada palavra, Como medir se a legenda é boa e Levando o modelo para um serviço.
Quanto tempo leva Legendagem de imagens e qual é o nível?
Leva cerca de 14 minutos para ler e tem nível Pleno.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.