9 Punkte von xguru 2024-12-02 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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
    1. 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
    1. Ausführen der lokalen Such-Pipeline
    • Der Datensatz wurde zusammen mit Testabfragen ausgeführt, um Suchergebnisse zu erzeugen
    1. Ü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
    1. Vergleich nach Konfiguration
      • Ergebnisse werden aggregiert, um die Leistung verschiedener Einstellungen nebeneinander zu vergleichen
    2. Aufschlüsselung der Leistung nach Abfragetyp und Schwierigkeit
      • Die Leistung kann getrennt nach bestimmten Abfragetypen oder Schwierigkeitsgraden analysiert werden
    3. 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
    1. 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
    1. 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
    1. 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.

Noch keine Kommentare.