Noticias
Modelos
Productos
keyboard_arrow_down
Búsqueda profunda
Busca, lee y razona hasta encontrar la mejor respuesta.
Lector
Lea las URL y busque en la web para obtener una base más sólida para su LLM.
Incrustaciones
Integraciones multilingües y multimodales de clase mundial.
reclasificador
Recuperador neuronal de clase mundial para maximizar la relevancia de la búsqueda.
Más
keyboard_arrow_down
Clasificador
Clasificación de cero disparos y pocos disparos para imágenes y texto.
Segmentador
Corta el texto largo en fragmentos y haz tokenización.

Documentación de la API
Generación automática de código para su IDE o LLM de Copilot
open_in_new


Compañía
keyboard_arrow_down
Sobre nosotros
Contactar con ventas
Programa de prácticas
Únete a nosotros
open_in_new
Descargar logotipo
open_in_new
Términos y condiciones


Acceso
login
¿Por qué las oraciones mezcladas tienen puntuaciones coseno sorprendentemente cercanas?
¿Cómo impactan la longitud del texto y el orden de las palabras en la similitud de embeddings?
¿Los Modelos Más Grandes Resuelven el Problema?
Orden de Palabras y Elección de Palabras en el Mundo Real
Ajuste Fino de Modelos de Embeddings de Texto con Conjuntos de Datos Curados
Conclusión
Blog de tecnología
diciembre 17, 2024

Los Text Embeddings fallan al capturar el orden de las palabras y cómo solucionarlo

Los modelos de incrustación de texto tienen dificultades para captar sutiles matices lingüísticos como el orden de las palabras, las relaciones direccionales, las secuencias temporales, las conexiones causales, las comparaciones y la negación. Comprender estos desafíos es clave para mejorar el rendimiento del modelo.
Bo Wang
Alex C-G
Bo Wang, Alex C-G • 12 minutos de lectura

Recientemente, Christoph Schuhmann, fundador de LAION AI compartió una observación interesante sobre los modelos de embeddings de texto:

Cuando las palabras dentro de una oración se mezclan aleatoriamente, la similitud coseno entre sus embeddings de texto permanece sorprendentemente alta en comparación con la oración original.

Por ejemplo, veamos dos oraciones: Berlin is the capital of Germany y the Germany Berlin is capital of. Aunque la segunda oración no tiene sentido, los modelos de embeddings de texto realmente no pueden distinguirlas. Usando jina-embeddings-v3, estas dos oraciones tienen una puntuación de similitud coseno de 0.9295.

El orden de las palabras no es lo único para lo que los embeddings parecen no ser muy sensibles. Las transformaciones gramaticales pueden cambiar dramáticamente el significado de una oración pero tienen poco impacto en la distancia de embedding. Por ejemplo, She ate dinner before watching the movie y She watched the movie before eating dinner tienen una similitud coseno de 0.9833, a pesar de tener el orden opuesto de acciones.

La negación también es notoriamente difícil de codificar consistentemente sin entrenamiento especial — This is a useful model y This is not a useful model se ven prácticamente igual en el espacio de embeddings. A menudo, reemplazar las palabras en un texto con otras de la misma clase, como cambiar "hoy" por "ayer", o alterar el tiempo verbal, no cambia los embeddings tanto como uno pensaría que debería.

Esto tiene serias implicaciones. Consideremos dos consultas de búsqueda: Flight from Berlin to Amsterdam y Flight from Amsterdam to Berlin. Tienen embeddings casi idénticos, con jina-embeddings-v3 asignándoles una similitud coseno de 0.9884. Para una aplicación del mundo real como búsqueda de viajes o logística, esta deficiencia es fatal.

En este artículo, analizamos los desafíos que enfrentan los modelos de embeddings, examinando sus persistentes dificultades con el orden y la elección de palabras. Analizamos los principales modos de fallo en categorías lingüísticas —incluyendo contextos direccionales, temporales, causales, comparativos y de negación— mientras exploramos estrategias para mejorar el rendimiento del modelo.

tag¿Por qué las oraciones mezcladas tienen puntuaciones coseno sorprendentemente cercanas?

