Was sind überhaut LLMs?
Large Language Models (LLMs) sind fortschrittliche KI-Systeme, die mithilfe riesiger Datenmengen und komplexer Algorithmen darauf trainiert werden, menschliche Sprache zu verstehen und zu generieren. Sie basieren auf neuronalen Netzen und enthalten Milliarden von Parametern, die es ihnen ermöglichen, Muster in Texten zu erkennen und natürliche, kontextbezogene Antworten zu liefern. Ein Beispiel für solche Modelle ist GPT (Generative Pre-trained Transformer), das für sehr viele Aufgaben eingesetzt werden kann – von der Beantwortung von Fragen über die Contenterstellung bis hin zur Unterstützung bei kreativen Prozessen.
Warum sind LLM-Parameter bei der Verwendung von LLMs sinnvoll?
LLM-Parameter sind entscheidend, weil sie die Anpassung und Steuerung der Antworten eines LLMs ermöglichen. Sie bestimmen, wie kreativ, präzise oder umfangreich die generierten Antworten sind und können so dabei helfen, die Leistung des Modells für spezifische Anwendungen zu optimieren. Das bedeutet, durch die richtige Kombination und Feinjustierung dieser Parameter kann man die Reaktionen des Modells gezielt steuern und die Qualität der Ergebnisse in verschiedenen Kontexten maximieren.
Welche LLM-Parameter gibt es?
Es gibt sehr viele verschiedene Parameter, die sich in verschiedene Kategorien unterteilen lassen.
Es folgt eine Übersicht von einigen Parametern, die aus OpenAI, Anthropic und Google verwendet stammen, unterteilt in Kategorien:
1. Kreativität und Zufälligkeit
Temperature
Der Temperature-Parameter beeinflusst die Kreativität und Zufälligkeit der Antworten, indem er die Wahrscheinlichkeit verändert, mit der bestimmte Wörter ausgewählt werden. Im Allgemeinen steuert er, wie „mutig“ das Modell bei der Auswahl der Wörter ist:
Temperature | Erläuterung | Beispiel “Beschreibe einen sonnigen Tag im Park” |
---|---|---|
Niedrig (z. B. temperature=0.2) | Hier bleibt das Modell konservativ und wählt die wahrscheinlichsten Wörter. Das Ergebnis ist eine präzise und vorhersehbare Antwort mit geringem Kreativitätsgrad. | Der Himmel ist klar, und die Sonne scheint hell. Menschen genießen das schöne Wetter, einige sitzen auf Bänken, andere gehen spazieren. Es ist ruhig und friedlich. |
Mittel (z. B. temperature=0.7) | Bei einer mittleren Einstellung wird die Wortauswahl ein wenig zufälliger, sodass das Modell eine Mischung aus Präzision und Kreativität bietet. | Die Sonne scheint warm auf die grünen Wiesen, und Kinder lachen und spielen auf dem Spielplatz. Vögel zwitschern in den Bäumen, während ein leichter Wind durch die Blätter raschelt. Menschen liegen auf Picknickdecken und genießen den schönen Tag. |
Hoch (z. B. temperature=1.0) | Eine hohe Temperature erhöht die Zufälligkeit und die Kreativität der Antworten deutlich. Das Modell wählt auch weniger wahrscheinliche Wörter, was zu kreativeren, aber möglicherweise auch unvorhersehbaren und unlogischen Ergebnissen führen kann. | Die Sonne tanzt auf den Wellen des kleinen Teichs, während bunte Drachen am Himmel schweben. Kinder jagen Schmetterlinge über die Wiesen, und ein Hund mit einem roten Halstuch springt aufgeregt einem Ball hinterher. Das Lachen mischt sich mit dem Klang einer Gitarre, die jemand unter einem Baum spielt. |
Top K und Top P
Top K und Top P sind ebenfalls zwei Parameter, die zur Steuerung der Zufälligkeiten verwendet werden:
Top K:
Mit Top K wird festgelegt, dass das Modell bei der Auswahl des nächsten Tokens nur aus den K wahrscheinlichsten Wörtern wählen kann.
Zum Beispiel, wenn top_k=10 ist, berücksichtigt das Modell nur die 10 wahrscheinlichsten Wörter und ignoriert alle anderen.
Ein niedriger Wert (z. B. top_k=5) schränkt die Token-Auswahl stark ein und sorgt für präzise Antworten, da das Modell aus einer kleinen Gruppe gängiger Worte auswählt.
Ein höherer Wert für Top K lässt das Modell kreativer antworten, da es aus einer größeren Gruppe von möglichen Wörtern wählen kann.
Top P (Nucleus Sampling):
Top P legt eine Wahrscheinlichkeitswelle fest, die das Modell bei der Auswahl der nächsten Token berücksichtigt. Anstatt eine feste Anzahl an Wörtern (wie bei Top K) auszuwählen, betrachtet das Modell die wahrscheinlichsten Wörter, bis die kombinierte Wahrscheinlichkeit dieser Wörter die Schwelle von Top P erreicht.
Bei top_p=0.7 beispielsweise wird das Modell nur aus den wahrscheinlichsten Wörtern wählen, deren kumulierte Wahrscheinlichkeit mindestens 70 % beträgt, und alle anderen ignorieren.
Mit einem niedrigen Wert für Top P (z. B. top_p=0.5) bleibt das Modell sehr „sicher“ und wählt häufigere Wörter, während ein höherer Wert (z. B. top_p=0.9) dem Modell mehr kreative Freiheit gibt, indem es eine größere Auswahl an Wörtern zulässt, aber dennoch durch die Wahrscheinlichkeitsgrenze gesteuert wird.
2. Kontrolle der Ausgabe
Max Tokens
Der Max Tokens-Parameter legt fest, wie viele Token das Modell maximal generieren darf. Ein Token kann ein Wortteil, ein ganzes Wort oder ein Satzzeichen sein; die Anzahl der Tokens hängt also davon ab, wie komplex die Worte und Sätze sind.
Wenn Max Tokens beispielsweise auf 100 festgelegt ist (max_tokens=100), liefert das Modell eine Antwort, die maximal 100 Token umfasst.
Stop Sequence
Stop Sequence bestimmt genaue Zeichenfolgen (Strings), bei deren Erreichen das Modell die Texterstellung automatisch beendet. Dadurch wird eine präzise Steuerung der Ausgabe ermöglicht.
Angenommen, die Stop Sequence wird auf stop=[“Benutzer:”] gesetzt. Sobald das Modell diese Zeichenfolge in der Ausgabe generiert, wird die Generierung gestoppt.
3. Beeinflussung der Wortwahl
Frequency Penalty
Der Parameter steuert, wie stark das Modell die Wiederholung von Wörtern in der generierten Antwort bestraft. Ein höherer Frequency Penalty-Wert reduziert die Wahrscheinlichkeit, dass Wörter mehrfach verwendet werden, was besonders hilfreich ist, um Texte abwechslungsreicher und natürlicher klingen zu lassen.
Mit einem Frequency Penalty-Wert von 0.7 (frequency_penalty=0.5) beispielsweise wird das Modell angeregt, sich weniger zu wiederholen.
Ohne Penalty: “Die Katze ist eine Katze, die oft draußen. Es ist eine schöne Katze.”
Mit Penalty: “Die Katze ist schön und liebt es, draußen zu sein.”
Presence Penalty
Der Presence Penalty-Parameter verhindert Wortwiederholungen noch strenger als der Frequency Penalty und beeinflusst das Modell, bestimmte Wörter nur einmal oder sehr selten zu verwenden. Während der Frequency Penalty auf die Häufigkeit der Wiederholung eines Wortes abzielt, wirkt sich der Presence Penalty bereits auf die erste Verwendung eines Begriffs aus und verhindert somit dessen erneute Nennung noch stärker.
Zum Beispiel bei presence_penalty=0.6 versucht das Modell, bereits verwendete Begriffe zu vermeiden.
Ohne Penalty: “Der Sonnenuntergang ist wunderschön. Der Sonnenuntergang ist rot.”
Mit Penalty: “Der Sonnenuntergang ist wunderschön. Die Farben sind beeindruckend.”
Logit Bias
Logit Bias wird auf Token-Ebene angewendet und erlaubt es, die Wahrscheinlichkeit eines bestimmten Tokens zu erhöhen (positiver Logit Bias) oder zu verringern (negativer Logit Bias), sodass das Modell diese Wörter häufiger bzw. seltener wählt.
Durch logit_bias={“1234”: -100}würde man erzielen, dass die Wahrscheinlichkeit für das spezifische Token (in diesem Fall “1234”) so stark reduziert wird (-100), dass das Modell dieses Wort praktisch nicht verwendet.
4. Fortgeschrittene Parameter
Function Calling
Function Calling ermöglicht es Large Language Models, auf externe Funktionen und APIs zuzugreifen und so mit anderen Tools oder Systemen zu interagieren, um komplexere Aufgaben zu erledigen. Anstatt lediglich Texte zu generieren, kann ein LLM mithilfe von Function Calling gezielt Daten von externen Systemen abrufen, Berechnungen durchführen oder Aktionen auslösen, die über die reine Texterstellung hinausgehen.
Verwendet man function_call=”fetch_weather” wird, sofern das LLM-Framework die Funktion unterstützt, eine externe Funktion namens “fetch_weather” aufgerufen, um Wetterdaten aus einem externen System abzurufen. Das Modell verbindet sich dabei mit einer API, um relevante Informationen bereitzustellen.
Structured Outputs
Der Structured Outputs-Parameter ermöglicht es, die Antwort eines LLMs so zu steuern, dass sie in einem strukturierten, maschinenlesbaren Format wie JSON ausgegeben wird und einem vorgegebenen Schema entspricht. Sie erfordern somit eine genaue Einhaltung eines definierten Schemas und bieten damit mehr Kontrolle und Zuverlässigkeit, wenn exakte Datenstrukturen notwendig sind.
Übergibt man der Anfrage zum Beispiel das Schema schema={“product_name”: “string”, “price”: “number”}, wird die Ausgabe gezwungen, dem definierten Schema zu folgen. Ein Output könnte hier wie folgt aussehen:
{
“product_name”: “iPhone 15”,
“price”: 799.99
}
JSON Mode
JSON Mode ist ähnlich zu Structured Outputs und zielt ebenfalls darauf ab, die Ausgabe eines LLMs als maschinenlesbares JSON-Format bereitzustellen. JSON Mode ist dabei ein wenig simpler und bietet eine einfache JSON-Formatierung, ohne Garantie für eine festgelegte Struktur oder bestimmte Datentypen, und ist flexibel, aber weniger strikt.
Bei der Verwendung von output_format=”json” wird somit die Antwort im JSON-Format ausgegeben, jedoch ohne die Einschränkung eines festen Schemas.
LLM Streaming
Durch LLM Streaming kann der Nutzer die Antwort des LLMs in Echtzeit oder schrittweise empfangen, anstatt auf die vollständige Generierung des gesamten Outputs zu warten. Hier werden die generierten Tokens (Worte, Satzteile oder Zeichen) sofort an den Nutzer gesendet, sobald sie vom Modell erstellt werden.
Aktiviere stream=True im API-Aufruf, um die Ausgabe schrittweise zu empfangen.
Logprobs
Der Logprobs-Parameter ermöglicht es, die Wahrscheinlichkeit für jedes generierte Wort in der Ausgabe zu analysieren. Mithilfe von Logprobs können Entwickler und Analysten sehen, wie wahrscheinlich das Modell bestimmte Wörter ausgewählt hat und wie „sicher“ das Modell bei seiner Wortwahl war. Diese Wahrscheinlichkeiten werden dabei in logarithmischer Form dargestellt.
Mit logprobs=5 erhält man beispielsweise die Wahrscheinlichkeiten der Top-5-Tokens pro Wort.
Prompt Caching
Prompt Caching ist eine Technik, die verwendet wird, um die Leistung und Kosten von Anwendungen, die auf Large Language Models basieren, zu optimieren. Beim Prompt Caching werden häufig verwendete Prompts und deren generierte Antworten zwischengespeichert. Wenn dieselbe Eingabe erneut auftritt, kann die Anwendung die gespeicherte Antwort aus dem Cache abrufen, anstatt das Modell jedes Mal neu abzufragen.
Seed
Der Seed-Parameter wird verwendet, um die Zufälligkeit bei der Texterstellung eines LLMs zu kontrollieren und dadurch reproduzierbare (deterministische) Outputs zu erhalten. In der Regel erzeugen LLMs bei jeder Anfrage leicht unterschiedliche Antworten, da sie probabilistisch arbeiten. Durch das Setzen eines Seed-Wertes wird die Zufälligkeit jedoch stark eingeschränkt, sodass das Modell bei gleichen Eingaben konsistente Ergebnisse liefert.
Wenn verfügbar, lege den Seed-Parameter fest (z. B. seed=42), um deterministische Ausgaben zu erzielen.
Fazit zu LLM-Parametern
Die Parameter sind ein hilfreiches Werkzeug, um die Funktion und Ausgabe von LLMs gezielt zu steuern. Durch Parameter wie Temperature, Top K und Top P kann beispielsweise die Kreativität und Zufälligkeit der Antworten feinjustiert werden, während Max Tokens und Stop Sequence die Textlänge und Struktur kontrollieren. Insgesamt machen diese Parameter LLMs flexibler und anpassungsfähiger, sodass sie für eine Vielzahl von Anwendungsfällen, von Chatbots und Kundenservice bis hin zur Datenanalyse und kreativen Texterstellung, optimal eingesetzt werden können. Die richtige Kombination und Feinabstimmung dieser Parameter maximiert den Nutzen der LLMs und ermöglicht maßgeschneiderte Antworten und eine verbesserte Benutzererfahrung.