Elastic
Jina AI
Modelos
API
keyboard_arrow_down
Reader
Convierta cualquier URL a Markdown para un mejor anclaje de los LLM.
Embeddings
Embeddings multimodales y multilingües.
Reranker
Reranker para maximizar la relevancia de los resultados de búsqueda.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agentes
data_object
Esquema
menu_book
Documentos
Acceso
login
Entender el Código
¿Es una Explicabilidad Significativa?
¿Por Qué Podría Emerger la Alineación Local?
Análisis Teórico
Conclusión
Blog de tecnología
enero 07, 2025

Alineación contrastiva global de texto-imagen y alineación local de token-parche

CLIP puede visualizar similitudes entre tokens y parches, sin embargo, se trata más de un truco de interpretabilidad post-hoc que de una "atención" robusta u oficial del modelo. Aquí la razón.
Han Xiao • 6 minutos de lectura

Mientras experimentaba con modelos al estilo ColPali, uno de nuestros ingenieros creó una visualización usando nuestro modelo jina-clip-v2 recientemente lanzado. Mapeó la similitud entre los embeddings de tokens y los embeddings de parches para pares dados de imagen-texto, creando superposiciones de mapas de calor que produjeron algunas perspectivas visuales intrigantes.

Desafortunadamente, esto es solo una visualización heurística - no un mecanismo explícito o garantizado. Si bien la alineación contrastiva global tipo CLIP puede (y a menudo lo hace) crear incidentalmente alineaciones locales aproximadas entre parches y tokens, esto es un efecto secundario no intencionado en lugar de un objetivo deliberado del modelo. Permítanme explicar por qué.

tagEntender el Código

Google Colab

Analicemos lo que hace el código a alto nivel. Ten en cuenta que jina-clip-v2 en realidad no expone ninguna API para acceder a embeddings a nivel de token o parche por defecto - esta visualización requirió algunas modificaciones posteriores para hacerla funcionar.

Calcular embeddings a nivel de palabra

Al establecer model.text_model.output_tokens = True, llamar a text_model(x=...,)[1] devolverá un segundo elemento (batch_size, seq_len, embed_dim) para los embeddings de tokens. Así que toma una oración de entrada, la tokeniza con el tokenizador Jina CLIP, y luego agrupa los subtokens de nuevo en "palabras" promediando los embeddings de tokens correspondientes. Detecta el inicio de una nueva palabra verificando si la cadena del token comienza con el carácter _ (típico en tokenizadores basados en SentencePiece). Produce una lista de embeddings a nivel de palabra y una lista de palabras (de modo que "Perro" es un embedding, "y" es un embedding, etc.).

Calcular embeddings a nivel de parche

Para la torre de imágenes, vision_model(..., return_all_features=True) devolverá (batch_size, n_patches+1, embed_dim), donde el primer token es el token [CLS]. A partir de eso, el código extrae los embeddings para cada parche (es decir, los tokens de parche del transformador de visión). Luego reshapea estos embeddings de parche en una cuadrícula 2D, patch_side × patch_side, que luego se escala para coincidir con la resolución de la imagen original.

Visualizar similitud palabra-parche

El cálculo de similitud y la posterior generación del mapa de calor son técnicas de interpretabilidad "post-hoc" estándar: seleccionas un embedding de texto, calculas la similitud del coseno con cada embedding de parche, y luego generas un mapa de calor que muestra qué parches tienen la mayor similitud con ese embedding de token específico. Finalmente, recorre cada token en la oración, resalta ese token en negrita a la izquierda, y superpone el mapa de calor basado en similitud sobre la imagen original a la derecha. Todos los frames se compilan en un GIF animado.

tag¿Es una Explicabilidad Significativa?

Desde un punto de vista de código puro, sí, la lógica es coherente y producirá un mapa de calor para cada token. Obtendrás una serie de frames que resaltan las similitudes de parches, así que el script "hace lo que dice que hace".

Mirando los ejemplos anteriores, vemos que palabras como moon y branches parecen alinearse bien con sus parches visuales correspondientes en la imagen original. Pero aquí está la pregunta clave: ¿es esta una alineación significativa, o solo estamos viendo una coincidencia afortunada?

Esta es una pregunta más profunda. Para entender las advertencias, recordemos cómo se entrena CLIP:

