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 global 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 alcanzar su objetivo. Por ejemplo, un agente podría 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 Compas

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 emplean herramientas basadas en indicaciones de LLM (o no). Estas herramientas podrían usarse para tareas como conversar con el usuario, extracción de entidades nombradas, 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 en función del estado del agente para ayudarles a cumplir sus tareas.

Una vez que Compass ha recopilado toda la información necesaria del usuario, procesa los datos para identificar las principales habilidades del usuario. Esta identificación se realiza mediante una canalización de múltiples etapas que emplea diversas técnicas, como clustering, clasificación y enlace de entidades a 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 con fundamento conversación.

  2. Tareas de procesamiento de lenguaje natural: Compass utiliza el LLM para tareas como clustering, extracción de entidades nombradas y clasificación, manejando las entradas de los usuarios de manera eficiente sin la necesidad de costosos y prolongados entrenamientos o afinamientos del modelo.

  3. Explicabilidad y trazabilidad: El LLM proporciona razonamiento para salidas específicas, permitiendo explicaciones que vinculan las habilidades detectadas con la entrada del usuario. Esta característica, que se basa en una variación del razonamiento de Chain of Thought, es especialmente notable—no solo por la capacidad que ofrece sino también porque fue un resultado no planificado. Surgió al intentar 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 las 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 eficientemente grandes cantidades de texto e identifica las entidades más pertinentes. Este enfoque combina el enlace tradicional de entidades mediante búsqueda semántica con el filtrado basado en LLM, creando una solución híbrida.

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

  • 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 segmentos relevantes, aumentando la probabilidad de que el LLM siga las instrucciones con precisión y reduciendo así el riesgo de alucinaciones.

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

    • Aprendizaje one-shot y few-shot

    • Chain of Thought

    • Generación aumentada por recuperación

    • Esquemas JSON con validación y reintentos

    • Ordenar segmentos de salida para alinearlos con dependencias semánticas

  • Guardarraíles de estado: Se toman decisiones simples basadas en reglas siempre que sea posible, reduciendo la dependencia del LLM y minimizando 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 deberían incluirse en la generación de embeddings, así como determinar el número óptimo de entidades para equilibrar la precisión y la 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 guionizadas: Los agentes conversacionales se probaron usando diálogos predefinidos, con 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 usuario impulsadas por un LLM. Al usuario simulado se le asignó una persona basada en nuestra investigación de UX y se le dieron instrucciones adicionales para cubrir casos específicos de interés. Estas conversaciones luego fueron evaluadas en cuanto a calidad y relevancia por evaluadores automatizados (otros LLM) o por inspectores humanos.

  • Pruebas de usuario y análisis de trazas: A menor escala, se realizaron pruebas con usuarios reales. Al rastrear las salidas de las principales 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 desempeña 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 están vinculadas a una taxonomía estándar, lo que facilita la interpretación y la comparación. Los conceptos detrás de estas habilidades están bien definidos y pueden explicarse, lo que permite aclaraciones y desambiguaciones.

  • Canonicación: Las habilidades exploradas se enumeran con nombres canónicos y UUIDs, lo que permite referencias consistentes en 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 proporcionar información adicional 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 quienes buscan trabajo por primera vez 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 de ocupaciones que son específicos de una región y requisitos de habilidad 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 asalariado, trabajo por cuenta propia, trabajo de aprendiz no remunerado 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 asíncrono se adaptó bien al caso de uso, ya que los endpoints de inferencia de LLM pueden ser lentos. Python fue elegido 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 en aislamiento.

  • 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 el 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 de la nube

Última actualización