Al principio, pensamos que esto podría deberse a cómo el modelo combina los significados de las palabras - crea un embedding para cada palabra (6-7 palabras en cada una de nuestras oraciones de ejemplo anteriores) y luego promedia estos embeddings juntos con mean pooling. Esto significa que hay muy poca información sobre el orden de las palabras disponible para el embedding final. Un promedio es el mismo sin importar el orden de los valores.

Sin embargo, incluso los modelos que usan CLS pooling (que mira una primera palabra especial para entender toda la oración y debería ser más sensible al orden de las palabras) tienen el mismo problema. Por ejemplo, bge-1.5-base-en todavía da una puntuación de similitud coseno de 0.9304 para las oraciones Berlin is the capital of Germany y the Germany Berlin is capital of.

Esto señala una limitación en cómo se entrenan los modelos de embeddings. Mientras que los modelos de lenguaje inicialmente aprenden la estructura de la oración durante el pre-entrenamiento, parecen perder algo de esta comprensión durante el entrenamiento contrastivo — el proceso que usamos para crear modelos de embeddings.

tag¿Cómo impactan la longitud del texto y el orden de las palabras en la similitud de embeddings?

¿Por qué los modelos tienen problemas con el orden de las palabras en primer lugar? Lo primero que viene a la mente es la longitud (en tokens) del texto. Cuando el texto se envía a la función de codificación, el modelo primero genera una lista de embeddings de tokens (es decir, cada palabra tokenizada tiene un vector dedicado que representa su significado), luego los promedia.

Para ver cómo la longitud del texto y el orden de las palabras impactan la similitud de embeddings, generamos un conjunto de datos de 180 oraciones sintéticas de diferentes longitudes, como 3, 5, 10, 15, 20 y 30 tokens. También mezclamos aleatoriamente los tokens para formar una variación de cada oración:

bwang0911/word-orders-triplet-random-shuffle · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Aquí hay algunos ejemplos:

Length (tokens)Original sentenceShuffled sentence
3The cat sleepscat The sleeps
5He drives his car carefullydrives car his carefully He
15The talented musicians performed beautiful classical music at the grand concert hall yesterdayin talented now grand classical yesterday The performed musicians at hall concert the music
30The passionate group of educational experts collaboratively designed and implemented innovative teaching methodologies to improve learning outcomes in diverse classroom environments worldwidegroup teaching through implemented collaboratively outcomes of methodologies across worldwide diverse with passionate and in experts educational classroom for environments now by learning to at improve from innovative The designed

Codificaremos el conjunto de datos usando nuestro propio modelo jina-embeddings-v3 y el modelo de código abierto bge-base-en-v1.5, luego calcularemos la similitud coseno entre la oración original y la mezclada:

Length (tokens) Mean cosine similarity Standard deviation in cosine similarity
3 0.947 0.053
5 0.909 0.052
10 0.924 0.031
15 0.918 0.019
20 0.899 0.021
30 0.874 0.025

Ahora podemos generar un diagrama de caja, que hace más clara la tendencia en la similitud coseno:

Figura 1: Distribución de similitud por longitud de oración para oraciones mezcladas con jina-embeddings-v3 y bge-base-en-1.5 (sin ajuste fino)

Como podemos ver, hay una clara relación lineal en la similitud coseno promedio de los embeddings. Cuanto más largo es el texto, menor es la puntuación promedio de similitud coseno entre las oraciones originales y las mezcladas aleatoriamente. Esto probablemente ocurre debido al "desplazamiento de palabras", es decir, qué tan lejos se han movido las palabras de sus posiciones originales después de la mezcla aleatoria. En un texto más corto, simplemente hay menos "espacios" a los que un token puede ser mezclado por lo que no puede moverse tan lejos, mientras que un texto más largo tiene un mayor número de permutaciones potenciales y las palabras pueden moverse una distancia mayor.

Figura 2: Combinaciones de oraciones por número de palabras
💡
Detendremos la tabla aquí, ya que el número de combinaciones es el factorial del número de palabras. Cuando llegamos a treinta palabras, obtenemos 265 nonillones (2.652528598 E+32) combinaciones.

Como se muestra en la figura siguiente (Similitud del Coseno vs Desplazamiento Promedio de Palabras), cuanto más largo es el texto, mayor es el desplazamiento de palabras:

Figura 3: Similitud del Coseno vs Desplazamiento Promedio de Palabras con conjunto de datos de oraciones mezcladas mostrando la correlación entre el desplazamiento promedio de palabras y la disimilitud del coseno.

Las incrustaciones de tokens dependen del contexto local, es decir, de las palabras más cercanas a ellos. En un texto corto, reorganizar las palabras no puede cambiar mucho ese contexto. Sin embargo, en un texto más largo, una palabra puede moverse muy lejos de su contexto original y eso puede cambiar significativamente su incrustación de token. Como resultado, mezclar las palabras en un texto más largo produce una incrustación más distante que en uno más corto. La figura anterior muestra que tanto para jina-embeddings-v3, usando agrupación media, como para bge-base-en-v1.5, usando agrupación CLS, se mantiene la misma relación: mezclar textos más largos y desplazar palabras más lejos resulta en puntuaciones de similitud más pequeñas.

tag¿Los Modelos Más Grandes Resuelven el Problema?

Normalmente, cuando nos enfrentamos a este tipo de problema, una táctica común es simplemente usar un modelo más grande. Pero, ¿puede un modelo de incrustación de texto más grande realmente capturar mejor la información del orden de las palabras? Según la ley de escalado de los modelos de incrustación de texto (referenciada en nuestra publicación de lanzamiento de jina-embeddings-v3), los modelos más grandes generalmente proporcionan un mejor rendimiento:

Figura 4: Ley de Escalado de Modelos de Incrustación, Mostrando el Escalado de Rendimiento MTEB con Número de Parámetros.

Pero ¿puede un modelo más grande capturar la información del orden de las palabras de manera más efectiva? Probamos tres variaciones del modelo BGE: bge-small-en-v1.5, bge-base-en-v1.5, y bge-large-en-v1.5, con tamaños de parámetros de 33 millones, 110 millones y 335 millones, respectivamente.

Usaremos las mismas 180 oraciones que antes, pero ignoraremos la información de longitud. Codificaremos tanto las oraciones originales como sus mezclas aleatorias usando las tres variantes del modelo y graficaremos la similitud del coseno promedio:

Figura 5: Impacto del Tamaño del Modelo en la Sensibilidad al Orden de las Palabras con Conjunto de Datos de Oraciones Mezcladas usando bge-small-en-v1.5, bge-base-en-v1.5, y bge-large-en-v1.5.

Aunque podemos ver que los modelos más grandes son más sensibles a la variación del orden de las palabras, la diferencia es pequeña. Incluso el mucho más grande bge-large-en-v1.5 es apenas un poco mejor para distinguir las oraciones mezcladas de las no mezcladas. Otros factores entran en juego para determinar qué tan sensible es un modelo de incrustación a las reordenaciones de palabras, particularmente las diferencias en el régimen de entrenamiento. Además, la similitud del coseno es una herramienta muy limitada para medir la capacidad de un modelo para hacer distinciones. Sin embargo, podemos ver que el tamaño del modelo no es una consideración importante. No podemos simplemente hacer nuestro modelo más grande y resolver este problema.

tagOrden de Palabras y Elección de Palabras en el Mundo Real

💡
Durante gran parte de esta publicación estamos usando jina-embeddings-v2 (no nuestro modelo más reciente, jina-embeddings-v3) ya que v2 es mucho más pequeño y por lo tanto más rápido para experimentar en nuestras GPUs locales, con 137m parámetros frente a los 580m de v3.

Como mencionamos en la introducción, el orden de las palabras no es el único desafío para los modelos de incrustación. Un desafío más realista del mundo real es sobre la elección de palabras. Hay muchas formas de cambiar las palabras en una oración — formas que no se reflejan bien en las incrustaciones. Podemos tomar "Ella voló de París a Tokio" y alterarla para obtener "Ella condujo de Tokio a París", y las incrustaciones permanecen similares. Hemos mapeado esto a través de varias categorías de alteración:

Categoría Ejemplo - Izquierda Ejemplo - Derecha Similitud del Coseno (jina)
Direccional Ella voló de París a Tokio Ella condujo de Tokio a París 0.9439
Temporal Ella cenó antes de ver la película Ella vio la película antes de cenar 0.9833
Causal La temperatura en aumento derritió la nieve La nieve derretida enfrió la temperatura 0.8998
Comparativa El café sabe mejor que el té El té sabe mejor que el café 0.9457
Negación Él está de pie junto a la mesa Él está de pie lejos de la mesa 0.9116
💡
Ten en cuenta que estos son casos comunes que observamos durante nuestro trabajo y no necesariamente representan una taxonomía completa de categorías.

La tabla anterior muestra una lista de "casos de fallo" donde un modelo de embeddings de texto falla al capturar alteraciones sutiles de palabras. Esto coincide con nuestras expectativas: los modelos de embeddings de texto carecen de la capacidad de razonar. Por ejemplo, el modelo no comprende la relación entre "desde" y "hacia". Los modelos de embeddings de texto realizan coincidencias semánticas, con semántica típicamente capturada a nivel de token y luego comprimida en un único vector denso después del pooling. En contraste, los LLM (modelos autorregresivos) entrenados en conjuntos de datos más grandes, a escala de billones de tokens, están comenzando a demostrar capacidades emergentes de razonamiento.

Esto nos hizo preguntarnos, ¿podemos ajustar el modelo de embeddings con aprendizaje contrastivo usando tripletas para acercar la consulta y el positivo, mientras alejamos la consulta del negativo?

Figura 6: El Efecto del Aprendizaje Contrastivo: Acercar la Consulta y el Positivo, Alejar el Negativo.

Por ejemplo, "Vuelo desde Ámsterdam a Berlín" podría considerarse el par negativo de "Vuelo desde Berlín a Ámsterdam". De hecho, en el informe técnico de jina-embeddings-v1 (Michael Guenther, et al.), abordamos brevemente este problema a pequeña escala: ajustamos el modelo jina-embeddings-v1 en un conjunto de datos de negación de 10.000 ejemplos generados por modelos de lenguaje grandes.

jinaai/negation-dataset · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Los resultados, reportados en el enlace del informe anterior, fueron prometedores:

Observamos que en todos los tamaños de modelo, el ajuste fino en datos de tripletas (que incluye nuestro conjunto de datos de entrenamiento de negación) mejora dramáticamente el rendimiento, particularmente en la tarea HardNegation.
Figura 7: Tabla mostrando puntajes de EasyNegation y HardNegation en varios tamaños de modelos jina-embeddings con entrenamiento por pares y combinado de tripletas/pares.
Figura 8: Comparación de Rendimiento de Estrategias de Entrenamiento entre diferentes versiones de jina-embeddings.

tagAjuste Fino de Modelos de Embeddings de Texto con Conjuntos de Datos Curados

En las secciones anteriores, exploramos varias observaciones clave sobre los embeddings de texto:

  1. Los textos más cortos son más propensos a errores en la captura del orden de las palabras.
  2. Aumentar el tamaño del modelo de embeddings de texto no necesariamente mejora la comprensión del orden de las palabras.
  3. El aprendizaje contrastivo podría ofrecer una solución potencial a estos problemas.

Con esto en mente, ajustamos jina-embeddings-v2-base-en y bge-base-en-1.5 en nuestros conjuntos de datos de negación y orden de palabras (aproximadamente 11.000 muestras de entrenamiento en total):

bwang0911/word-order-jina · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.
bwang0911/word-order-bge · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Para ayudar a evaluar el ajuste fino, generamos un conjunto de datos de 1.000 tripletas que consisten en un caso query, positive (pos), y negative (neg):

bwang0911/word-orders-triplet · Datasets at Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Aquí hay una fila de ejemplo:

Anchor The river flows from the mountains to the sea
Positive Water travels from mountain peaks to ocean
Negative The river flows from the sea to the mountains

Estas tripletas están diseñadas para cubrir varios casos de fallo, incluyendo cambios de significado direccionales, temporales y causales debido a cambios en el orden de las palabras.

Ahora podemos evaluar los modelos en tres conjuntos de evaluación diferentes:

  1. El conjunto de 180 oraciones sintéticas (del principio de este post), mezcladas aleatoriamente.
  2. Cinco ejemplos revisados manualmente (de la tabla direccional/causal/etc anterior).
  3. 94 tripletas curadas de nuestro conjunto de datos de tripletas que acabamos de generar.

