Resumen técnico

Arquitectura de IA

Compass utiliza flujos de trabajo agentivos para interactuar con los usuarios, recopilar información e identificar sus habilidades.

Compass imita cómo un humano abordaría una conversación y las tareas resultantes, actuando como un agente general que se descompone en agentes más pequeños, cada uno con sus propias responsabilidades y objetivos.

Cada agente dentro de Compass tiene una responsabilidad específica y realiza múltiples tareas para lograr su objetivo. Por ejemplo, un agente puede conversar con un usuario para recopilar información específica, procesar esa información y prepararla para su uso por otro agente.

Visión general de la arquitectura de IA de Compass

Los agentes mantienen un estado interno que les permite aplicar una estrategia para lograr su objetivo, y tienen acceso al historial de conversación del usuario y utilizan herramientas basadas en prompts de LLM (o no). Estas herramientas podrían usarse para tareas como conversar con el usuario, extracción de entidades con nombre, clasificación o transformación de la entrada del usuario.

Los agentes se guían por una combinación de instrucciones (prompts) y su estado interno. Los prompts pueden variar según el estado del agente para ayudarlos a cumplir sus tareas.

Una vez que Compass ha reunido toda la información necesaria del usuario, procesa los datos para identificar las principales habilidades del usuario. Esta identificación se realiza a través de una canalización de múltiples etapas que emplea diversas técnicas, como agrupamiento, clasificación y enlace de entidades con una taxonomía de ocupaciones/habilidades.

Arquitectura de IA detallada con la canalización de habilidades de múltiples etapas

Compass aprovecha los LLM de cuatro maneras:

  1. Compromiso conversacional: A diferencia de las aplicaciones típicas donde el LLM responde a las preguntas del usuario, Compass invierte esta interacción. Genera preguntas para guiar una dirigida y fundamentada conversación.

  2. Tareas de procesamiento de lenguaje natural: Compass utiliza el LLM para tareas como agrupamiento, extracción de entidades con nombre y clasificación, manejando las entradas de los usuarios de manera eficiente sin la necesidad de costoso y lento entrenamiento o ajuste fino del modelo.

  3. Explicabilidad y trazabilidad: El LLM ofrece razonamiento para salidas específicas, permitiendo explicaciones que vinculan las habilidades descubiertas con la entrada del usuario. Esta característica, basada en una variación del razonamiento en cadena de pensamiento (Chain of Thought), es especialmente notable—no solo por la capacidad que ofrece sino también porque fue un resultado no planificado. Surgió mientras se intentaba resolver un problema diferente: mejorar la precisión de las tareas del LLM

  4. Filtrado de la salida de la taxonomía: El LLM filtra habilidades y ocupaciones relevantes conectadas con el modelo ESCO a partir de la salida de la conversación. Aprovechando sus avanzadas capacidades de razonamiento, el LLM procesa de manera eficiente grandes cantidades de texto, identificando las entidades más pertinentes. Este enfoque combina el enlace de entidades tradicional mediante búsqueda semántica con filtrado basado en LLM, creando una solución híbrida.

Compass está fundamentado y protegido contra alucinaciones de múltiples formas:

  • Descomposición de tareas: Se asignan tareas más pequeñas y manejables a agentes individuales con prompts de LLM específicos.

  • Instrucciones inducidas por el estado: Los agentes usan su estado interno para generar instrucciones dirigidas durante las interacciones con el usuario, guiando la conversación hacia un objetivo específico. Este enfoque reduce el tamaño del prompt al incluir solo los segmentos relevantes, aumentando la probabilidad de que el LLM siga las instrucciones con precisión y, por lo tanto, reduciendo el riesgo de alucinaciones.

  • Salida guiada: Las instrucciones se elaboran cuidadosamente para aumentar la probabilidad de respuestas relevantes. Las técnicas incluyen:

    • Aprendizaje one- y few-shot

    • Cadena de pensamiento

    • Generación aumentada por recuperación

    • Esquemas JSON con validación e intentos de reintento

    • Ordenación de segmentos de salida para alinearlos con dependencias semánticas

  • Barrera de seguridad del estado: Se toman decisiones simples basadas en reglas siempre que sea posible, reduciendo la dependencia del LLM y minimizando las posibles inexactitudes.

  • Fundamentación en la taxonomía: Al vincular entidades a una taxonomía predefinida de ocupaciones/habilidades, Compass asegura que las habilidades identificadas permanezcan dentro de un dominio relevante y preciso.

Evaluación

