Blog
Chatbots und KI-Halluzinationen: Wie AWS Bedrock für Präzision und Vertrauen sorgt
Senior AWS Consultant
In der sich schnell entwickelnden Welt der KI haben wir bemerkenswerte Fortschritte bei den Fähigkeiten von Chatbots erlebt. Mit großer Macht kommt jedoch eine bedeutende Herausforderung: Halluzinationen. So wie wir Kindern beibringen, wie wichtig es ist zuzugeben, wenn sie etwas nicht wissen, müssen wir jetzt dieses Prinzip auch unseren KI-Assistenten vermitteln.
Die Gefahren von KI-Halluzinationen
Die mit Halluzinationen verbundenen Risiken gehen weit über kleine Unannehmlichkeiten hinaus:
- Verbreitung von Fehlinformationen: Falsche Informationen können sich schnell verbreiten, wenn sie von einer autoritativ erscheinenden KI geliefert werden.
- Erosion des Vertrauens: Wiederkehrende Halluzinationen schädigen das Vertrauen der Benutzer*innen in KI-Systeme.
- Auswirkungen auf Entscheidungsfindung: In kritischen Bereichen wie Gesundheitswesen, Finanzen oder rechtlichen Kontexten können halluzinierte Informationen zu schädlichen Entscheidungen führen.
Strategien zur Bekämpfung von Halluzinationen
Temperaturkontrolle
Die Temperatur steuert, wie kreativ ein Modell bei seiner Antwort werden darf bzw. ob es nur Antwortmöglichkeiten mit hoher Wahrscheinlichkeit in Betracht ziehen soll.
Mit AWS Bedrock kann man diesen Wert via boto3 setzen.
response = brt.converse_stream(
modelId='anthropic.claude-3-haiku-20240307-v1:0',
messages=messages,
system=[
{
'text': base_system_prompt
},
],
inferenceConfig={
'maxTokens': 2048,
'temperature': 0.1
}
)
2. Grounding und Relevance
Grounding und Relevance, die beide über AWS Bedrock Guardrails verfügbar sind, funktionieren ähnlich wie Temperature. Grounding legt fest, wie stark sich die Antwort des LLMs auf den Kontext beziehen soll. Relevance bestimmt, wie relevant die Antwort des LLMs in Bezug auf die Userfrage ist.
my_guard = client.create_guardrail(
name="mytestguard",
contextualGroundingPolicyConfig={
"filtersConfig": [
{
"type": "GROUNDING",
"threshold": 0.7
},
{
"type": "RELEVANCE",
"threshold": 0.7
}
]
},
blockedInputMessaging='Es tut mir leid, aber ich kann keine personalisierten Ratschläge oder Empfehlungen zur Verwaltung von Finanzvermögen in treuhänderischer Funktion geben.',
blockedOutputsMessaging='Es tut mir leid, aber ich kann keine personalisierten Ratschläge oder Empfehlungen zur Verwaltung von Finanzvermögen in treuhänderischer Funktion geben.'
)
Dann können Sie Ihren Guardrail zum bedrock.converse-Aufruf hinzufügen:
response = bedrock_client.converse_stream(
modelId=model_id,
messages=messages,
system=system_prompts,
inferenceConfig=inference_config,
additionalModelRequestFields=additional_model_fields,
guardrailConfig={
'guardrailIdentifier': "7c3cg1p2zpbn",
'guardrailVersion': 'DRAFT'
}
)
3. Prompt-Engineering-Techniken
Direkte Anweisung
Der einfachste Ansatz ist eine explizite Anweisung:
Bitte beantworte die folgende Frage. Wenn du die Antwort nicht kennst oder unsicher bist, sage bitte 'Ich habe nicht genügend Informationen, um diese Frage zu beantworten', anstatt zu raten.
Frage: Wann wurde Quantencomputing erstmals experimentell demonstriert?
Few-Shot-Beispiele
Bereitstellung von Beispielen für angemessene „Ich weiß es nicht“-Antworten:
F: Wie groß ist die Bevölkerung des Mars?
A: Ich habe nicht genügend Informationen, um diese Frage zu beantworten, da der Mars keine menschliche Bevölkerung hat.
F: Wer hat die Weltmeisterschaft 2045 gewonnen?
A: Ich weiß nicht, wer die Weltmeisterschaft 2045 gewonnen hat, da dieses Ereignis noch nicht stattgefunden hat.
F: {Benutzerfrage}
A:
Wiederholung und Betonung
Verstärkung der Wichtigkeit von Genauigkeit:
WICHTIG: Genauigkeit ist entscheidend. Wenn du dir bei der Antwort nicht sicher bist, sage 'Ich weiß es nicht', anstatt potenziell falsche Informationen zu liefern.
ERFINDE KEINE INFORMATIONEN! Wenn du etwas nicht weißt, gib es zu!
Frage: {Benutzerfrage}
Dringlichkeitssignale
Erzeugung eines Gefühls der Wichtigkeit:
WARNUNG! KRITISCHE ANWEISUNG: Gib KEINE spekulativen Antworten.
Es ist ABSOLUT WESENTLICH, dass du anzeigst, wenn du etwas nicht weißt.
Die Konsequenzen falscher Informationen könnten SCHWERWIEGEND sein!
Frage: {Benutzerfrage}
Fazit: Unsicherheit in der KI akzeptieren
Gerade in AWS-Umgebungen zeigt sich, dass Bedrock nicht nur leistungsfähige LLMs bereitstellt, sondern auch Schutzmechanismen wie Guardrails.
Je mehr KI in unser tägliches Leben und kritische Systeme integriert wird, desto wichtiger wird die Zuverlässigkeit dieser Systeme. Unseren KI-Assistenten beizubringen, ihre Grenzen zu erkennen und zuzugeben, ist kein Mangel – es ist eine Funktion, die Vertrauen und Zuverlässigkeit erhöht.
Durch Implementierung von Strategien wie den oben beschriebenen können Entwickler*innen mehr Sicherheit hinsichtlich der Richtigkeit der Antworten ihres Systems schaffen. Die Fähigkeit, „Ich weiß es nicht“ zu sagen, mag einfach erscheinen, repräsentiert aber eine anspruchsvolle Form der KI-Ehrlichkeit, die wir fördern und erwarten sollten. Bei LLMs gilt in jedem Fall: Precision über Recall. Wir brauchen keine Chatbots, die alle Fragen beantworten können, sondern wir brauchen spezialisierte Chatbots, die sich mit einem spezifischen Thema auskennen und wissen, wann ihre Grenzen überschritten sind.
Die nächste Grenze in der KI-Entwicklung besteht nicht nur darin, Systeme intelligenter zu machen, sondern sie bewusster für das zu machen, was sie nicht wissen.