Aquí está la diferencia para oraciones mezcladas antes y después del ajuste fino:

Longitud de Oración (tokens) Similitud Coseno Media (jina) Similitud Coseno Media (jina-ft) Similitud Coseno Media (bge) Similitud Coseno Media (bge-ft)
3 0.970 0.927 0.929 0.899
5 0.958 0.910 0.940 0.916
10 0.953 0.890 0.934 0.910
15 0.930 0.830 0.912 0.875
20 0.916 0.815 0.901 0.879
30 0.927 0.819 0.877 0.852

El resultado parece claro: a pesar de que el proceso de fine-tuning solo tomó cinco minutos, vemos una mejora dramática en el rendimiento en el conjunto de datos de oraciones aleatorias:

Figura 9: Distribución de Similitud por Longitud de Oración para Oraciones Mezcladas con jina-embeddings-v3 y bge-base-en-1.5 (ajustado).

También vemos mejoras en los casos direccionales, temporales, causales y comparativos. El modelo muestra una mejora sustancial en el rendimiento reflejada por una caída en la similitud coseno promedio. La mayor ganancia de rendimiento se da en el caso de negación, debido a que nuestro conjunto de datos de fine-tuning contiene 10,000 ejemplos de entrenamiento de negación.

Categoría Ejemplo - Izquierda Ejemplo - Derecha Similitud Coseno Media (jina) Similitud Coseno Media (jina-ft) Similitud Coseno Media (bge) Similitud Coseno Media (bge-ft)
Direccional She flew from Paris to Tokyo. She drove from Tokyo to Paris 0.9439 0.8650 0.9319 0.8674
Temporal She ate dinner before watching the movie She watched the movie before eating dinner 0.9833 0.9263 0.9683 0.9331
Causal The rising temperature melted the snow The melting snow cooled the temperature 0.8998 0.7937 0.8874 0.8371
Comparativo Coffee tastes better than tea Tea tastes better than coffee 0.9457 0.8759 0.9723 0.9030
Negación He is standing by the table He is standing far from the table 0.9116 0.4478 0.8329 0.4329

tagConclusión

En esta publicación, profundizamos en los desafíos que enfrentan los modelos de embedding de texto, especialmente su dificultad para manejar efectivamente el orden de las palabras. Para desglosarlo, hemos identificado cinco tipos principales de fallas: Direccional, Temporal, Causal, Comparativo y Negación. Estos son los tipos de consultas donde el orden de las palabras realmente importa, y si tu caso de uso involucra alguno de estos, vale la pena conocer las limitaciones de estos modelos.

También realizamos un experimento rápido, expandiendo un conjunto de datos centrado en la negación para cubrir las cinco categorías de fallas. Los resultados fueron prometedores: el fine-tuning con "negativos difíciles" cuidadosamente seleccionados mejoró la capacidad del modelo para reconocer qué elementos pertenecen juntos y cuáles no. Dicho esto, aún hay más trabajo por hacer. Los próximos pasos incluyen profundizar en cómo el tamaño y la calidad del conjunto de datos afectan el rendimiento.

Categorías:
Blog de tecnología
rss_feed
Oficinas
location_on
Sunnyvale, California
710 Lakeway Dr, Ste 200, Sunnyvale, CA 94085, EE. UU.
location_on
Berlín, Alemania (sede central)
Prinzessinnenstraße 19-20, 10969 Berlín, Alemania
location_on
Beijing, China
Piso 5, Edificio 6, No.48 Haidian West St. Pekín, China
location_on
Shenzhen, China
Piso 402, Edificio de Tecnología Fu'an, Shenzhen, China
Fundación de búsqueda
Búsqueda profunda
Lector
Incrustaciones
reclasificador
Clasificador
Segmentador
Documentación API
Obtener la clave API de Jina
Límite de velocidad
Estado de la API
Compañía
Sobre nosotros
Contactar con ventas
Sala de prensa
Programa de prácticas
Únete a nosotros
open_in_new
Descargar logotipo
open_in_new
Términos
Seguridad
Términos y condiciones
Privacidad
Administrar cookies
email
Jina AI © 2020-2025.