Entrenamos y publicamos un modelo de resaltado semántico bilingüe para la RAG de producción y la búsqueda de IA
Tanto si estás creando una búsqueda de productos, una canalización RAG o un agente de IA, los usuarios necesitan lo mismo: una forma rápida de ver por qué un resultado es relevante. El resaltado ayuda marcando el texto exacto que apoya la coincidencia, para que los usuarios no tengan que escanear todo el documento.
La mayoría de los sistemas siguen basándose en el resaltado por palabras clave. Si un usuario busca "rendimiento del iPhone", el sistema resalta los tokens exactos "iPhone" y "rendimiento". Pero esto se rompe en cuanto el texto expresa la misma idea utilizando una redacción diferente. Una descripción como "chip A15 Bionic, más de un millón en pruebas de rendimiento, fluido y sin lag" se refiere claramente al rendimiento, pero no se resalta nada porque las palabras clave nunca aparecen.
El resaltado semántico resuelve este problema. En lugar de coincidir con cadenas exactas, identifica tramos de texto que están semánticamente alineados con la consulta. Para los sistemas RAG, la búsqueda por IA y los agentes -en los que la relevancia depende del significado y no de la forma superficial-, esto aporta explicaciones más precisas y fiables de por qué se ha recuperado un documento.
Sin embargo, los métodos de resaltado semántico existentes no están diseñados para cargas de trabajo de IA de producción. Tras evaluar todas las soluciones disponibles, descubrimos que ninguna ofrecía la precisión, latencia, cobertura multilingüe o robustez necesarias para los procesos RAG, los sistemas de agentes o las búsquedas web a gran escala. Así que entrenamos nuestro propio modelo de resaltado semántico bilingüe y lo pusimos a disposición del público.
Nuestro modelo de resaltado semántico: zilliz/semantic-highlight-bilingual-v1
Díganos lo que piensa: únase a nuestro Discord, síganos en LinkedIn o reserve una sesión de 20 minutos de Milvus Office Hours con nosotros.
Cómo funciona el resaltado basado en palabras clave y por qué falla en los sistemas de inteligencia artificial modernos
Lossistemas de búsqueda tradicionales implementan el resaltado a través de la simple concordancia de palabras clave. Cuando se obtienen resultados, el motor localiza las posiciones exactas de los tokens que coinciden con la consulta y las envuelve en marcas (normalmente etiquetas <em> ), dejando que el frontend se encargue de resaltarlas. Esto funciona bien cuando los términos de la consulta aparecen textualmente en el texto.
El problema es que este modelo asume que la relevancia está ligada a la coincidencia exacta de palabras clave. Una vez que se rompe esa suposición, la fiabilidad cae rápidamente. Cualquier resultado que exprese la idea correcta con una redacción diferente acabará sin destacar, aunque el paso de recuperación haya sido correcto.
Esta debilidad se hace evidente en las aplicaciones modernas de IA. En las canalizaciones RAG y los flujos de trabajo de los agentes de IA, las consultas son más abstractas, los documentos son más largos y la información relevante puede no reutilizar las mismas palabras. El resaltado basado en palabras clave ya no puede mostrar a los desarrolladores -o a los usuarios finales- dóndeestá realmente la respuesta, lo que hace que el sistema en general parezca menos preciso incluso cuando la recuperación funciona según lo previsto.
Supongamos que un usuario pregunta: "¿Cómo puedo mejorar la eficiencia de ejecución del código Python?". El sistema recupera un documento técnico de una base de datos vectorial. El resaltado tradicional sólo puede marcar coincidencias literales como "Python", "código", "ejecución" y "eficiencia".
Sin embargo, las partes más útiles del documento podrían ser:
Utilizar operaciones vectorizadas NumPy en lugar de bucles explícitos
Evitar la creación repetida de objetos dentro de bucles
Estas frases responden directamente a la pregunta, pero no contienen ninguno de los términos de la consulta. En consecuencia, el resaltado tradicional falla por completo. Puede que el documento sea relevante, pero el usuario sigue teniendo que escanearlo línea por línea para localizar la respuesta real.
El problema se acentúa aún más con los agentes de IA. A menudo, la consulta de búsqueda de un agente no es la pregunta original del usuario, sino una instrucción derivada producida a través del razonamiento y la descomposición de tareas. Por ejemplo, si un usuario pregunta : "¿Puedes analizar las tendencias recientes del mercado?", el agente podría generar una consulta como "Recuperar datos de ventas de electrónica de consumo del cuarto trimestre de 2024, tasas de crecimiento interanuales, cambios en la cuota de mercado de los principales competidores y fluctuaciones de los costes de la cadena de suministro".
Esta consulta abarca múltiples dimensiones y codifica una intención compleja. Sin embargo, el resaltado tradicional basado en palabras clave sólo puede marcar mecánicamente coincidencias literales como "2024", "datos de ventas" o "tasa de crecimiento".
Mientras tanto, los datos más valiosos pueden ser de este tipo:
La serie iPhone 15 impulsó una recuperación más amplia del mercado.
Las limitaciones de suministro de chips elevaron los costes un 15
Puede que estas conclusiones no compartan ni una sola palabra clave con la consulta, aunque sean exactamente lo que el agente está intentando extraer. Los agentes necesitan identificar rápidamente la información realmente útil a partir de grandes volúmenes de contenido recuperado, y el resaltado basado en palabras clave no ofrece ninguna ayuda real.
Qué es el resaltado semántico y cuáles son los puntos débiles de las soluciones actuales
El resaltado semántico se basa en la misma idea que subyace a la búsqueda semántica: búsqueda basada en el significado y no en las palabras exactas. En la búsqueda semántica, los modelos de incrustación convierten el texto en vectores, de modo que un sistema de búsqueda (normalmente respaldado por una base de datos vectorial como Milvus) puederecuperar pasajes que transmiten la misma idea que la consulta, aunque la redacción sea diferente. El resaltado semántico aplica este principio con mayor precisión. En lugar de marcar los resultados literales de las palabras clave, destaca los espacios específicos dentro de un documento que son semánticamente relevantes para la intención del usuario.
Este enfoque resuelve un problema central del resaltado tradicional, que sólo funciona cuando los términos de la consulta aparecen textualmente. Si un usuario busca "rendimiento del iPhone", el resaltado basado en palabras clave ignora frases como "chip A15 Bionic", "más de un millón en pruebas comparativas" o "fluido sin lag", aunque estas líneas respondan claramente a la pregunta. El resaltado semántico capta estas conexiones basadas en el significado y muestra las partes del texto que realmente interesan a los usuarios.
En teoría, se trata de un problema sencillo de correspondencia semántica. Los modelos modernos de incrustación ya codifican bien la similitud, por lo que las piezas conceptuales ya están en su sitio. El reto viene de las limitaciones del mundo real: el resaltado se produce en cada consulta, a menudo a través de muchos documentos recuperados, lo que hace que la latencia, el rendimiento y la robustez entre dominios sean requisitos no negociables. Los grandes modelos lingüísticos son sencillamente demasiado lentos y caros para funcionar en esta ruta de alta frecuencia.
Por eso, la práctica del resaltado semántico requiere un modelo ligero y especializado, lo suficientemente pequeño como para integrarse en la infraestructura de búsqueda y lo suficientemente rápido como para devolver resultados en unos pocos milisegundos. Aquí es donde la mayoría de las soluciones existentes fallan. Los modelos pesados ofrecen precisión, pero no pueden funcionar a gran escala; los modelos ligeros son rápidos, pero pierden precisión o fallan con datos multilingües o específicos de un dominio.
opensearch-semantic-highlighter
El año pasado, OpenSearch lanzó un modelo dedicado al resaltado semántico: opensearch-semantic-highlighter-v1. Aunque es un intento significativo de resolver el problema, tiene dos limitaciones críticas.
Ventana de contexto pequeña: El modelo se basa en una arquitectura BERT y admite un máximo de 512 tokens, unos 300-400 caracteres chinos o 400-500 palabras inglesas. En el mundo real, las descripciones de productos y los documentos técnicos suelen abarcar miles de palabras. El contenido más allá de la primera ventana simplemente se trunca, lo que obliga al modelo a identificar lo más destacado basándose sólo en una pequeña fracción del documento.
Escasa generalización fuera del dominio: El modelo sólo funciona bien en distribuciones de datos similares a las de su conjunto de entrenamiento. Cuando se aplica a datos fuera del dominio -como cuando se utiliza un modelo entrenado en artículos de noticias para destacar contenidos de comercio electrónico o documentación técnica-, el rendimiento se degrada drásticamente. En nuestros experimentos, el modelo alcanza una puntuación F1 de alrededor de 0,72 en datos dentro del dominio, pero cae a aproximadamente 0,46 en conjuntos de datos fuera del dominio. Este nivel de inestabilidad es problemático para la producción. Además, el modelo no es compatible con el chino.
Provenza / XProvence
Provence es un modelo desarrollado por Naver que se entrenó inicialmente para la poda de contextos,una tarea estrechamente relacionada con el resaltado semántico.
Ambas tareas se basan en la misma idea subyacente: utilizar la concordancia semántica para identificar el contenido relevante y filtrar las partes irrelevantes. Por esta razón, Provence puede reutilizarse para el resaltado semántico con relativamente poca adaptación.
Provence es un modelo exclusivamente inglés y funciona razonablemente bien en ese entorno. XProvence es su variante multilingüe, compatible con más de una docena de idiomas, incluidos el chino, el japonés y el coreano. A primera vista, esto hace que XProvence parezca un buen candidato para escenarios de resaltado semántico bilingüe o multilingüe.
En la práctica, sin embargo, tanto Provence como XProvence presentan varias limitaciones notables:
Rendimiento más débil en inglés en el modelo multilingüe: XProvence no iguala el rendimiento de Provence en las pruebas de referencia en inglés. Se trata de una solución de compromiso habitual en los modelos multilingües: la capacidad se reparte entre las distintas lenguas, lo que a menudo se traduce en un menor rendimiento en lenguas con muchos recursos, como el inglés. Esta limitación es importante en sistemas reales en los que el inglés sigue siendo la carga de trabajo principal o dominante.
Rendimiento limitado en chino: XProvence admite muchos idiomas. Durante la formación multilingüe, los datos y la capacidad del modelo se reparten entre los distintos idiomas, lo que limita la especialización del modelo en uno solo. Como resultado, su rendimiento en chino es sólo marginalmente aceptable y a menudo insuficiente para los casos de uso de resaltado de alta precisión.
Desajuste entre los objetivos de poda y de resaltado: Provence está optimizado para la poda contextual, en la que la prioridad es el recuerdo: conservar la mayor cantidad posible de contenido potencialmente útil para evitar la pérdida de información crítica. El resaltado semántico, por el contrario, hace hincapié en la precisión: resaltar sólo las frases más relevantes, no grandes porciones del documento. Cuando se aplican modelos provenzales al resaltado, este desajuste suele dar lugar a resaltados demasiado amplios o ruidosos.
Licencias restrictivas: Tanto Provence como XProvence se distribuyen bajo licencia CC BY-NC 4.0, que no permite el uso comercial. Esta restricción por sí sola los hace inadecuados para muchos despliegues de producción.
Open Provence
Open Provence es un proyecto impulsado por la comunidad que reimplementa el proceso de formación de Provence de forma abierta y transparente. No sólo proporciona scripts de entrenamiento, sino también flujos de trabajo de procesamiento de datos, herramientas de evaluación y modelos preentrenados a múltiples escalas.
Una ventaja clave de Open Provence es su licencia MIT permisiva. A diferencia de Provence y XProvence, se puede utilizar con seguridad en entornos comerciales sin restricciones legales, lo que lo hace atractivo para los equipos orientados a la producción.
Dicho esto, Open Provence actualmente sólo soporta inglés y japonés, lo que lo hace inadecuado para nuestros casos de uso bilingüe.
Entrenamos y desarrollamos un modelo de resaltado semántico bilingüe
Un modelo de resaltado semántico diseñado para cargas de trabajo del mundo real debe ofrecer algunas capacidades esenciales:
Alto rendimiento multilingüe
Una ventana de contexto lo suficientemente grande como para soportar documentos largos
Generalización robusta fuera del dominio
Alta precisión en las tareas de resaltado semántico
Una licencia permisiva y de fácil uso (MIT o Apache 2.0).
Tras evaluar las soluciones existentes, descubrimos que ninguno de los modelos disponibles cumplía los requisitos necesarios para su uso en producción. Así que decidimos entrenar nuestro propio modelo de resaltado semántico: zilliz/semantic-highlight-bilingual-v1.
Para conseguir todo esto, adoptamos un enfoque sencillo: utilizar grandes modelos lingüísticos para generar datos etiquetados de alta calidad y, a continuación, entrenar un modelo de resaltado semántico ligero sobre ellos utilizando herramientas de código abierto. Esto nos permite combinar la fuerza de razonamiento de los LLM con la eficiencia y la baja latencia necesarias en los sistemas de producción.
La parte más difícil de este proceso es la construcción de datos. Durante la anotación, pedimos a un LLM (Qwen3 8B) que nos proporcione no sólo los tramos destacados, sino también todo el razonamiento que hay detrás de ellos. Esta señal de razonamiento adicional produce una supervisión más precisa y coherente y mejora significativamente la calidad del modelo resultante.
A grandes rasgos, el proceso de anotación funciona de la siguiente manera: razonamiento LLM → etiquetas destacadas → filtrado → muestra de entrenamiento final.
Este diseño ofrece tres ventajas concretas en la práctica:
Mayor calidad de etiquetado: Se pide al modelo que primero piense y luego responda. Este paso intermedio de razonamiento sirve como autocomprobación integrada, reduciendo la probabilidad de etiquetas superficiales o incoherentes.
Mayor capacidad de observación y depuración: Como cada etiqueta va acompañada de un rastro de razonamiento, los errores se hacen visibles. Esto facilita el diagnóstico de los casos de fallo y el ajuste rápido de los avisos, las reglas o los filtros de datos en el proceso.
Datos reutilizables: Las trazas de razonamiento proporcionan un contexto valioso para futuros reetiquetados. A medida que cambian los requisitos, los mismos datos pueden revisarse y refinarse sin tener que empezar de cero.
Con este proceso generamos más de un millón de muestras de entrenamiento bilingües, divididas a partes iguales entre inglés y chino.
Para el entrenamiento del modelo, partimos de BGE-M3 Reranker v2 (0,6B parámetros, ventana de contexto de 8.192 tokens), adoptamos el marco de entrenamiento Open Provence y entrenamos durante tres épocas en GPUs 8× A100, completando el entrenamiento en aproximadamente cinco horas.
Profundizaremos en estas decisiones técnicas -incluyendo por qué nos basamos en trazas de razonamiento, cómo seleccionamos el modelo base y cómo se construyó el conjunto de datos- en un post posterior.
Evaluación comparativa del modelo de resaltado semántico bilingüe de Zilliz
Para evaluar el rendimiento en el mundo real, evaluamos varios modelos de resaltado semántico en un conjunto de datos muy variado. Las pruebas comparativas abarcan escenarios dentro y fuera del dominio, en inglés y chino, para reflejar la variedad de contenidos que se encuentran en los sistemas de producción.
Conjuntos de datos
En nuestra evaluación utilizamos los siguientes conjuntos de datos:
MultiSpanQA (inglés): un conjunto de datos de respuesta a preguntas multi-span dentro del dominio.
WikiText-2 (inglés): un corpus de Wikipedia fuera del dominio.
MultiSpanQA-ZH (chino): conjunto de datos chino de respuesta a preguntas multipanorama.
WikiText-2-ZH (chino): un corpus Wikipedia chino fuera del dominio.
Modelos comparados
Los modelos incluidos en la comparación son
Modelos Open Provence
Provence / XProvence (publicado por Naver)
Resaltador semántico OpenSearch
Modelo de resaltado semántico bilingüe de Zilliz
Resultados y análisis
Conjuntos de datos en inglés:
Datos en chino:
En todas las pruebas de referencia bilingües, nuestro modelo alcanza puntuaciones F1 medias de última generación, superando a todos los modelos y enfoques evaluados anteriormente. Las ganancias son especialmente pronunciadas en los conjuntos de datos chinos, donde nuestro modelo supera significativamente a XProvence, el único otro modelo evaluado con soporte chino.
Y lo que es más importante, nuestro modelo ofrece un rendimiento equilibrado tanto en inglés como en chino, una propiedad que las soluciones existentes tienen dificultades para alcanzar:
Open Provence sólo es compatible con el inglés
XProvence sacrifica el rendimiento en inglés en comparación con Provence.
OpenSearch Semantic Highlighter carece de soporte para chino y muestra una generalización débil.
Como resultado, nuestro modelo evita las habituales disyuntivas entre cobertura lingüística y rendimiento, lo que lo hace más adecuado para las implantaciones bilingües del mundo real.
Un ejemplo concreto en la práctica
Más allá de las puntuaciones de referencia, a menudo resulta más revelador examinar un ejemplo concreto. El siguiente caso muestra cómo se comporta nuestro modelo en un escenario real de resaltado semántico y por qué importa la precisión.
Consulta: ¿Quién escribió la película "Matar a un ciervo sagrado"?
Contexto (5 frases):
The Killing of a Sacred De er es una película de suspense psicológico de 2017 dirigida por Yorgos Lanthimos, con guion escrito por Lanthimos y Efthymis Filippou.
La película está protagonizada por Colin Farrell, Nicole Kidman, Barry Keoghan, Raffey Cassidy, Sunny Suljic, Alicia Silverstone y Bill Camp.
La historia se basa en la antigua obra griega Ifigenia en Aulis, de Eurípides.
La película narra la historia de un cirujano cardiaco que entabla una amistad secreta con un adolescente relacionado con su pasado.
Le presenta a su familia, tras lo cual comienzan a producirse misteriosas enfermedades.
Destacado correcto: Lafrase 1 es la respuesta correcta, ya que indica explícitamente que el guión fue escrito por Yorgos Lanthimos y Efthymis Filippou.
Este ejemplo contiene una trampa sutil. La frase 3 menciona a Eurípides, el autor de la obra griega original en la que se basa la historia. Sin embargo, la pregunta se refiere a quién escribió la película, no el material original. La respuesta correcta es, por tanto, los guionistas de la película, no el dramaturgo de hace miles de años.
Resultados:
En la tabla siguiente se resume el rendimiento de los distintos modelos en este ejemplo.
| Modelo | Respuesta correcta identificada | Resultado |
|---|---|---|
| Nuestro (M3 bilingüe) | ✓ | Seleccionó la frase 1 (correcta) y la frase 3 |
| XProvenza v1 | ✗ | Seleccionó sólo la frase 3, falló la respuesta correcta |
| XProvence v2 | ✗ | Seleccionó sólo la frase 3, falló la respuesta correcta |
Comparación de la puntuación a nivel de frase
| Frase | La nuestra (M3 bilingüe) | XProvence v1 | XProvence v2 |
|---|---|---|---|
| Frase 1 (guión de película, correcto) | 0.915 | 0.133 | 0.081 |
| Frase 3 (obra de teatro original, distractor) | 0.719 | 0.947 | 0.802 |
Puntos débiles de XProvence
XProvence se siente fuertemente atraído por las palabras clave "Eurípides" y "escribió", asignando a la frase 3 una puntuación casi perfecta (0,947 y 0,802).
Al mismo tiempo, ignora en gran medida la respuesta correcta de la frase 1, asignándole puntuaciones extremadamente bajas (0,133 y 0,081).
Incluso tras reducir el umbral de decisión de 0,5 a 0,2, el modelo sigue sin encontrar la respuesta correcta.
En otras palabras, el modelo se rige principalmente por asociaciones superficiales de palabras clave y no por la intención real de la pregunta.
Diferencias en el comportamiento de nuestro modelo
Nuestro modelo asigna una puntuación alta (0,915) a la respuesta correcta de la frase 1, identificando correctamente a los guionistas de la película.
También asigna una puntuación moderada (0,719) a la frase 3, ya que esa frase sí menciona un concepto relacionado con el guión.
Lo más importante es que la separación es clara y significativa: 0,915 frente a 0,719, una diferencia de casi 0,2.
Este ejemplo pone de manifiesto la fuerza de nuestro método: ir más allá de las asociaciones basadas en palabras clave para interpretar correctamente la intención del usuario. Incluso cuando aparecen varios conceptos de "autor", el modelo destaca sistemáticamente aquel al que se refiere realmente la pregunta.
Compartiremos un informe de evaluación más detallado y otros estudios de casos en un próximo artículo.
Pruébelo y díganos qué le parece
Hemos puesto a disposición del público nuestro modelo de resaltado semántico bilingüe en Hugging Face, con todas las ponderaciones del modelo para que puedas empezar a experimentar de inmediato. Nos encantaría saber qué tal le funciona. Por favor, comparta con nosotros sus comentarios, problemas o ideas de mejora a medida que lo vaya probando.
Paralelamente, estamos trabajando en un servicio de inferencia listo para producción e integrando el modelo directamente en Milvus como una API nativa de Semantic Highlighting. Esta integración ya está en marcha y estará disponible en breve.
El resaltado semántico abre la puerta a una experiencia más intuitiva de la RAG y la IA agéntica. Cuando Milvus recupera varios documentos largos, el sistema puede mostrar inmediatamente las frases más relevantes, dejando claro dónde está la respuesta. Esto no sólo mejora la experiencia del usuario final, sino que también ayuda a los desarrolladores a depurar los procesos de recuperación al mostrar exactamente en qué partes del contexto se basa el sistema.
Creemos que el resaltado semántico se convertirá en una función estándar en la próxima generación de sistemas de búsqueda y GAR. Si tiene ideas, sugerencias o casos de uso para el resaltado semántico bilingüe, únase a nuestro canal de Discord y comparta sus opiniones. También puede reservar una sesión individual de 20 minutos para obtener información, orientación y respuestas a sus preguntas a través de Milvus Office Hours.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



