Das Open-Source-Toolkit Nemo Guardrails Leitplanken bringen Trust und Security in LLM-basierte Konversationssysteme

Von Annamalai Chockalingam, Product Marketing Manager, Deep Learning Software und Tanay Varshney, Senior Developer Advocate Engineer bei Nvidia Lesedauer: 6 min |

Anbieter zum Thema

„Nemo Guardrails“ stammt von Nvidia und dient einer möglichst einfachen Entwicklung von Konversationssystemen, die auf Large Language Modellen (LLMs) beruhen und die vertrauenswürdig sein sollen. Da Sicherheit in der generativen Künstlichen Intelligenz generell ein Problem ist, funktioniert die Software mit allen LLMs, inklusive „ChatGPT“ von OpenAI, und ist als Open Source verfügbar.

„Nemo Guardrails“ befinden sich zwischen den Benutzern und einer KI-Anwendung, überwachen die Kommunikation in beide Richtungen und ergreifen geeignete Maßnahmen, um die Sicherheit zu gewährleisten.
„Nemo Guardrails“ befinden sich zwischen den Benutzern und einer KI-Anwendung, überwachen die Kommunikation in beide Richtungen und ergreifen geeignete Maßnahmen, um die Sicherheit zu gewährleisten.
(Bild: Nvidia)

Große Sprachmodelle (LLMs) sind in der Lage, komplexe Fragen zu beantworten, kreative Schreibarbeit zu leisten, Quellcode zu entwickeln, zu debuggen und vieles mehr. Sie können unglaublich ausgeklügelte LLM-Anwendungen erstellen, indem Sie sie mit externen Tools verbinden, zum Beispiel um Daten aus einer Echtzeitquelle zu lesen oder ein LLM entscheiden zu lassen, welche Aktion angesichts einer Benutzeranfrage durchgeführt werden soll. Es ist jedoch eine Herausforderung, diese LLM-Anwendungen auf eine sichere Art und Weise zu erstellen.

Das Toolkit Memo Guadrails wird durch andere Toolkits wie „Langchain“ unterstützt, das innerhalb weniger Monate fast 30.000 Sterne auf Github gesammelt hat. Die Toolkits bieten gemeinsam zusammensetzbare, einfach zu verwendende Vorlagen und Muster, um LLM-gestützte Anwendungen zu erstellen, indem LLMs, APIs und andere Softwarepakete zusammengefügt werden.

Nemo Guardrails soll Entwicklern erlauben, Chatbots einfach zu steuern, indem sie Regeln erstellen, um gewünschte Benutzerinteraktionen innerhalb einer Anwendung zu definieren. Sie können Benutzerinteraktionen definieren und diese quasi als Leitplanken (guardrails) mit Hilfe einer Python-Bibliothek in jede Anwendung integrieren. So wird Langchain nicht nur nativ unterstützt, das Toolkit fügt bestehenden LLM-basierten Konversationsanwendungen quasi eine zusätzliche Ebene der Sicherheit und Vertrauenswürdigkeit hinzu.

Leitplanken für Konversationssysteme

Diese `Leitplanken´ bestehen also aus einer Reihe von programmierbaren Einschränkungen oder Regeln, die zwischen einem Benutzer und einem LLM stehen. Sie überwachen, beeinflussen und diktieren die Interaktionen eines Benutzers, wie Leitplanken auf einer Autobahn, die die Breite einer Straße definieren und Fahrzeuge davon abhalten, in unerwünschtes Gebiet abzubiegen.

Die Benutzung ist einfach: Ein Benutzer sendet Anfragen an einen Bot, und der Bot gibt Antworten zurück. Die Gesamtheit der Anfragen und Antworten bildet einen Chat. Der Bot antwortet auf Benutzeranfragen und erstellt entsprechende Aufforderungen, entweder Zwischenschritte oder auszuführende Aktionen. Der Bot verwendet dann die Aufforderung, um einen LLM aufzurufen, und der LLM gibt Informationen zurück, die die Bot-Antwort bilden.

Manchmal verwendet der Bot relevante Informationen aus einer Wissens- bezihungsweie Dokumentendatenbank. Der Bot ruft Teile aus der dieser ab und fügt sie als Kontext in die Eingabeaufforderung ein.

Der Aufbau

Nemo Guardrails basiert auf „Colang“, einer von Nvidia entwickelten Modellierungssprache und Laufzeitumgebung für konversationelle KI. Das Ziel von Colang ist es, eine lesbare und erweiterbare Schnittstelle für Benutzer bereitzustellen, um das Verhalten von Conversational Bots mit natürlicher Sprache zu definieren oder zu steuern. Die Interaktion mit diesem System erfolgt wie bei einem herkömmlichen Dialogmanager. Somit lassen sich die `Leitplanken´erstellen, indem Abläufe in einer Colang-Datei definiert, die folgende Schlüsselkonzepte enthält:

  • canonical form,
  • messages und
  • flows

Eine `canonical form´ ist eine vereinfachte Paraphrase einer Äußerung. Sie wird verwendet, um zu erkennen, worum es in einem Gespräch geht, und um Regeln mit Äußerungen abzugleichen.

`Messages´ stellen eine Kurzmethode dar, um die Absicht des Benutzers als Erzeugung einer kanonischen Form zu klassifizieren, einer leichtgewichtigen Darstellung in natürlicher Sprache. Unter der Haube werden diese Nachrichten indiziert und in einem speicherinternen Vektorspeicher abgelegt. Wenn sie aktiviert werden, werden die `N´ ähnlichsten Nachrichten aus dem Vektorspeicher abgerufen oder an den LLM gesendet, um ähnliche kanonische Formen zu erzeugen.

Hier ein Beispiel:

define user express greeting  "Hi"  "Hello!"  "Hey there!"

Dieses Beispiel stellt die Kurzschrift für eine Begrüßung dar. Es definiert eine neue kanonische Form, die eine Begrüßung ausdrückt, und bietet einige natürlichsprachliche Eingabe-Aufforderungen oder Nachrichten. Jede Eingabe-Aufforderung, die der angegebenen Gruppe von Eingabe-Aufforderungen ähnelt, wird als Begrüßung des Benutzers verstanden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

`flows´wiederum bestehen aus einer Reihe von Nachrichten und Aktionen und definieren die Struktur oder den Fluss der Benutzerinteraktionen. Solche Abläufe können auch als Baum oder Graph der Interaktionen zwischen dem Benutzer und dem Bot betrachtet werden. Dazu ein Beispiel:

define flow greeting  user express greeting  bot express greeting  bot ask how are you

Wenn ein Begrüßungs-Flow ausgelöst wird, werden der Benutzer und der Bot angewiesen, Grüße auszutauschen. Die Syntax für die Definition ist die gleiche wie bei Nachrichten: Programmatisch und einfach.

Guardrails-Techniken

Wenn Leitplanken definiert werden, sitzen diese zwischen dem Benutzer und einer KI-Anwendung, überwachen die Kommunikation in beide Richtungen und ergreifen geeignete Maßnahmen, um die Sicherheit zu gewährleisten, so dass die Modelle innerhalb der gewünschten Domäne der Anwendung bleiben. Derzeit unterstützt Nemo Guardrails drei große Kategorien:

  • Thematische Guardrails
  • Sicherheit und
  • Security

Thematische Leitplanken sollen sicherstellen, dass Gespräche auf ein bestimmtes Thema konzentriert bleiben und nicht in unerwünschte Bereiche abschweifen. Sie dienen als Mechanismus, um zu erkennen, wenn eine Person oder ein Bot sich an Gesprächen beteiligt, die außerhalb des thematischen Bereichs liegen.

Diese thematischen Leitplanken können die Situation in den Griff bekommen und die Unterhaltungen wieder auf die beabsichtigten Themen lenken. Wenn ein Kundendienst-Bot beispielsweise Fragen zu Produkten beantworten soll, sollte er erkennen, dass eine Frage außerhalb des Themenbereichs liegt, und entsprechend antworten.

Die so genannten Safety Guardrails sorgen dafür, dass Interaktionen mit einem LLM nicht zu Fehlinformationen, garstigen Antworten oder unangemessenen Inhalten führen. LLMs sind dafür bekannt, dass sie sich plausibel klingende Antworten ausdenken. Sicherheitsleitplanken können helfen, Richtlinien zu erkennen und durchzusetzen, um angemessene Antworten zu geben.

Sie können zudem gewährleisten, dass die Antworten des Modells sachlich sind und durch glaubwürdige Quellen gestützt werden. Sie sollen auch verhindern, dass Menschen die KI-Systeme hacken, um unangemessene Antworten zu geben, und Verzerrungen abschwächen.

Die Security-Leitplanken sollen verhindern, dass ein LLM bösartigen Code ausführt oder eine externe Anwendung auf eine Weise aufruft, die ein Sicherheitsrisiko darstellt. Denn die LLM-Anwendungen sind eine attraktive Angriffsfläche, wenn ihnen der Zugriff auf externe Systeme gestattet wird, und sie stellen somit ein erhebliches Cyber-Sicherheitsrisiko dar. Die Security-Guardrails helfen dabei, ein robustes Sicherheitsmodell bereitzustellen und LLM-basierte Angriffe zu entschärfen, sobald sie entdeckt werden.

Der Umgang mit Memo Guadrails

Die Software ist vollständig programmierbar. Die Anwendung einer Leitplanke und der Satz von Aktionen, die sie auslöst, lässt sich leicht anpassen und im Laufe der Zeit verbessern. Für kritische Fälle kann eine neue Regel mit nur wenigen Codezeilen hinzugefügt werden. Dieser Ansatz ergänzt in hohem Maße Techniken wie das verstärkende Lernen aus menschlichem Feedback (Reinforcement Learning from Human Feedback, RLHF), bei dem das Modell durch einen Modelltrainings-Prozess an die menschlichen Absichten angepasst wird.

Prozessablauf einer Benutzerinteraktion mit „Nemo Guardrails“.
Prozessablauf einer Benutzerinteraktion mit „Nemo Guardrails“.
(Bild: Nvidia)

Hier ist der grundsätzliche Arbeitsablauf eines Guardrail-Flows (siehe: Grafik):

  • 1. Umwandlung der Benutzereingabe in eine kanonische Form.
  • 2. Abgleich oder Generierung einer Leitplanke auf der Grundlage der kanonischen Form unter Verwendung von Colang.
  • 3. Planen und diktieren des folgenden Schritts, damit der Bot Aktionen ausführen kann.
  • 4. Generieren der endgültige Ausgabe aus der kanonischen Form oder dem generierten Kontext.

Zugang zum Toolkit

Nvidia integriert Nemo Guardrails in das „Nemo-Framework“, das enthält, was Nutzer zum Trainieren und Optimieren von Sprachmodellen unter Verwendung der Fachkenntnisse und Datensätze des eigenen Unternehmens benötigen. Nemo ist auch als Service verfügbar. Es ist Teil von „Nvidia AI Foundations“, Cloud-Services für Unternehmen, die benutzerdefinierte generative KI-Modelle auf der Grundlage ihrer eigenen Datensätze und Fachkenntnisse erstellen und ausführen möchten.

Informationen über verschiedene Beispiele, die gängige Muster für die Implementierung von Guardrails adressieren, finden sich bei Github.

(ID:49418132)