Diagrama del modelo JINA-CLIP-V2 mostrando etapas desde la entrada hasta la salida para el procesamiento de texto en inglés y multilingüe.
Jina-CLIP v2 combina un codificador de texto (Jina XLM-RoBERTa, 561M parámetros) y un codificador de visión (EVA02-L14, 304M parámetros). Cada cuadrado de color a la derecha representa una oración o imagen completa en el lote - no tokens o parches individuales.
  • CLIP usa alineación contrastiva global entre una imagen completa y un texto completo. Durante el entrenamiento, el codificador de imagen produce un único vector (representación agrupada), y el codificador de texto produce otro vector único; CLIP está entrenado para que estos coincidan para pares texto-imagen correspondientes y no coincidan en caso contrario.
  • No hay supervisión explícita a nivel de 'el parche X corresponde al token Y'. El modelo no está entrenado directamente para resaltar "esta región de la imagen es el perro, esa región es el gato", etc. En su lugar, se le enseña que la representación completa de la imagen debe coincidir con la representación completa del texto.
  • Debido a que la arquitectura de CLIP es un Vision Transformer en el lado de la imagen y un transformador de texto en el lado del texto—ambos formando codificadores separados—no hay un módulo de atención cruzada que alinee nativamente parches con tokens. En su lugar, obtienes puramente auto-atención en cada torre, más una proyección final para los embeddings globales de imagen o texto.

En resumen, esta es una visualización heurística. El hecho de que cualquier embedding de parche pueda estar cerca o lejos de un embedding de token particular es algo emergente. Es más un truco de interpretabilidad post-hoc que una "atención" robusta u oficial del modelo.

tag¿Por Qué Podría Emerger la Alineación Local?

Entonces, ¿por qué podríamos a veces detectar alineaciones locales a nivel palabra-parche? Aquí está el asunto: aunque CLIP está entrenado en un objetivo contrastivo global de imagen-texto, aún usa auto-atención (en codificadores de imagen basados en ViT) y capas transformer (para texto). Dentro de estas capas de auto-atención, diferentes partes de las representaciones de imagen pueden interactuar entre sí, al igual que lo hacen las palabras en las representaciones de texto. A través del entrenamiento en conjuntos de datos masivos de imagen-texto, el modelo naturalmente desarrolla estructuras latentes internas que lo ayudan a coincidir imágenes generales con sus descripciones de texto correspondientes.

La alineación local puede aparecer en estas representaciones latentes por al menos dos razones:

  1. Patrones de co-ocurrencia: Si un modelo ve muchas imágenes de "perros" junto a muchas imágenes de "gatos" (a menudo etiquetadas o descritas con esas palabras), puede aprender características latentes que corresponden aproximadamente a estos conceptos. Así, el embedding para "perro" podría volverse cercano a parches locales que muestran una forma o textura similar a un perro. Esto no está supervisado explícitamente a nivel de parche, pero emerge de la asociación repetida entre pares de imágenes/texto de perros.
  2. Self-attention: En los Vision Transformers, los parches prestan atención entre sí. Los parches distintivos (como el rostro de un perro) pueden terminar con una "firma" latente consistente, porque el modelo está tratando de producir una única representación globalmente precisa de toda la escena. Si esto ayuda a minimizar la pérdida contrastiva general, se reforzará.

tagAnálisis Teórico

El objetivo de aprendizaje contrastivo de CLIP busca maximizar la similitud del coseno entre pares de imagen-texto coincidentes mientras la minimiza para pares no coincidentes. Asumamos que los codificadores de texto e imagen producen embeddings de tokens y parches respectivamente:

ui=1M∑m=1Mui,m,vi=1K∑k=1Kvi,k\mathbf{u}_i = \frac{1}{M} \sum_{m=1}^M \mathbf{u}_{i,m}, \quad \mathbf{v}_i = \frac{1}{K} \sum_{k=1}^K \mathbf{v}_{i,k}ui​=M1​m=1∑M​ui,m​,vi​=K1​k=1∑K​vi,k​

La similitud global puede representarse como un agregado de similitudes locales:

sim(ui,vi)=1MK∑m=1M∑k=1Kui,m⊤vi,k\text{sim}(\mathbf{u}_i, \mathbf{v}_i) = \frac{1}{MK} \sum_{m=1}^M \sum_{k=1}^K \mathbf{u}_{i,m}^\top \mathbf{v}_{i,k}sim(ui​,vi​)=MK1​m=1∑M​k=1∑K​ui,m⊤​vi,k​