Para evaluar Compass, seguimos la estrategia descrita a continuación:

  • Evaluación rigurosa de embeddings: Evaluamos rigurosamente varias estrategias para generar embeddings a partir de las entidades de la taxonomía. Nuestras consideraciones incluyeron identificar qué propiedades de las entidades deben incluirse en la generación de embeddings, así como determinar el número óptimo de entidades para equilibrar precisión y exactitud. Para las pruebas, utilizamos conjuntos de datos establecidos en la literatura y generamos datos sintéticos para imitar las consultas de los usuarios de Compass.

  • Pruebas de componentes aislados: Las herramientas de cada agente se evaluaron individualmente usando entradas específicas y salidas esperadas. Por ejemplo, los componentes de clasificación se probaron con entradas conocidas para verificar la asignación precisa de etiquetas.

  • Conversaciones guionadas: Los agentes conversacionales se probaron usando diálogos predefinidos, con las salidas evaluadas por evaluadores automatizados (otros LLM) o por inspectores humanos.

  • Interacciones de usuario simuladas: Compass se probó en escenarios de extremo a extremo simulando interacciones de usuarios impulsadas por un LLM. Al usuario simulado se le dio una persona basada en nuestra investigación de UX y instrucciones adicionales para cubrir casos específicos de interés. Estas conversaciones fueron luego evaluadas en cuanto a calidad y relevancia por evaluadores automatizados (otros LLM) o inspectores humanos.

  • Pruebas de usuario y análisis de trazas: A menor escala, se realizaron pruebas con usuarios reales. Trazando las principales salidas de habilidades hasta la entrada del usuario, los inspectores humanos pudieron evaluar el rendimiento de agentes específicos dentro de Compass.

El papel central de una taxonomía

La taxonomía inclusiva de Tabiya juega un papel central en Compass. Fundamenta las tareas del LLM, pero hay varios aspectos adicionales que vale la pena mencionar:

  • Estandarización: Las habilidades identificadas se vinculan a una taxonomía estándar, lo que facilita la interpretación y comparación. Los conceptos detrás de estas habilidades están bien definidos y pueden explicarse, permitiendo la aclaración y desambiguación.

  • Canonización: Las habilidades exploradas se enumeran con nombres canónicos y UUIDs, permitiendo referencias consistentes a través de diferentes experiencias y aplicaciones.

  • Estructura de red: La taxonomía modela el mercado laboral asociando ocupaciones con habilidades, formando un grafo de conocimiento que puede ofrecer conocimientos adicionales a los usuarios.

  • Economía no vista: La taxonomía se ha ampliado para incluir actividades de la economía no vista, empoderando a mujeres jóvenes y a buscadores de empleo primerizos para ingresar al mercado laboral.

  • Localización: Una taxonomía puede considerar el contexto específico de un país. Esto incluye ocupaciones únicas de ciertas regiones, nombres alternativos para ocupaciones que son específicos de una región y requisitos de habilidades variables para la misma ocupación en diferentes países.

  • Clasificación del tipo de trabajo: Todas las experiencias se clasifican en cuatro tipos (empleo remunerado, autoempleo, trabajo no remunerado de formación y trabajo no visto), lo que permite una exploración más dirigida de las habilidades del buscador de empleo.

Resumen de la pila técnica

  • Modelos de lenguaje y embeddings: Compass utiliza el gemini-2.0-flash-001 modelo para sus capacidades de LLM y el text-embedding-005 modelo para embeddings. El gemini-2.5-pro-preview-05-06 modelo se utiliza para el autoevaluador LLM. El modelo Gemini fue elegido por su rendimiento equilibrado en precisión de tareas, velocidad de inferencia, disponibilidad de tasa y costo.

  • Tecnologías de backend: Desarrollado con Python 3.11, FastAPI 0.111, y Pydantic 2.7 para un entorno de servidor de alto rendimiento. Un marco asincrónico se adaptó bien al caso de uso, ya que los endpoints de inferencia de LLM pueden ser lentos. Python se eligió por su amplio soporte de bibliotecas de IA/ML y porque facilitó la integración de científicos de ML en el equipo de desarrollo.

  • Tecnologías de frontend: La interfaz de usuario, construida con React.js 19, TypeScript 5, y Material UI 5, está optimizada para móviles pero funciona bien en tabletas y escritorios. Además, usamos Storybook 8.1 para mostrar, inspeccionar visualmente y probar componentes de la interfaz de usuario de forma aislada.

  • Persistencia de datos: Los datos se almacenan de forma segura usando MongoDB Atlas, que incluye capacidades de búsqueda vectorial. Nuestro equipo ya estaba familiarizado con MongoDB, y la taxonomía ya estaba en MongoDB Atlas, por lo que fue una elección natural.

  • Despliegue: Toda la aplicación se despliega en Google Cloud Platform (GCP), asegurando alta disponibilidad y escalabilidad. Usamos Pulumi para desplegar casi toda la infraestructura, ya que nos permite escribir código de despliegue en Python, alineándose con el resto del desarrollo del backend. Además, nuestro equipo ya tenía experiencia con Pulumi, lo que la convirtió en una elección natural. Para el seguimiento de errores y la monitorización del rendimiento de la aplicación, usamos Sentry.

Arquitectura en la nube

Última actualización