- Canva hat 200 Millionen MAU erreicht, verfügt über mehr als 30 Milliarden Designs und erzeugt etwa 300 neue Designs pro Sekunde
- Für Nutzer wird es damit immer wichtiger, Designs zu durchsuchen und geteilte Dateien zu finden
- In der öffentlichen Suche (Web-/Produktsuche) werden Datensätze auf Basis von Nutzerabfragen und einer festen Menge an Suchobjekten aufgebaut
- Fachkundige Prüfer bewerten die Relevanz jeder Abfrage und jedes Objekts und vergeben Labels
- Die Leistung der Suchmaschine wird mit den Metriken Recall und Precision bewertet
- In der persönlichen Suche können private Designs aus Datenschutzgründen nicht eingesehen werden, und die Daten der Nutzer lassen sich nicht als Evaluationsdatensatz verwenden
- Als Lösung werden generative KI-Modelle (wie GPT-4o) genutzt, um realistische, aber vollständig synthetische Inhalte und Abfragen zu erzeugen
- So lässt sich die Verbesserung der Such-Pipeline bewerten, ohne die Privatsphäre in irgendeiner Weise zu verletzen
Bisheriger Zustand: eingeschränkte Testmethoden
- Bisheriger Testprozess
- Ingenieure nutzten begrenzte Offline-Testverfahren
- Bekannte Problemabfragen wurden in Canva-Konten ausgeführt, um die Leistung vor und nach Codeänderungen zu vergleichen
- Beispiel: Bei Verbesserungen der Rechtschreibkorrektur wurden fehlerhafte Abfragen wie
desgin getestet
- Vor der Änderung: keine Ergebnisse
- Nach der Änderung: Rückgabe von Dokumenten zu
design
- Änderungen, die die Offline-Tests bestanden, gingen in die Phase der Online-Tests über
- Durchführung von A/B-Tests mit Canavas Experiment-Framework
- Vergleich der Sucherfolgsrate zwischen Nutzern mit aktivierter Änderung und Nutzern mit der Standardsuche
- Einschränkungen
- Fehlende statistische Aussagekraft der Offline-Tests
- Mit einer begrenzten Zahl von Abfragen ist es schwer, vielfältiges Suchverhalten abzubilden
- Potenziell negative Auswirkungen auf Nutzer
- Leistungsverschlechterungen, die in Offline-Tests nicht erkannt wurden, könnten in Online-Experimenten sichtbar werden
- Hoher Zeitaufwand für Online-Experimente
- Um statistische Signifikanz zu erreichen, sind mindestens mehrere Tage bis Wochen nötig
- Das begrenzt die Zahl gleichzeitig laufender Experimente und die Geschwindigkeit beim Testen neuer Ideen
Idealer Zustand: Aufbau eines neuen Datensatzes und einer Evaluations-Pipeline
- Ziel: Ingenieure brauchen einen maßgeschneiderten Datensatz und eine Evaluations-Pipeline, mit denen sich Änderungen objektiv bewerten lassen, bevor sie in Online-Tests übergehen
- Zentrale Anforderungen:
- Reproduzierbarkeit: jederzeit dieselben Ergebnisse
- Schnelle Iteration: Ingenieure können Ergebnisse nach Codeänderungen rasch testen und sofort evaluieren, ohne auf ein Production-Deployment warten zu müssen
- Ähnlichkeit zur Produktionsumgebung: Ergebnisse, die mit dem tatsächlichen Verhalten in Production übereinstimmen
- Nicht blockierende Arbeitsweise: Teammitglieder können unabhängig voneinander mit Codeänderungen experimentieren, ohne sich gegenseitig zu behindern
Realistischen Datensatz erzeugen: Einsatz generativer KI
- Datenschutzkonformer Evaluationsdatensatz
- Mit GPT-4o wurden synthetische Daten erzeugt, die echte Nutzerdaten ersetzen können
- Ohne Nutzerdesigns zu kopieren, wurden realistische Daten erstellt, die statistische Verteilungen wie etwa die Textlänge widerspiegeln
- Erzeugung von Testfällen zur Recall-Bewertung
- Auf Basis von Themen und Designtypen (Dokumente, Präsentationen usw.) wurden mit GPT-4o Abfragen und passende Inhalte generiert
- Anpassung der Schwierigkeit von Abfragen:
- mit Rechtschreibfehlern
- durch Synonyme ersetzt
- umformulierte Abfragen
- Erzeugung von Testfällen zur Precision-Bewertung
- Erstellung eines Datensatzes mit relevanten und irrelevanten Designs
- Methoden zur Erzeugung irrelevanter Designs:
- nur einige Schlüsselwörter enthalten
- als Designvorlage oder Entwurf abgewandelt
- als veraltetes Design festgelegt
Probleme beim Einsatz generativer KI
- Vorteile und Grenzen von LLMs
- Vorteil: Große Textmengen lassen sich effizient erzeugen
- Der erzeugte statische Evaluationsdatensatz kann wiederholt verwendet werden und liefert schnell konsistente, deterministische Bewertungsergebnisse
- Beseitigung von Einschränkungen: Nach der Erstellung des Datensatzes entfallen die Probleme von LLM-Latenz und Zufälligkeit
- Probleme
- Verweigerung bei der Erzeugung langer Titel
- Es wurde um Titel mit 12–15 Wörtern gebeten, aber zurückgegeben wurden kürzere Titel
- Beispiele:
Exploring the Latest Advancements in Screen Technology and Applications (9 Wörter)
Best Practices for Teachers: Presentation Tips for Meet the Teacher (10 Wörter)
- Möglicherweise spiegelt dies wider, dass lange Titel in echten Dokumenten selten sind
- Dadurch wurde der Maßstab für Titellängen erneut überprüft
- Wiederholungen und Halluzinationsfehler
- Es wurde darum gebeten, verschiedene Schreibfehler eines Wortes zu erzeugen, doch zurück kamen doppelte oder unrealistische Ergebnisse
- Beispiel: Bei der Anfrage nach verschiedenen Schreibfehlern von
Calendar wurden wiederholte Ergebnisse erzeugt
- Probleme bei der Erzeugung irrelevanter Titel
- Bei der Erzeugung von Titeln für irrelevante (
nonrelevant) Designs wurde die Anweisung teils nicht genau befolgt
- Einige der zurückgegebenen Titel enthielten nicht die vorgegebenen Schlüsselwörter oder gaben ungenaue Ergebnisse zurück, etwa indem sie einfach
title string enthielten
Evaluierung ausführen: Tests und Analyse in der lokalen Umgebung
- Nutzung des Evaluationsdatensatzes
- Der erzeugte synthetische Datensatz wurde auf die Such-Pipeline angewandt, um Bewertungsmetriken zu berechnen
- Nach der Untersuchung mehrerer Ausführungswege wurde eine lokale Ausführung mit Testcontainers gewählt
- Lokale Pipeline auf Basis von Testcontainers
- Nutzung bestehender Testcontainer-Unterstützung
- In Canavas serviceorientierter RPC-Architektur war Unterstützung für Testcontainer bereits vorhanden
- Die Pipeline wurde aufgebaut, indem externe Komponenten wie Elasticsearch mit internen Testcontainern kombiniert wurden
- Vollständige Nachbildung der Production-Konfiguration
- Die Such-Pipeline und unterstützende ML-Modelle wurden lokal ausgeführt, um eine Umgebung zu schaffen, die mit Production identisch ist
- Ingenieure können verschiedene Modellvarianten ausprobieren
- Ablauf der Verarbeitung von Testfällen
- Erzeugen des für jeden Testfall benötigten Zustands
- Statt Canva-Designs zu erstellen, wurden nur die für den Suchindex benötigten Daten extrahiert und eingefügt
- Ausführen der lokalen Such-Pipeline
- Der Datensatz wurde zusammen mit Testabfragen ausgeführt, um Suchergebnisse zu erzeugen
- Übergabe der Ergebnisse an das Evaluationsmodul
- Berechnung der Metriken Recall und Precision
- Diagramm des Datenflusses
- Es wurde ein Diagramm bereitgestellt, das den gesamten Datenfluss durch das Evaluationswerkzeug visualisiert
Ergebnisse visualisieren
- Entwicklung eines Visualisierungstools
- Mit einem maßgeschneiderten Tool auf Basis von Streamlit lassen sich Evaluationsresultate effektiv visualisieren und vergleichen
- Ingenieure können die Metriken Recall und Precision verschiedener Konfigurationen auf einen Blick vergleichen
- Wichtige Funktionen
- Vergleich nach Konfiguration
- Ergebnisse werden aggregiert, um die Leistung verschiedener Einstellungen nebeneinander zu vergleichen
- Aufschlüsselung der Leistung nach Abfragetyp und Schwierigkeit
- Die Leistung kann getrennt nach bestimmten Abfragetypen oder Schwierigkeitsgraden analysiert werden
- Debugging einzelner Abfragen
- Die Ausgaben jeder Abfrage lassen sich prüfen, um bestimmte Anwendungsfälle gezielt zu debuggen
- Unterstützung schneller Entscheidungen
- Nach Abschluss der Evaluierung startet das Tool sofort und hilft Ingenieuren, auf Basis der Leistungswerte schnelle Entscheidungen zu treffen
- Ingenieure können unabhängig von der Arbeit anderer Teammitglieder iterieren und Verbesserungen vornehmen
Auswirkungen und weitere Pläne
- Wie nah kam man dem idealen Zustand?
- Der Evaluationsdatensatz und die Tools bieten vollständige Reproduzierbarkeit und erzeugen Ergebnisse innerhalb weniger Minuten
- Ingenieure können lokal mit dem Verhalten in Production übereinstimmende Ergebnisse unabhängig und objektiv bewerten
- Die Privatsphäre bleibt vollständig gewahrt, ohne jemals Kundendesigns oder Abfragen einzusehen
- Zusammenfassung der Ergebnisse
- Schnelle Iteration
- Mehr als 1000 Testfälle werden in weniger als 10 Minuten verarbeitet
- Während eines 2–3 Tage dauernden Online-Experiments sind mehr als 300 Offline-Evaluierungen möglich
- Korrelation zwischen Offline- und Online-Ergebnissen
- Die Offline-Evaluierung ist so ausgelegt, dass ungeeignete Ideen aussortiert werden und nur Änderungen mit hoher Erfolgsaussicht in Online-Experimente gelangen
- Während der Entwicklung wurden mehrere Experimente durchgeführt, um die Synchronisierung zwischen Offline- und Online-Ergebnissen zu überprüfen
- Sowohl für positive als auch für negative Leistungsänderungen wurde eine starke Übereinstimmung bestätigt
- Lokale Debugging-Funktionen
- Es gibt Unterstützung für Debugging, bei dem der Fluss von Testfällen durch jede Komponente der Such-Pipeline beobachtet werden kann
- Das ist deutlich effizienter als das frühere Debugging, das auf Production-Logs angewiesen war
- Weitere Pläne
- Datensatz erweitern
- Ergänzung realistischerer Funktionen wie eines Kollaborationsgraphen
- Tooling verbessern
- Ausbau der Werkzeuge, damit Ingenieure bei Bedarf maßgeschneiderte synthetische Daten erzeugen können
- Einsatz generativer KI maximieren
- Das Ziel bleibt, die Möglichkeiten synthetischer Daten zu nutzen, um Canavas Suchwerkzeuge für die Community zur bestmöglichen Erfahrung weiterzuentwickeln
Noch keine Kommentare.