Verbesserung der Nutzererfahrung durch Überwindung der Latenz im ION IQ Chatbot

In unserem vorherige haben wir die technischen Details der Entwicklung unseres KI-Chatbots auf der Grundlage von Large Language Models (LLMs) erläutert. Bei der Entwicklung des Bots lag der Schwerpunkt auf der Sicherstellung konsistenter und lokalisierter Antworten unter Verwendung der Muster Augmented Generation (AG) und Retrieval Augmented Generation (RAG).
Beide Muster gewährleisten zwar die Genauigkeit durch mehrere LLM-Aufrufe, können aber zu einer zunehmenden Latenz führen.
Jede Anwendung, die sich auf LLMs stützt, wie der ION Chatbot, steht vor einem gemeinsamen Problem: Latenz aufgrund von LLM-Aufrufen. Diese Latenz, die oft durch Agenten und Ketten mit mehreren LLM-Aufrufen verursacht wird, kann die Benutzererfahrung negativ beeinflussen. In diesem Blog-Beitrag teilen wir unsere Erfahrungen mit, wie wir dieses Problem angehen, und schlagen praktische Lösungen vor, die wir für effektiv befunden haben.
Unsere Lösungen für die Latenzzeit
Optimieren von LLM-Aufrufen
Da wir ein LLM-Modell aufrufen, das von Azure OpenAI gehostet wird, und nicht unser eigenes Modell bedienen, können wir nichts an dem Modell selbst ändern. Stattdessen optimieren wir die Aufrufe durch:
- Priorisierung der Nutzung kleinerer LLM-Aufrufe: Da die LLM-Latenzzeit linear mit der Anzahl der ausgegebenen Token ist1, Wenn der Ausgabetext kurz ist, erhalten wir eine schnellere Antwort. Daher können wir die Leistung verbessern, wenn wir den LLM auffordern, nur das auszugeben, was wir brauchen. Wir begrenzen den Umfang der Ausgabe, indem wir Anweisungen in die Eingabeaufforderung aufnehmen. Wir verfeinern auch die Eingabeaufforderung, so dass der LLM nur die notwendigen Informationen generiert.
- Azure OpenAI verwenden: Wir verwenden GPT-3.5-Turbo, das in Azure OpenAI eingesetzt wird. Forscher haben festgestellt, dass die Azure OpenAI-Version schneller ist als die OpenAI-Version, mit bis zu 20% Verbesserung2
Backend-Verfeinerungen
Um die Latenzzeit weiter zu verringern, arbeiten wir auch an anderen Backend-Verbesserungen:
- Langsames Laden3der Komponenten: Nicht jede Benutzerinteraktion erfordert die gesamte Palette unserer Komponenten. So sollten beispielsweise bei einfachen Begrüßungen keine Komponenten geladen werden, die für Microsoft-Preisinformationen oder Microsoft Sentinel-Nutzungsdaten verwendet werden. Durch die Implementierung von "Lazy Loading" werden für jede Interaktion nur die erforderlichen Komponenten aktiviert.
- Optimierte Datenspeicherung: Um unsere Speichereffizienz für Gesprächsverläufe zu verbessern, sind wir dazu übergegangen, AppendBlobs statt der sonst üblichen BlockBlobs zu verwenden. Dieser Ansatz verhindert, dass die gespeicherten Gesprächsdaten für jede Interaktion wiederholt abgerufen, geändert und überschrieben werden müssen.
Obwohl der größte Teil der Latenzzeit auf die LLM-Anrufe zurückzuführen ist, spielen diese technischen Lösungen, auch wenn sie bescheiden sind, eine entscheidende Rolle. Jede eingesparte Sekunde zählt für die Zufriedenheit der Nutzer.
Verbesserungen der Benutzerfreundlichkeit
Neben der Verringerung der Latenzzeit haben wir unser Augenmerk auch auf die Benutzerfreundlichkeit gerichtet. Diese Verbesserungen werden die Latenzzeit nicht direkt verringern, aber sie können dazu beitragen, die Benutzerfreundlichkeit zu verbessern:
- Backend-Aktivitätsindikatoren: Um die Benutzer auf dem Laufenden zu halten, haben wir voreingestellte Routinen integriert, die die zu erwartenden Backend-Aktivitäten anzeigen, wie z. B. “Analysieren Ihrer Anfrage ...”, “Sammeln der Daten ...” oder “Generieren der Antwort ...”. Wir arbeiten derzeit an einer noch besseren Lösung, bei der wir die tatsächlichen Aktivitäten im Backend anzeigen. Dazu könnte gehören, welches Tool gewählt wurde oder die KQL-Abfrage, die ausgeführt wurde.

- Schaltflächen "Abbrechen" und "Wiederholen": Dies ist nützlich, wenn es beim Chatbot zu unerwarteten Verzögerungen kommen kann. Die Benutzer haben die Möglichkeit, ihre Anfrage abzubrechen oder zu wiederholen.
- Vorschläge für Folgefragen: Um eine tiefere und effizientere Auseinandersetzung mit den Themen zu fördern, haben wir Schaltflächen hinzugefügt, die Folgefragen vorschlagen.
- Streaming-Modus: Beim Streaming wird die vom LLM generierte Antwort Wort für Wort angezeigt. Damit können die Benutzer mit dem Lesen des generierten Inhalts beginnen, lange bevor die gesamte Antwort generiert wurde. Wir planen, diesen Modus in Zukunft zu aktivieren.
Befähigung der Kunden durch nützliche Interaktionen
Die ION IQ Der Chatbot wurde sorgfältig entwickelt, um eine konsistente und lokalisierte Antwort zu gewährleisten. Da wir die Herausforderung der Latenz erkannt haben, die mit der Verwendung von LLMs einhergeht, haben wir besondere Anstrengungen unternommen, um die Verzögerung zu verringern und die Kundenerfahrung zu verbessern.
Wir haben uns auf die Optimierung der LLM-Aufrufe und die Implementierung von Backend-Verbesserungen wie "Lazy Loading" und optimierte Datenspeicherung konzentriert. Darüber hinaus haben wir das Problem aus einem anderen Blickwinkel angegangen, indem wir Verbesserungen der Benutzerfreundlichkeit eingeführt haben, wie z. B. Aktivitätsindikatoren im Backend und Vorschläge für Folgefragen. Sie helfen den Nutzern, sich zu engagieren und effizienter mit dem Chatbot zu interagieren.
Letztendlich ist es unser Ziel, unseren Kunden ein reibungsloses Erlebnis zu bieten und sicherzustellen, dass jede Interaktion mit dem ION IQ Chatbot effizient und nützlich ist.


