Wie wir die passende KI auswählen
Wenn man eine KI-gestützte Funktion entwirft, wirkt die Frage „welches Modell nehme ich" so, als müsste man sie nur einmal, ganz am Anfang, beantworten. In der Praxis von NovLore lief es anders: Mit der Zeit haben wir gemerkt, dass unterschiedliche Aufgaben im Produkt so unterschiedliche Anforderungen hatten, dass kein noch so guter einzelner Anbieter sie alle gut bedienen konnte. Dieser Artikel erzählt, warum, und wie das System heute aufgebaut ist, das daraus entstanden ist.
Das Problem, das die Entscheidung ausgelöst hat
Am Anfang hielt Scintilla – die Schreibassistentin von NovLore – zwei verschiedene Aufgaben in einem einzigen Kanal zusammen: die Konversation mit der schreibenden Person und die Generierung der Werkstatt-Daten des Buchs (Figuren, Orte, Handlung) aus eben dieser Konversation. Das wirkte verwandt, hatte aber gegensätzliche Bedürfnisse: Eine Konversation muss schnell antworten, während das Erzeugen kohärenter strukturierter Daten sich die Zeit zum Nachdenken nehmen muss. Ein einziger Anbieter, optimiert für eines der beiden Bedürfnisse, benachteiligte systematisch das andere.
Die Lösung war nicht, einen Anbieter zu suchen, der beides gut kann. Sie war, aufzuhören, die beiden als dieselbe Aufgabe zu behandeln.
Sechs Bereiche, nicht einer
Heute gibt jede KI-Funktion von NovLore ihren eigenen Bereich an – Korrektur, Umschreiben, Chat, Struktur, Kapitel, Transkription –, und jeder Bereich kann einen eigenen Anbieter als erste Wahl haben. Der Chat von Scintilla zum Beispiel nutzt ein Modell, das wegen seiner schnellen Antwortzeit ausgewählt wurde; die Generierung eines ganzen Kapitels, die jemand startet, wohl wissend, dass er warten muss, nutzt dagegen ein Modell, das für die Prosaqualität bei einer langen Aufgabe ausgewählt wurde.
| Bereich | Was er tut | Was am meisten zählt |
|---|---|---|
| Chat | Konversation mit der Assistentin | Antwortgeschwindigkeit |
| Korrektur | Tippfehler und grammatische Kohärenz | Präzision, niedrige Kosten |
| Umschreiben | Überarbeitung eines markierten Texts | stilistische Qualität |
| Struktur | strukturierte Daten zu Figuren/Handlung | Zuverlässigkeit des Formats |
| Kapitel | Generierung eines ganzen Kapitels | Qualität bei langem Text |
| Transkription | vorbereitet, noch nicht aktiv | – |
Keine dieser Entscheidungen ist endgültig: Ein Admin-Panel erlaubt es, Anbieter und Ausweichoption für jeden Bereich zu ändern, ohne den Code anzufassen, denn Kosten und relative Qualität der Modelle ändern sich schneller, als sich die Software ändert.
Warum sieben Anbieter und nicht ein „gut genug"
Mit nur einem Anbieter wird jede seiner Serviceunterbrechungen – und das passiert allen, auch den besten – zu einer Unterbrechung des gesamten Produkts. Die naheliegendste Lösung ist eine Ausweichoption; die weniger offensichtliche, aber solidere ist, dass die Ausweichoption nicht über denselben Kanal wie die erste Wahl laufen darf. Sind erste Wahl und Ausweichoption zwei verschiedene Routen zu ein und demselben Anbieter im Hintergrund, reißt ein Ausfall dieses Anbieters beide gleichzeitig mit sich.
Wenn also die erste Wahl eines Bereichs ein Aggregator ist, der mit einem einzigen Schlüssel Zugriff auf mehrere Modelle gibt, geht die Ausweichoption bewusst auf einen direkten, unabhängigen Anbieter. Das ist echte Redundanz, nicht nur auf dem Papier.
Was die Nutzerin sieht, wenn die Ausweichoption einspringt
Nichts, wenn das System so funktioniert, wie es soll. Antwortet der als erste Wahl gesetzte Anbieter für einen Bereich nicht, ist der Wechsel zur Ausweichoption unbemerkt: Die Anfrage geht trotzdem erfolgreich durch, und nur ein interner technischer Vermerk hält fest, dass die zweite Wahl geantwortet hat. Beim Streaming – Antworten, die Wort für Wort erscheinen, wie im Chat – kann die Ausweichoption nur einspringen, bevor das erste Textstück ankommt: Ist die Antwort erst einmal begonnen, würde ein Anbieterwechsel mittendrin einen aus zwei Stilen zusammengeflickten Text erzeugen – schlimmer, als ein paar Sekunden länger zu warten.
Die Unauffälligkeit der Ausweichoption ist kein technisches Detail für Infrastruktur-Enthusiasten: Es ist der Unterschied zwischen einer Nutzerin, die eine gelegentliche Verlangsamung bemerkt, und einer Nutzerin, die mitten beim Schreiben ihres Romans einen Fehler sieht.
Der Router als einziger Durchgangspunkt
Damit dieses System auf Dauer trägt, läuft jede KI-Funktion des Produkts – einschließlich derer mit strukturierter Ausgabe und derer im Streaming – über einen einzigen internen Router, nie direkt über die Anbieter. Das ist eine Entscheidung, die Disziplin kostet (keine Abkürzung, auch nicht für eine „vorübergehende" Funktion), zahlt sich aber auf eine bestimmte Weise aus: Ändert ein Anbieter seine Bedingungen, oder kommt ein neuer hinzu, der es wert ist, aufgenommen zu werden, geschieht die Änderung an einer einzigen Stelle, nicht in zehn verschiedenen Endpunkten, die zu unterschiedlichen Zeiten geschrieben wurden.
Häufig gestellte Fragen
Warum nicht immer das leistungsfähigste verfügbare Modell nehmen?
Weil „leistungsfähiger" nicht dasselbe ist wie „passender für die Aufgabe". Ein Modell, das bei langem, kreativem Text hervorragend ist, kann für einen Chat, der in einer Sekunde antworten muss, langsam und teuer sein; würde man es überall einsetzen, wirkte auch der Teil des Produkts langsam, der eigentlich sofort reagieren sollte.
Kann die Nutzerin selbst wählen, welche KI verwendet wird?
Nicht direkt bei der einzelnen Nachricht: Die Wahl erfolgt pro Bereich und liegt bei denen, die das Produkt verwalten, basierend auf über die Zeit beobachteter Qualität und Zuverlässigkeit. Das ist eine bewusste Entscheidung – würde man sie den Nutzerinnen und Nutzern überlassen, verschöbe das eine technische Entscheidung auf sie, die ein fortlaufendes Beobachten von sieben verschiedenen Anbietern verlangt.
Was passiert, wenn auch die Ausweichoption nicht antwortet?
Die Operation schlägt mit einer expliziten Fehlermeldung fehl, und bei einer kostenpflichtigen Aktion wird die Belastung automatisch auf demselben Kontingent rückgängig gemacht, von dem sie abgebucht wurde: Niemand zahlt für eine Anfrage, auf die keine Antwort kam.
Bremst dieses System die Entwicklung neuer KI-Funktionen?
Kurzfristig ja, ein wenig: Eine neue Funktion hinzuzufügen bedeutet, über den Router zu gehen, statt eine API direkt aufzurufen. Mittelfristig ist es umgekehrt, weil jede neue Funktion die Fehlerbehandlung, die Ausweichoption und die Kostenerfassung, die einmal gebaut wurden, kostenlos mit erbt.