Technischer Überblick
KI-Architektur
Compass nutzt agentische Workflows, um mit Nutzern zu interagieren, Informationen zu sammeln und ihre Fähigkeiten zu identifizieren.
Compass ahmt nach, wie ein Mensch ein Gespräch und die daraus resultierenden Aufgaben angehen würde, und fungiert als übergeordneter Agent, der sich in kleinere Agenten aufteilt, von denen jeder eigene Verantwortlichkeiten und Ziele hat.
Jeder Agent innerhalb von Compass hat eine spezifische Verantwortung und führt mehrere Aufgaben aus, um sein Ziel zu erreichen. Ein Agent könnte beispielsweise mit einem Nutzer sprechen, um bestimmte Informationen zu sammeln, diese Informationen zu verarbeiten und sie für die Verwendung durch einen anderen Agenten aufzubereiten.
Agenten behalten einen internen Zustand bei, der es ihnen ermöglicht, eine Strategie zur Erreichung ihres Ziels anzuwenden, und haben Zugriff auf den Gesprächsverlauf des Nutzers sowie auf Werkzeuge, die auf LLM-Prompts basieren (oder nicht). Diese Werkzeuge könnten für Aufgaben wie die Unterhaltung mit dem Nutzer, die Extraktion benannter Entitäten, Klassifikation oder die Transformation von Nutzereingaben verwendet werden.
Agenten werden durch eine Kombination aus Anweisungen (Prompts) und ihrem internen Zustand geleitet. Die Prompts können je nach Zustand des Agenten variieren, um ihnen bei der Erfüllung ihrer Aufgaben zu helfen.
Sobald Compass alle notwendigen Informationen vom Nutzer gesammelt hat, verarbeitet es die Daten, um die wichtigsten Fähigkeiten des Nutzers zu identifizieren. Diese Identifizierung erfolgt durch eine mehrstufige Pipeline, die verschiedene Techniken einsetzt, wie Clustering, Klassifikation und Entity Linking an eine Berufs-/Fähigkeiten-Taxonomie.
Compass nutzt LLMs auf vier Arten:
Gesprächsbeteiligung: Im Gegensatz zu typischen Anwendungen, bei denen das LLM auf Nutzerfragen antwortet, kehrt Compass diese Interaktion um. Es generiert Fragen, um ein gelenktes und fundiertes Gespräch zu führen.
Aufgaben der natürlichen Sprachverarbeitung: Compass verwendet das LLM für Aufgaben wie Clustering, Extraktion benannter Entitäten und Klassifikation und verarbeitet Nutzereingaben effizient, ohne dass kostspieliges und zeitaufwändiges Modelltraining oder Fine-Tuning erforderlich ist.
Erklärbarkeit und Nachvollziehbarkeit: Das LLM liefert Begründungen für bestimmte Ausgaben und ermöglicht Erklärungen, die entdeckte Fähigkeiten mit den Eingaben des Nutzers verknüpfen. Diese Funktion, die auf einer Variation der Chain-of-Thought-Argumentation basiert, ist besonders bemerkenswert — nicht nur wegen der gebotenen Fähigkeit, sondern auch, weil sie ein unbeabsichtigtes Ergebnis war. Sie trat auf, während versucht wurde, ein anderes Problem zu lösen: die Verbesserung der Genauigkeit der LLM-Aufgaben
Filterung der Taxonomieausgabe: Das LLM filtert relevante Fähigkeiten und Berufe, die mit dem ESCO-Modell verbunden sind, aus der Konversationsausgabe. Durch die Nutzung seiner fortgeschrittenen Schlussfähigkeiten verarbeitet das LLM große Textmengen effizient und identifiziert die relevantesten Entitäten. Dieser Ansatz kombiniert traditionelles Entity Linking über semantische Suche mit LLM-basierter Filterung und schafft so eine hybride Lösung.
Compass ist auf mehreren Ebenen geerdet und vor Halluzinationen geschützt:
Aufgabendekomposition: Kleinere, handhabbare Aufgaben werden einzelnen Agenten mit spezifischen LLM-Prompts zugewiesen.
Zustandsinduzierte Anweisungen: Agenten verwenden ihren internen Zustand, um während der Nutzerinteraktionen zielgerichtete Anweisungen zu generieren, die das Gespräch auf ein bestimmtes Ziel ausrichten. Dieser Ansatz reduziert die Größe des Prompts, indem nur relevante Segmente einbezogen werden, wodurch die Wahrscheinlichkeit steigt, dass das LLM die Anweisungen genau befolgt und so das Risiko von Halluzinationen verringert wird.
Gesteuerte Ausgabe: Anweisungen werden sorgfältig formuliert, um die Wahrscheinlichkeit relevanter Antworten zu erhöhen. Techniken umfassen:
One- und Few-Shot-Lernen
Chain of Thought
Retrieval Augmented Generation
JSON-Schemas mit Validierung und Wiederholungen
Anordnung von Ausgabesegmenten zur Ausrichtung an semantischen Abhängigkeiten
Zustandsleitplanken: Einfache, regelbasierte Entscheidungen werden wann immer möglich getroffen, um die Abhängigkeit vom LLM zu verringern und potenzielle Ungenauigkeiten zu minimieren.
Taxonomie-Verankerung: Durch die Verknüpfung von Entitäten mit einer vordefinierten Berufs-/Fähigkeiten-Taxonomie stellt Compass sicher, dass identifizierte Fähigkeiten in einem relevanten und genauen Bereich verbleiben.
Evaluation
Zur Bewertung von Compass folgten wir der unten beschriebenen Strategie:
Strenge Embeddings-Evaluation: Wir haben verschiedene Strategien zur Erzeugung von Embeddings aus den Taxonomie-Entitäten rigoros evaluiert. Unsere Überlegungen umfassten die Identifikation, welche Eigenschaften der Entitäten in die Embeddings-Erzeugung einbezogen werden sollten, sowie die Bestimmung der optimalen Anzahl von Entitäten, um Genauigkeit und Präzision auszubalancieren. Für die Tests verwendeten wir etablierte Datensätze aus der Literatur und generierten synthetische Daten, um Compass-Nutzeranfragen zu simulieren.
Isolierte Komponententests: Die Werkzeuge jedes Agenten wurden einzeln mit spezifischen Eingaben und erwarteten Ausgaben bewertet. Beispielsweise wurden Klassifikationskomponenten mit bekannten Eingaben getestet, um genaue Label-Zuweisungen zu verifizieren.
Skriptbasierte Gespräche: Gesprächsagenten wurden mit vordefinierten Dialogen getestet, wobei die Ausgaben entweder von automatisierten Bewertungswerkzeugen (anderen LLMs) oder von menschlichen Prüfern bewertet wurden.
Simulierte Nutzerinteraktionen: Compass wurde in End-to-End-Szenarien getestet, indem Nutzerinteraktionen durch ein LLM simuliert wurden. Dem simulierten Nutzer wurde eine Persona basierend auf unserer UX-Forschung und zusätzlichen Anweisungen gegeben, um bestimmte Interessensfälle abzudecken. Diese Gespräche wurden dann von automatisierten Bewertungswerkzeugen (anderen LLMs) oder menschlichen Prüfern auf Qualität und Relevanz bewertet.
Nutzertests und Spuranalyse: In kleinerem Umfang wurden reale Nutzertests durchgeführt. Durch Zurückverfolgen der Top-Skill-Ausgaben zu den Eingaben des Nutzers konnten menschliche Prüfer die Leistung bestimmter Agenten innerhalb von Compass beurteilen.
Die zentrale Rolle einer Taxonomie
Tabiyas inklusive Taxonomie spielt eine zentrale Rolle in Compass. Sie verankert die Aufgaben des LLM, aber es gibt mehrere zusätzliche Aspekte, die erwähnenswert sind:
Standardisierung: Die identifizierten Fähigkeiten sind mit einer standardisierten Taxonomie verknüpft, was Interpretation und Vergleich erleichtert. Die Konzepte hinter diesen Fähigkeiten sind gut definiert und können erklärt werden, wodurch Klarstellung und Disambiguierung möglich sind.
Kanonisierung: Erkannte Fähigkeiten werden mit kanonischen Namen und UUIDs aufgelistet, was eine konsistente Referenzierung über verschiedene Erfahrungen und Anwendungen hinweg ermöglicht.
Netzwerkstruktur: Die Taxonomie modelliert den Arbeitsmarkt, indem sie Berufe mit Fähigkeiten verknüpft und so einen Wissensgraphen bildet, der zusätzliche Einblicke für Nutzer bieten kann.
Unentdeckte Ökonomie: Die Taxonomie wurde erweitert, um Aktivitäten aus der unentdeckten Ökonomie einzubeziehen, sodass junge Frauen und erstmalige Arbeitssuchende den Eintritt in den Arbeitsmarkt erleichtert wird.
Lokalisierung: Eine Taxonomie kann den spezifischen Kontext eines Landes berücksichtigen. Dazu gehören berufsbezogene Besonderheiten bestimmter Regionen, alternative Bezeichnungen für Berufe, die regionalspezifisch sind, und unterschiedliche Fähigkeitsanforderungen für denselben Beruf in verschiedenen Ländern.
Klassifikation der Arbeitsarten: Alle Erfahrungen werden in vier Typen klassifiziert (abhängige Beschäftigung, Selbstständigkeit, unbezahlte Praktikumsarbeit und unentdeckte Arbeit), was eine gezieltere Erkundung der Fähigkeiten der Arbeitssuchenden ermöglicht.
Technische Stack-Übersicht
Sprachmodelle und Embeddings: Compass nutzt das
gemini-2.0-flash-001Modell für seine LLM-Fähigkeiten und dastext-embedding-005Modell für Embeddings. Dasgemini-2.5-pro-preview-05-06Modell wird für den LLM-Auto-Evaluator verwendet. Das Gemini-Modell wurde wegen seines ausgewogenen Verhältnisses aus Aufgaben-Genauigkeit, Inferenzgeschwindigkeit, Verfügbarkeitsrate und Kosten ausgewählt.Backend-Technologien: Entwickelt mit
Python 3.11,FastAPI 0.111, undPydantic 2.7für eine leistungsfähige serverseitige Umgebung. Ein asynchrones Framework eignete sich gut für den Anwendungsfall, da LLM-Inferenzendpunkte langsam sein können. Python wurde wegen seiner umfangreichen AI/ML-Bibliotheksunterstützung gewählt und weil es die Einbindung von ML-Wissenschaftlern in das Entwicklungsteam erleichterte.Frontend-Technologien: Die UI, aufgebaut mit
React.js 19,TypeScript 5, undMaterial UI 5, ist für Mobilgeräte optimiert, funktioniert aber auch gut auf Tablets und Desktops. Zusätzlich verwenden wirStorybook 8.1um UI-Komponenten isoliert zu präsentieren, visuell zu inspizieren und zu testen.Datenpersistenz: Daten werden sicher mit
MongoDB Atlasgespeichert, das Vektor-Suchfunktionen umfasst. Unser Team war bereits mitMongoDBvertraut, und die Taxonomie lag bereits inMongoDB Atlasvor, daher war es eine natürliche Wahl.Bereitstellung: Die gesamte Anwendung ist auf
Google Cloud Platform (GCP)bereitgestellt und gewährleistet hohe Verfügbarkeit und Skalierbarkeit. Wir verwendenPulumium nahezu die gesamte Infrastruktur bereitzustellen, da es uns ermöglicht, Bereitstellungscode inPythonzu schreiben, was mit der restlichen Backend-Entwicklung übereinstimmt. Zusätzlich war unser Team bereits erfahren mitPulumi, was es zu einer naheliegenden Wahl machte. Zur Fehlerverfolgung und Überwachung der Anwendungsleistung verwenden wirSentry.
Zuletzt aktualisiert