Cuando pares específicos de token-parche co-ocurren frecuentemente a través de los datos de entrenamiento, el modelo refuerza su similitud mediante actualizaciones acumulativas del gradiente:

Δum∗∝∑c=1Cvk∗(c),Δvk∗∝∑c=1Cum∗(c)\Delta \mathbf{u}_{m^*} \propto \sum_{c=1}^C \mathbf{v}_{k^*}^{(c)}, \quad \Delta \mathbf{v}_{k^*} \propto \sum_{c=1}^C \mathbf{u}_{m^*}^{(c)}Δum∗​∝c=1∑C​vk∗(c)​,Δvk∗​∝c=1∑C​um∗(c)​

, donde CCC es el número de co-ocurrencias. Esto lleva a que um∗⊤vk∗\mathbf{u}_{m^*}^\top \mathbf{v}_{k^*}um∗⊤​vk∗​ aumente significativamente, promoviendo una alineación local más fuerte para estos pares. Sin embargo, la pérdida contrastiva distribuye las actualizaciones del gradiente entre todos los pares token-parche, limitando la fuerza de las actualizaciones para cualquier par específico:

∂L∂um∝−∑k=1Kvk⋅(exp⁡(u⊤v/τ)∑j=1Nexp⁡(u⊤vj/τ))\frac{\partial \mathcal{L}}{\partial \mathbf{u}_{m}} \propto -\sum_{k=1}^K \mathbf{v}_k \cdot \left( \frac{\exp(\mathbf{u}^\top \mathbf{v} / \tau)}{\sum_{j=1}^N \exp(\mathbf{u}^\top \mathbf{v}_j / \tau)} \right)∂um​∂L​∝−k=1∑K​vk​⋅(∑j=1N​exp(u⊤vj​/τ)exp(u⊤v/τ)​)

Esto evita el refuerzo significativo de similitudes individuales entre token-parche.

tagConclusión

Las visualizaciones token-parche de CLIP aprovechan una alineación incidental y emergente entre las representaciones de texto e imagen. Esta alineación, aunque intrigante, proviene del entrenamiento contrastivo global de CLIP y carece de la robustez estructural necesaria para una explicabilidad precisa y confiable. Las visualizaciones resultantes a menudo exhiben ruido e inconsistencia, limitando su utilidad para aplicaciones interpretativas en profundidad.

What is ColBERT and Late Interaction and Why They Matter in Search?
Jina AI's ColBERT on Hugging Face has set Twitter abuzz, bringing a fresh perspective to search with its 8192-token capability. This article unpacks the nuances of ColBERT and ColBERTv2, showcasing their innovative designs and why their late interaction feature is a game-changer for search.
Jina AIHan Xiao

Los modelos de interacción tardía como ColBERT y ColPali abordan estas limitaciones mediante la incorporación arquitectónica de alineaciones explícitas y detalladas entre tokens de texto y parches de imagen. Al procesar las modalidades de forma independiente y realizar cálculos de similitud específicos en una etapa posterior, estos modelos aseguran que cada token de texto esté significativamente asociado con las regiones relevantes de la imagen.

Categorías:
Blog de tecnología
rss_feed

Leer más
marzo 11, 2026 • 7 minutos de lectura
Bootstrapping Audio Embeddings from Multimodal LLMs
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
marzo 06, 2026 • 6 minutos de lectura
Identifying Embedding Models from Raw Numerical Values
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
septiembre 09, 2025 • 11 minutos de lectura
Multimodal Embeddings in Llama.cpp and GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
Idioma / tema actual
Search Foundation
Reader
Embeddings
Reranker
Obtener la clave API de Jina
Límite de velocidad
Sobre nosotros
Noticias
Descargar el logotipo de Jina
open_in_new
Descargar el logotipo de Elastic
open_in_new
Estado de la API
Elastic © 2026.SeguridadTérminos y condicionesPrivacidadAdministrar cookiesNo venda ni comparta mi información personal.
Este sitio web y su contenido, software, productos y servicios asociados están destinados exclusivamente a un uso profesional. El uso por parte de consumidores no está previsto ni dirigido.