Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Große Sprachmodelle (LLMs) sind leistungsfähig, weisen jedoch Beschränkungen auf. Sie müssen wissen, was LLMs standardmäßig tun können und wie sie angepasst werden, um die besten Ergebnisse für Ihre generativen KI-Apps zu erzielen. In diesem Artikel werden die wichtigsten Herausforderungen mit LLMs behandelt und einfache Möglichkeiten zum Lösen und Verbessern der Art der Generierung von Inhalten gezeigt, unabhängig davon, welche Art von generativen KI-Features Sie erstellen.
Technische Herausforderungen beim Arbeiten mit LLMs
Hier sind die wichtigsten Herausforderungen und Einschränkungen, die Sie beim Arbeiten mit LLMs berücksichtigen sollten:
Wissenskürzung: LLMs wissen nur, was sie bis zu einem bestimmten Datum trainiert haben. Ohne externe Datenverbindungen können sie nicht auf Echtzeit- oder private Informationen zugreifen.
Halluzination: LLMs können ungenaue oder irreführende Informationen generieren. Mit dem Feature zur Erdheitserkennung in Azure AI Foundry können Sie ermitteln, ob die Antworten eines LLM auf den von Ihnen bereitgestellten Quellmaterialien basieren. Nicht geerdete Antworten enthalten Informationen, die von Ihren Daten nicht unterstützt werden. In dieser Schnellstartanleitung erfahren Sie, wie Sie die Erdheitserkennung verwenden.
Transparenz: Sie können nicht immer die Quelle oder Genauigkeit generierter Inhalte nachverfolgen, und es gibt keinen integrierten Überprüfungsschritt.
Keine domänenspezifischen Kenntnisse: LLMs kennen Ihre internen oder proprietären Daten nur, wenn Sie sie integrieren.
Unfähigkeit, aus Interaktionen zu lernen: LLMs verfügen nicht über Arbeitsspeicher oder Bewusstsein für frühere Interaktionen, sodass sie sich nicht im Laufe der Zeit anpassen oder verbessern können, basierend auf Benutzerfeedback. Um diese Herausforderungen zu überwinden und die besten Ergebnisse zu erzielen, ergänzen Sie das Wissen des LLM mit Ihren eigenen Daten und verwenden Sie Validierungstools.
Woher LLMs ihre Informationen erhalten
LLMs werden auf großen Datasets aus Büchern, Artikeln, Websites und anderen Quellen trainiert. Ihre Antworten spiegeln Muster in diesen Daten wider, aber alles, was nach dem Abschneiden des Trainings passiert ist, ist nicht enthalten. Ohne externe Verbindungen können LLMs nicht auf Echtzeitinformationen zugreifen oder das Internet durchsuchen, was zu veralteten oder unvollständigen Antworten führen kann.
Faktoren, die sich auf die Funktionsweise von Rückschlüssen auswirken
Wenn Sie eine LLM verwenden, sieht es möglicherweise so aus, als ob sich das Modell an Ihre gesamte Unterhaltung erinnert. In Wirklichkeit enthält jede neue Eingabeaufforderung, die Sie senden, alle Ihre früheren Eingabeaufforderungen und die Antworten des Modells. Der LLM verwendet diesen vollständigen Verlauf als Kontext, um die nächste Antwort zu erstellen. Dieser ausgeführte Verlauf ist das Kontextfenster.
Jede LLM verfügt über eine maximale Kontextfenstergröße, die sich nach Modell und Version ändert. Wenn Ihre Unterhaltung diesen Grenzwert überschreitet, fällt das Modell die ältesten Teile und ignoriert sie in seiner Antwort.
Längere Kontextfenster bedeuten, dass das Modell mehr Daten verarbeiten muss, was die Dinge verlangsamen und mehr kosten kann.
Die Größe des Kontextfensters verwendet Token, nicht Wörter. Token sind die kleinsten Textteile, die das Modell verarbeiten kann– diese Teile können ganze Wörter, Teile von Wörtern oder einzelne Zeichen sein, je nach Sprache und Tokenizer.
Für Entwickler wirkt sich die Tokennutzung direkt auf Folgendes aus:
- Die maximale Anzahl von Aufgezeichneten Unterhaltungen, die das Modell berücksichtigen kann (Kontextfenster)
- Die Kosten jeder Aufforderung und Fertigstellung, da die Abrechnung auf der Anzahl der verarbeiteten Token basiert
Was ist Tokenisierung?
Die Tokenisierung ist der Prozess des Aufteilens von Text in Token – die kleinsten Einheiten, die ein Modell verarbeiten kann. Die Tokenisierung ist sowohl für Schulungen als auch für die Ableitung mit LLMs unerlässlich. Je nach Sprache und Tokenizer können Token ganze Wörter, Unterwörter oder sogar einzelne Zeichen sein. Tokenisierung kann so einfach wie das Aufteilen durch Leerzeichen und Interpunktion oder so komplex wie die Verwendung von Algorithmen sein, die die Sprachstruktur und Morphologie berücksichtigen.
Auf der OpenAI-Tokenizer-Seite wird die Tokenisierung ausführlich erläutert und ein Rechner zum Anzeigen der Aufteilung von Sätzen in Token eingeschlossen.
In typischem englischen Text ist ein Token etwa vier Zeichen. Im Durchschnitt sind 100 Token ungefähr 75 Wörter.
Für Entwickler helfen die folgenden Bibliotheken beim Schätzen der Tokenanzahl für Eingabeaufforderungen und -vervollständigungen, was für die Verwaltung von Kontextfenstergrenzwerten und -kosten nützlich ist:
- die tiktoken-Bibliothek (Python und JavaScript)
- die Microsoft.ML.Tokenizers-Bibliothek (.NET)
- die Hugging Face Tokenizers-Bibliothek (JavaScript, Python und Java)
Token-Verwendung beeinflusst die Abrechnung
Jede Azure OpenAI-API verfügt über eine andere Abrechnungsmethode. Für die Verarbeitung und Generierung von Text mit der Chat Completions API wird Ihnen die Anzahl der Token, die Sie als Prompt senden, und die Anzahl der Token, die als Ergebnis generiert werden (Vervollständigung), in Rechnung gestellt.
Jedes LLM-Modell (z. B. GPT-4.1, GPT-4o oder GPT-4o mini) weist in der Regel einen anderen Preis auf, der die zum Verarbeiten und Generieren von Token erforderliche Berechnungsmenge widerspiegelt. Oft wird der Preis als "Preis pro 1.000 Token" oder "Preis pro 1 Million Token" dargestellt.
Dieses Preismodell wirkt sich erheblich darauf aus, wie Sie die Benutzerinteraktionen gestalten und wie viel Vor- und Nachbearbeitung Sie hinzufügen.
Systemaufforderungen im Vergleich zu Benutzeraufforderungen
Bisher wurde in diesem Artikel die Benutzeraufforderungen erläutert. Eine Benutzeraufforderung ist das, was Sie an das Modell senden und worauf das Modell antwortet.
OpenAI hat auch die Systemaufforderung (oder benutzerdefinierte Anweisungen) hinzugefügt. Eine Systemaufforderung ist eine Reihe von Regeln, die Sie jedem Chat hinzufügen. Sie können z. B. den LLM anweisen, "immer in Haiku-Formular zu antworten". Danach wird jede Antwort eine Haiku sein.
In diesem Haiku-Beispiel wird gezeigt, wie Sie die Antworten der LLM ändern können, indem Sie die Eingabeaufforderung ändern.
Warum ändern Sie die Eingabeaufforderung des Benutzers? Wenn Sie eine generative KI-App für Arbeit, Kunden oder Partner erstellen, sollten Sie Regeln hinzufügen, um zu begrenzen, was das Modell beantworten kann.
Das Ändern der Benutzeraufforderung ist jedoch nur eine Möglichkeit, die Textgenerierung zu verbessern.
Methoden zur Verbesserung der Textgenerierung für Benutzer
Um die Ergebnisse der Textgenerierung zu verbessern, sind Entwickler darauf beschränkt, einfach die Aufforderung zu verbessern, und es gibt viele Prompt Engineering-Techniken, die ihnen helfen können. Wenn Sie jedoch Ihre eigene generative KI-Anwendung erstellen, gibt es mehrere Möglichkeiten, die Textgenerierung für Benutzer zu verbessern, und Sie könnten experimentieren, alle davon zu implementieren.
- Programmgesteuertes Ändern der Benutzereingabeaufforderungen.
- Implementieren Sie eine Inferenz-Pipeline.
- Retrieval-Augmented Generation (in anderen Artikeln besprochen).
- Feinabstimmung (in anderen Artikeln besprochen).
Programmgesteuertes Ändern von Benutzeraufforderungen
Um einen System Prompt zu einer Benutzer-Konversation hinzuzufügen, verwenden Sie keine spezielle API. Sie fügen dem Prompt einfach nach Bedarf Anweisungen hinzu.
Sie können jedoch einige Techniken verwenden, um Benutzeraufforderungen zu verbessern:
- Kontextuelle Voreinstellung: Erstellen Sie System Prompts, die explizit den Kontext der Konversation innerhalb der Domäne festlegen. Dieser Ansatz umfasst die Bereitstellung einer kurzen Beschreibung oder einer Reihe von Anweisungen am Anfang jeder Interaktion. Die Anweisungen leiten die KI an, innerhalb des Problembereichs zu bleiben.
- Beispielbasierte Anleitungen: Geben Sie in der ersten Eingabeaufforderung Beispiele für die Arten von Fragen und Antworten an, die für Ihre Domäne relevant sind. Dieser Ansatz hilft KI zu verstehen, welche Art von Antworten erwartet werden soll.
Sie können jede beliebige Technik zur Erstellung von Prompts verwenden. Wenn Sie dies programmgesteuert erreichen können, können Sie die Benutzeraufforderung für sie verbessern.
Der Nachteil bei diesem Ansatz ist, dass die Kosten für jeden Aufruf des LLM umso höher sind, je länger der Prompt ist. Dennoch ist dieser Ansatz wahrscheinlich der am wenigsten teure Ansatz, den dieser Artikel beschreibt.
Implementierung einer Inferenz-Pipeline
Nachdem Sie die Eingabeaufforderung des Benutzers verbessert haben, besteht der nächste Schritt darin, eine Ableitungspipeline zu erstellen.
Eine Ableitungspipeline ist ein Prozess, der:
- Bereinigt rohe Eingaben (z. B. Text oder Bilder)
- Sendet es an das Modell (Vorverarbeitung)
- Überprüft die Antwort des Modells, um sicherzustellen, dass es den Anforderungen des Benutzers entspricht, bevor es angezeigt wird (Nachbearbeitung).
Die Vorverarbeitung kann die Überprüfung auf Schlüsselwörter, die Bewertungsrelevanz oder die Änderung der Abfrage umfassen, um ihre Domäne besser anzupassen. Sehen Sie sich beispielsweise die erste Eingabeaufforderung des Benutzers an. Fragen Sie den LLM, ob die Eingabeaufforderung sinnvoll ist, ihre Regeln befolgt, auf einer richtigen Idee basiert, oder sie muss neu geschrieben werden, um Verzerrungen zu vermeiden. Wenn der LLM Probleme findet, können Sie ihn bitten, die Eingabeaufforderung umzuschreiben, um eine bessere Antwort zu erhalten.
Die Nachverarbeitung kann bedeuten, dass überprüft wird, ob die Antwort Ihrer Domäne entspricht und Ihren Standards entspricht. Sie können Antworten entfernen oder kennzeichnen, die nicht ihren Regeln entsprechen. Überprüfen Sie beispielsweise die Antwort des LLM, um festzustellen, ob sie Ihren Qualitäts- und Sicherheitsanforderungen entspricht. Sie können den LLM bitten, seine Antwort zu überprüfen und bei Bedarf zu ändern. Wiederholen Sie diesen Vorgang, bis Sie ein gutes Ergebnis erhalten.
Denken Sie daran: Jedes Mal, wenn Sie eine LLM in Ihrer Ableitungspipeline aufrufen, dauert es länger, um mehr zu reagieren und kosten zu können. Sie müssen diese Kompromisse mit Ihrem Budget, Ihrer Geschwindigkeit und ihrer Funktionsweise ausgleichen.
Informationen zu den einzelnen Schritten, die Sie unternehmen müssen, um eine Pipeline für Ableitungen zu erstellen, finden Sie unter Erstellen eines fortgeschrittenen Retrieval-augmentierten Generierungssystems.
Andere Faktoren, die die Fertigstellung beeinflussen
Über das programmgesteuerte Ändern des Prompts, das Erstellen einer Ableitungs-Pipeline und andere Techniken hinaus werden weitere Details in Erweitern eines großsprachlichen Modells mit Retrieval-augmentierter Generierung und Feinabstimmung behandelt. Außerdem können Sie Parameter ändern, wenn Sie Aufrufe an die Azure OpenAI-API ausführen.
Eine Übersicht über die erforderlichen und optionalen Parameter, die verschiedene Aspekte der Vervollständigung beeinflussen können, finden Sie in der Chat Endpunkt Dokumentation. Wenn Sie ein SDK verwenden, lesen Sie die SDK-Dokumentation für die sprache, die Sie verwenden. Sie können mit den Parametern auf dem Playground experimentieren.
Temperature: Steuern Sie die Zufälligkeit der Ausgabe, die das Modell generiert. Bei Null wird das Modell deterministisch und wählt konsequent das wahrscheinlichste nächste Token aus seinen Trainingsdaten aus. Bei einer Temperatur von 1 balanciert das Modell zwischen der Auswahl von Tokens mit hoher Wahrscheinlichkeit und der Einführung von Zufälligkeit in die Ausgabe.Max Tokens: Steuert die maximale Länge der Antwort. Das Festlegen eines höheren oder niedrigeren Grenzwerts kann sich auf das Detail und den Umfang des generierten Inhalts auswirken.Top P(Nucleus-Sampling): Wird zusammen mitTemperatureverwendet, um die Zufälligkeit der Antwort zu steuern.Top Pschränkt KI ein, nur den obersten Prozentsatz der Wahrscheinlichkeitsmasse (P) zu berücksichtigen, wenn jedes Token generiert wird. Niedrigere Werte führen zu Text, der fokussierter und vorhersehbarer ist. Höhere Werte ermöglichen mehr Vielfalt.Frequency Penalty: Verringert die Wahrscheinlichkeit, dass das Modell dieselbe Zeile oder denselben Ausdruck wiederholt. Das Erhöhen dieses Werts trägt dazu bei, Redundanz im generierten Text zu vermeiden.Presence Penalty: Ermutigt das Modell, neue Konzepte und Begriffe in die Vervollständigung aufzunehmen.Presence Penaltyist nützlich, um vielfältigere und kreativere Ergebnisse zu generieren.Stop Sequences: Sie können eine oder mehrere Sequenzen angeben, um die API anzuweisen, das Generieren weiterer Token zu beenden.Store Sequencessind nützlich, um die Struktur der Ausgabe zu steuern, wie z. B. das Beenden einer Vervollständigung am Ende eines Satzes oder Absatzes.Logit Bias: Bietet Ihnen die Möglichkeit, die Wahrscheinlichkeit des Auftretens bestimmter Token in der Vervollständigung zu ändern.Logit Biaskann verwendet werden, um die Vervollständigung in eine bestimmte Richtung zu lenken oder um bestimmte Inhalte zu unterdrücken.
Sicherheitsvorkehrungen für Microsoft Azure OpenAI
Zusätzlich dazu, dass die Antworten der LLM an bestimmte Themen oder Domänen gebunden bleiben, sind Sie wahrscheinlich auch besorgt über die Arten von Fragen, die Ihre Benutzer der LLM stellen. Es ist wichtig, dass Sie die Art der generierten Antworten berücksichtigen.
Zunächst filtern API-Aufrufe von Microsoft Azure OpenAI Services automatisch Inhalte, die die API potenziell anstößig findet, und meldet dies in vielen Filterkategorien an Sie zurück.
Sie können die Inhaltsmoderations-API direkt verwenden, um inhalte auf potenziell schädliche Inhalte zu überprüfen.
Anschließend können Sie Azure AI Content Safety verwenden, um Textmoderation, Bildmoderation, Jailbreak-Risikoerkennung und geschützte Materialerkennung zu unterstützen. Dieser Dienst kombiniert eine Portaleinrichtung, Konfiguration und Berichterstellung mit Code, den Sie Ihrer Anwendung hinzufügen können, um schädliche Inhalte zu identifizieren.
KI-Agenten
KI-Agents sind eine neue Möglichkeit, generative KI-Apps zu erstellen, die eigenständig funktionieren. Sie verwenden LLMs zum Lesen und Schreiben von Text, und sie können auch eine Verbindung mit externen Systemen, APIs und Datenquellen herstellen. KI-Agents können komplexe Aufgaben verwalten, Entscheidungen mithilfe von Echtzeitdaten treffen und von der Verwendung von Personen lernen. Weitere Informationen zu KI-Agents finden Sie in der Schnellstartanleitung: Erstellen eines neuen Agents.
Toolaufruf
KI-Agents können externe Tools und APIs verwenden, um Informationen abzurufen, Maßnahmen zu ergreifen oder eine Verbindung mit anderen Diensten herzustellen. Mit diesem Feature können sie nicht nur Text generieren und komplexere Aufgaben erledigen.
Beispielsweise kann ein KI-Agent Echtzeit-Wetterupdates aus einer Wetter-API abrufen oder Details aus einer Datenbank abrufen, basierend auf dem, was ein Benutzer fragt. Weitere Informationen zum Aufrufen von Tools finden Sie unter Tool calling in Azure AI Foundry.
Model Context Protocol (MCP)
Mit dem Model Context Protocol (MCP) können Apps Funktionen und Kontext für ein großes Sprachmodell bereitstellen. Ein wichtiges Feature von MCP ist das Definieren von Tools, die KI-Agents zum Ausführen von Aufgaben verwenden. MCP-Server können lokal ausgeführt werden, aber Remote-MCP-Server sind für die Freigabe von Tools im Cloudmaßstab von entscheidender Bedeutung. Weitere Informationen finden Sie unter Build Agents mithilfe des Modellkontextprotokolls in Azure.
Abschließende Überlegungen zum Anwendungsdesign
Das Verständnis von Tokenisierung, Preisen, Kontextfenstern und die Implementierung programmgesteuerter Verbesserungen zur Verbesserung der Benutzererfahrung bei der Textgenerierung wirkt sich darauf aus, wie Sie Ihr generatives KI-System entwerfen.
Nachfolgend finden Sie eine kurze Liste der Punkte, die Sie berücksichtigen sollten, und andere Aspekte aus diesem Artikel, die sich auf Ihre Entscheidungen im Anwendungsentwurf auswirken können:
- Bewerten Sie die Notwendigkeit der Verwendung des neuesten KI-Modells anhand von Kostenüberlegungen. Modelle, die weniger teuer sind, reichen möglicherweise für die Anforderungen Ihrer Anwendung aus. Leistung mit Budgeteinschränkungen in Einklang bringen.
- Erwägen Sie, die Länge des Kontextfensters zu optimieren, um Kosten zu verwalten, ohne die Benutzererfahrung erheblich zu beeinträchtigen. Das Kürzen unnötiger Teile der Unterhaltung kann die Verarbeitungsgebühren reduzieren und gleichzeitig qualitätsbezogene Interaktionen beibehalten.
- Bewerten Sie, wie sich die Tokenisierung und die Granularität Ihrer Eingaben und Ausgaben auf die Leistung auswirken. Das Verständnis, wie Ihre gewählte LLM Tokenisierung verarbeitet, kann Ihnen helfen, die Effizienz Ihrer API-Aufrufe zu optimieren, die Kosten zu reduzieren und die Reaktionszeiten zu verbessern.
Wenn Sie sofort mit dem Aufbau einer generativen KI-Lösung experimentieren möchten, empfehlen wir Ihnen einen Blick auf Starten Sie mit dem Chat, indem Sie Ihr eigenes Datenbeispiel für Python verwenden. Das Lernprogramm ist auch in .NET-, Java-und JavaScript-verfügbar.