LLM für Unity ermöglicht die nahtlose Integration von Large Language Models (LLMs) in die Unity-Engine.
Es ermöglicht die Erstellung intelligenter Charaktere, mit denen Ihre Spieler für ein immersives Erlebnis interagieren können.
Das Paket enthält außerdem ein Retrieval-Augmented Generation (RAG)-System, das eine semantische Suche in Ihren Daten ermöglicht, die zur Erweiterung des Wissens des Charakters verwendet werden kann. LLM for Unity basiert auf der großartigen Bibliothek llama.cpp.
Auf einen Blick • So helfen Sie • Spiele mit LLM für Unity • Setup • So verwenden Sie • RAG • LLM-Modellverwaltung • Beispiele • Optionen • Lizenz
Plattformübergreifend! Windows, Linux, macOS und Android
? Läuft lokal ohne Internetzugang. Keine Daten verlassen jemals das Spiel!
⚡ Blitzschnelle Rückschlüsse auf CPU und GPU (Nvidia, AMD, Apple Metal)
? Unterstützt alle wichtigen LLM-Modelle
? Einfach einzurichten, Aufruf mit einer einzigen Codezeile
? Kostenlose Nutzung für persönliche und kommerzielle Zwecke
? Getestet auf Unity: 2021 LTS, 2022 LTS, 2023
? Kommende Veröffentlichungen
Markieren Sie das Repo, hinterlassen Sie uns eine Bewertung und verbreiten Sie die Nachricht über das Projekt!
Komm zu uns auf Discord und sag Hallo.
Tragen Sie bei, indem Sie Funktionsanfragen, Fehler oder sogar Ihre eigene PR einreichen.
Diese Arbeit ermöglicht noch coolere Funktionen!
Mündliches Urteil
Ich, Chatbot: AISYLUM
Namenlose Seelen der Leere
Mord in Gang 4
Pingelige KI für die Essenslieferung
KI emotionale Freundin
Fall abgeschlossen
Kontaktieren Sie uns, um Ihr Projekt hinzuzufügen!
Methode 1: Installation über den Asset Store
Öffnen Sie die LLM for Unity-Asset-Seite und klicken Sie auf Add to My Assets
Öffnen Sie den Paketmanager in Unity: Window > Package Manager
Wählen Sie im Dropdown-Menü die Option Packages: My Assets
aus
Wählen Sie das LLM for Unity
-Paket aus, klicken Sie auf Download
und dann Import
Methode 2: Installation mit dem GitHub-Repo:
Öffnen Sie den Paketmanager in Unity: Window > Package Manager
Klicken Sie auf die Schaltfläche +
und wählen Sie Add package from git URL
Verwenden Sie die Repository-URL https://github.com/undreamai/LLMUnity.git
und klicken Sie auf Add
Zuerst richten Sie das LLM für Ihr Spiel ein?:
Erstellen Sie ein leeres GameObject.
Klicken Sie im GameObject Inspector auf Add Component
und wählen Sie das LLM-Skript aus.
Laden Sie eines der Standardmodelle über die Schaltfläche Download Model
herunter (~GBs).
Oder laden Sie Ihr eigenes .gguf-Modell mit der Schaltfläche Load model
(siehe LLM-Modellverwaltung).
Dann können Sie jeden Ihrer Charaktere wie folgt einrichten ?♀️:
Erstellen Sie ein leeres GameObject für den Charakter.
Klicken Sie im GameObject Inspector auf Add Component
und wählen Sie das LLMCharacter-Skript aus.
Definieren Sie die Rolle Ihrer KI im Prompt
. Sie können den Namen der KI ( AI Name
) und des Spielers ( Player Name
) festlegen.
(Optional) Wählen Sie das oben konstruierte LLM im LLM
Feld aus, wenn Sie mehr als ein LLM-GameObject haben.
Sie können auch die LLM- und Zeicheneinstellungen nach Ihren Wünschen anpassen (siehe Optionen).
In Ihrem Skript können Sie es dann wie folgt verwenden?:
mit LLMUnity;public class MyScript { öffentlicher LLMCharacter llmCharacter; void HandleReply(string reply){// etwas mit der Antwort von modelDebug.Log(reply) machen; } void Game(){// deine Spielfunktion...string message = "Hallo Bot!";_ = llmCharacter.Chat(message, HandleReply);... }}
Sie können auch eine Funktion angeben, die aufgerufen wird, wenn die Modellantwort abgeschlossen ist.
Dies ist nützlich, wenn die Stream
Option für die kontinuierliche Ausgabe aus dem Modell aktiviert ist (Standardverhalten):
void ReplyCompleted(){// etwas tun, wenn die Antwort vom Modell abgeschlossen istDebug.Log("Die KI hat geantwortet"); } void Game(){// deine Spielfunktion...string message = "Hallo Bot!";_ = llmCharacter.Chat(message, HandleReply, ReplyCompleted);... }
Um den Chat zu stoppen, ohne auf seinen Abschluss zu warten, können Sie Folgendes verwenden:
llmCharacter.CancelRequests();
Wählen Sie abschließend im Inspektor des GameObjects Ihres Skripts das oben erstellte LLMCharacter GameObject als llmCharacter-Eigenschaft aus.
Das ist alles ✨!
Sie können auch:
Um eine Android-App zu erstellen, müssen Sie in den Player-Einstellungen das IL2CPP
-Skript-Backend und ARM64
als Zielarchitektur angeben.
Auf diese Einstellungen kann über das Menü Edit > Project Settings
im Abschnitt Player > Other Settings
zugegriffen werden.
Es ist auch eine gute Idee, die Option Download on Build
im LLM GameObject zu aktivieren, um das Modell beim Start herunterzuladen, um die App-Größe klein zu halten.
Um Ihren Chatverlauf automatisch zu speichern/laden, können Sie den Save
Parameter des LLMCharacter auf den Dateinamen (oder relativen Pfad) Ihrer Wahl festlegen. Die Datei wird im persistentDataPath-Ordner von Unity gespeichert. Dadurch wird auch der Status des LLM gespeichert, sodass die zuvor zwischengespeicherte Eingabeaufforderung nicht neu berechnet werden muss.
Um Ihren Chatverlauf manuell zu speichern, können Sie Folgendes verwenden:
llmCharacter.Save("Dateiname");
und um den Verlauf zu laden:
llmCharacter.Load("Dateiname");
Dabei ist Dateiname der Dateiname oder der relative Pfad Ihrer Wahl.
void WarmupCompleted(){// etwas tun, wenn das Aufwärmen abgeschlossen istDebug.Log("Die KI ist schön und bereit"); } void Game(){// deine Spielfunktion..._ = llmCharacter.Warmup(WarmupCompleted);... }
Das letzte Argument der Chat
-Funktion ist ein boolescher Wert, der angibt, ob die Nachricht zum Verlauf hinzugefügt werden soll (Standard: true):
void Game(){// deine Spielfunktion...string message = "Hallo Bot!";_ = llmCharacter.Chat(message, HandleReply, ReplyCompleted, false);... }
void Game(){// Ihre Spielfunktion...string message = "Die Katze ist weg";_ = llmCharacter.Complete(message, HandleReply, ReplyCompleted);... }
Hierfür können Sie die async
/ await
-Funktionalität nutzen:
async void Game(){// Ihre Spielfunktion...string message = "Hallo Bot!";string reply = waiting llmCharacter.Chat(message, HandleReply, ReplyCompleted);Debug.Log(reply);... }
using UnityEngine;using LLMUnity;public class MyScript : MonoBehaviour{LLM llm;LLMCharacter llmCharacter;async void Start(){// gameObject deaktivieren, damit theAwake nicht sofort aufgerufen wirdgameObject.SetActive(false);// Ein LLM-Objekt hinzufügenllm = gameObject. AddComponent<LLM>();// Setze das Modell unter Verwendung des Dateinamens des Modells.// Das Modell muss hinzugefügt werden zum LLM-Modellmanager (siehe LLM-Modellverwaltung) durch Laden oder Herunterladen.// Andernfalls kann die Modelldatei direkt in den StreamingAssets-Ordner kopiert werden.llm.SetModel("Phi-3-mini-4k-instruct-q4.gguf ");// optional: Sie können Loras auch auf ähnliche Weise festlegen und ihre Gewichte festlegen (falls benötigt)llm.AddLora("my-lora.gguf");llm.SetLoraWeight(0.5f);// optional: Sie können die Chat-Vorlage des Modells festlegen, wenn es nicht korrekt identifiziert wird// Sie finden eine Liste von Chat-Vorlagen im ChatTemplate.templates.Keysllm.SetTemplate("phi-3");// optional: Anzahl der Threads festlegensllm.numThreads = -1;// optional: GPU durch Festlegen der aktivieren Anzahl der auf it auszulagernden Modellebenenllm.numGPULayers = 10;// Füge ein LLMCharacter-Objekt hinzullmCharacter = gameObject.AddComponent<LLMCharacter>();// setze das LLM-Objekt, das den modelllmCharacter verarbeitet.llm = llm;// setze das Zeichen promptllmCharacter .SetPrompt("Ein Chat zwischen einem neugierigen Menschen und einem Assistenten für künstliche Intelligenz.");// KI und Spieler festlegen namellmCharacter.AIName = "AI";llmCharacter.playerName = "Human";// optional: Streaming auf false setzen, um das vollständige Ergebnis auf einmal zu erhalten// llmCharacter.stream = true;// optional: einen Speicherpfad festlegen// llmCharacter.save = "AICharacter1";// optional: Speichercache aktivieren, um eine Neuberechnung beim Laden einer Sicherungsdatei zu vermeiden (erfordert ~100 MB)// llmCharacter.saveCache = true;// optional: Grammatik festlegen// warte auf llmCharacter.SetGrammar("json.gbnf");// gameObjectgameObject.SetActive(true);}} erneut aktivieren
Sie können einen Remote-Server verwenden, um die Verarbeitung durchzuführen und Zeichen zu implementieren, die mit ihm interagieren.
Erstellen Sie den Server
So erstellen Sie den Server:
Erstellen Sie ein Projekt mit einem GameObject mithilfe des LLM
-Skripts wie oben beschrieben
Aktivieren Sie die Remote
Option des LLM
und konfigurieren Sie optional die Serverparameter: Port, API-Schlüssel, SSL-Zertifikat, SSL-Schlüssel
Erstellen und ausführen, um den Server zu starten
Alternativ können Sie zur einfacheren Bereitstellung eine Server-Binärdatei verwenden:
Führen Sie die obige Szene im Editor aus und kopieren Sie den Befehl aus den Debug-Meldungen (beginnend mit „Serverbefehl:“).
Laden Sie die Server-Binärdateien und DLLs herunter und extrahieren Sie sie in denselben Ordner
Suchen Sie im obigen Ordner nach der Architektur, an der Sie interessiert sind. Für Windows und CUDA verwenden Sie beispielsweise windows-cuda-cu12.2.0
.
Sie können die Architektur, die für Ihr System funktioniert, auch anhand der Debug-Meldungen überprüfen (beginnend mit „Architektur wird verwendet“).
Wechseln Sie von der Befehlszeile aus in das ausgewählte Architekturverzeichnis und starten Sie den Server, indem Sie den oben kopierten Befehl ausführen.
Erstelle die Charaktere
Erstellen Sie ein zweites Projekt mit den Spielfiguren mithilfe des LLMCharacter
-Skripts wie oben beschrieben. Aktivieren Sie die Option „ Remote
“ und konfigurieren Sie den Host mit der IP-Adresse (beginnend mit „http://“) und dem Port des Servers.
Die Embeddings
-Funktion kann verwendet werden, um die Einbettungen einer Phrase zu erhalten:
List<float> embeddings =wait llmCharacter.Embeddings("Hallo, wie geht es dir?");
Eine ausführliche Dokumentation zur Funktionsebene finden Sie hier:
LLM for Unity implementiert eine superschnelle Ähnlichkeitssuchfunktion mit einem Retrieval-Augmented Generation (RAG)-System.
Es basiert auf der LLM-Funktionalität und der Approximate Nearest Neighbors (ANN)-Suche aus der usearch-Bibliothek.
Die semantische Suche funktioniert wie folgt.
Erstellen der Daten Sie stellen Texteingaben (eine Phrase, einen Absatz, ein Dokument) bereit, die Sie den Daten hinzufügen können.
Jede Eingabe wird in Blöcke aufgeteilt (optional) und mit einem LLM in Einbettungen codiert.
Suchen Sie können dann nach einer Abfragetexteingabe suchen.
Die Eingabe wird erneut codiert und die ähnlichsten Texteingaben oder Datenblöcke werden abgerufen.
So verwenden Sie die semantische Suche:
Erstellen Sie wie oben beschrieben ein GameObject für das LLM. Laden Sie eines der bereitgestellten RAG-Modelle herunter oder laden Sie Ihr eigenes (gute Optionen finden Sie in der MTEB-Bestenliste).
Erstellen Sie ein leeres GameObject. Klicken Sie im GameObject Inspector auf Add Component
und wählen Sie das RAG
-Skript aus.
Wählen Sie im Dropdown-Menü „Suchtyp“ des RAG Ihre bevorzugte Suchmethode aus. SimpleSearch
ist eine einfache Brute-Force-Suche, während DBSearch
eine schnelle ANN-Methode ist, die in den meisten Fällen bevorzugt werden sollte.
Im Dropdown-Menü „Chunking Type“ des RAG können Sie eine Methode zum Aufteilen der Eingaben in Chunks auswählen. Dies ist nützlich, um in jedem Datenteil eine einheitlichere Bedeutung zu haben. Es werden Chunking-Methoden zur Aufteilung nach Token, Wörtern und Sätzen bereitgestellt.
Alternativ können Sie die RAG aus Code erstellen (wobei llm Ihr LLM ist):
RAG rag = gameObject.AddComponent<RAG>(); rag.Init(SearchMethods.DBSearch, ChunkingMethods.SentenceSplitter, llm);
In Ihrem Skript können Sie es dann wie folgt verwenden?:
mit LLMUnity;public class MyScript : MonoBehaviour{ RAG-Lappen; async void Game(){...string[] inputs = new string[]{ "Hallo! Ich bin ein Suchsystem.", "Das Wetter ist schön. Ich mag es.", "Ich bin ein RAG-System "};// füge die Eingaben zu RAGforeach hinzu (String-Eingabe in Eingaben) waiting rag.Add(input);// erhalte die 2 ähnlichsten Eingaben und ihren Abstand (Unähnlichkeit) zur Suchabfrage(string[] Ergebnisse, float [] Entfernungen) = wait rag.Search("hello!", 2);// um die ähnlichsten Textteile (Chnuks) zu erhalten, können Sie die Option returnChunks aktivierenrag.ReturnChunks(true);(results, distances) = waiting rag.Search("hello !", 2);... }}
Sie können den RAG-Status speichern (im Ordner Assets/StreamingAssets
gespeichert):
rag.Save("rag.zip");
und laden Sie es von der Festplatte:
Warten Sie auf rag.Load("rag.zip");
Mit dem RAG können Sie relevante Daten basierend auf einer Benutzernachricht an das LLM weiterleiten:
string message = „Wie ist das Wetter?“; (string[] ähnlichePhrasen, float[] Entfernungen) = waiting rag.Search(message, 3); string prompt = „Beantworten Sie die Benutzeranfrage basierend auf den bereitgestellten Daten.nn“; prompt += $"Benutzerabfrage: {message}nn"; prompt += $"Data:n"; foreach (Zeichenfolge „likePhrase“ in „likePhrases“) prompt += $"n- {similarPhrase}"; _ = llmCharacter.Chat(prompt, HandleReply, ReplyCompleted);
Das RAG
Beispiel enthält eine Beispiel-RAG-Implementierung sowie eine Beispiel-RAG-LLM-Integration.
Das ist alles ✨!
LLM für Unity verwendet einen Modellmanager, der es ermöglicht, LLMs zu laden oder herunterzuladen und sie direkt in Ihrem Spiel zu versenden.
Der Modellmanager ist als Teil des LLM GameObject zu finden:
Sie können Modelle über die Schaltfläche Download model
herunterladen.
LLM for Unity umfasst verschiedene hochmoderne Modelle, die für verschiedene Modellgrößen integriert sind und mit der Q4_K_M-Methode quantisiert werden.
Alternative Modelle können von HuggingFace im .gguf-Format heruntergeladen werden.
Sie können ein Modell lokal herunterladen und mit der Schaltfläche Load model
laden oder die URL im Feld Download model > Custom URL
kopieren, um es direkt herunterzuladen.
Wenn ein HuggingFace-Modell keine gguf-Datei bereitstellt, kann es mit diesem Online-Konverter in gguf konvertiert werden.
Die zur Erstellung der Eingabeaufforderungen verwendete Chat-Vorlage wird automatisch aus dem Modell (falls ein relevanter Eintrag vorhanden ist) oder dem Modellnamen ermittelt.
Bei einer falschen Identifizierung können Sie eine andere Vorlage aus der Dropdown-Liste „Chat-Vorlage“ auswählen.
Im Modellmanager hinzugefügte Modelle werden während des Bauprozesses in das Spiel kopiert.
Sie können den Einbau eines Modells ausschließen, indem Sie das Kontrollkästchen „Erstellen“ deaktivieren.
Um das Modell zu entfernen (aber nicht von der Festplatte zu löschen), können Sie auf die Schaltfläche „Papierkorb“ klicken.
Der Pfad und die URL (falls heruntergeladen) jedes hinzugefügten Modells werden in der erweiterten Ansicht des Modellmanager-Zugriffs mit der Schaltfläche >>
angezeigt:
Sie können leichtere Builds erstellen, indem Sie die Option Download on Build
auswählen.
Mit dieser Option werden die Modelle beim ersten Start des Spiels heruntergeladen, anstatt in den Build kopiert zu werden.
Wenn Sie ein Modell lokal geladen haben, müssen Sie dessen URL über die erweiterte Ansicht festlegen, andernfalls wird es im Build kopiert.
❕ Bevor Sie ein Modell verwenden, überprüfen Sie unbedingt dessen Lizenz ❕
Der Ordner „Samples~“ enthält mehrere Beispiele für Interaktionen ?:
SimpleInteraction: Demonstriert eine einfache Interaktion mit einem KI-Charakter
MultipleCharacters: Demonstriert eine einfache Interaktion mit mehreren KI-Charakteren
RAG: RAG-Probe. Enthält ein Beispiel für die Verwendung des RAG zum Einspeisen von Informationen in ein LLM
ChatBot: Demonstriert die Interaktion zwischen einem Spieler und einer KI mit einer Benutzeroberfläche, die einer Messaging-App ähnelt (siehe Abbildung unten).
KnowledgeBaseGame: Einfaches Detektivspiel, das eine Wissensdatenbank nutzt, um dem LLM Informationen basierend auf Google/MysteryofThreebots bereitzustellen
AndroidDemo: Beispiel-Android-App mit einem Startbildschirm mit Modell-Download-Fortschritt
So installieren Sie ein Beispiel:
Öffnen Sie den Paketmanager: Window > Package Manager
Wählen Sie das LLM for Unity
-Paket aus. Klicken Sie auf der Registerkarte Samples
“ neben dem Beispiel, das Sie installieren möchten, auf Import
.
Die Beispiele können mit der Scene.unity
-Szene ausgeführt werden, die sie in ihrem Ordner enthalten.
Wählen Sie in der Szene das LLM
GameObject aus und klicken Sie auf die Schaltfläche „ Download Model
, um ein Standardmodell herunterzuladen, oder Load model
um Ihr eigenes Modell zu laden (siehe LLM-Modellverwaltung).
Speichern Sie die Szene, laufen Sie und genießen Sie!
Show/Hide Advanced Options
Schalten Sie um, um die erweiterten Optionen unten anzuzeigen/auszublenden
Log Level
Wählen Sie aus, wie ausführlich die Protokollmeldungen sein sollen
Wählen Sie Use extras
, um zusätzliche Funktionen zu installieren und deren Nutzung zu ermöglichen (Flash-Aufmerksamkeit und IQ-Quants).
Remote
Wählen Sie diese Option aus, um Fernzugriff auf das LLM bereitzustellen
Port
-Port zum Ausführen des LLM-Servers (wenn Remote
eingestellt ist)
Num Threads
Anzahl der zu verwendenden Threads (Standard: -1 = alle)
Num GPU Layers
Anzahl der Modellebenen, die auf die GPU verlagert werden sollen. Bei der Einstellung 0 wird die GPU nicht verwendet. Verwenden Sie eine große Zahl, z. B. >30, um die GPU so weit wie möglich zu nutzen. Beachten Sie, dass höhere Werte der Kontextgröße mehr VRAM verbrauchen. Wenn die GPU des Benutzers nicht unterstützt wird, greift das LLM auf die CPU zurück
Debug
Wählen Sie diese Option aus, um die Ausgabe des Modells im Unity-Editor zu protokollieren
Wenn Sie beispielsweise Parallel Prompts
auf 1 und Slot 0 für alle LLMCharacter-Objekte setzen, wird der vollständige Kontext verwendet, aber der gesamte Prompt muss berechnet werden (kein Caching), wenn ein LLMCharacter-Objekt für den Chat verwendet wird.
Dont Destroy On Load
Wählen Sie diese Option, um das LLM-GameObject beim Laden einer neuen Szene nicht zu zerstören
Parallel Prompts
Anzahl der Eingabeaufforderungen/Slots, die parallel erfolgen können (Standard: -1 = Anzahl der LLMCharacter-Objekte). Beachten Sie, dass die Kontextgröße auf die Slots aufgeteilt ist. API key
API-Schlüssel, der verwendet werden soll, um den Zugriff auf Anforderungen von LLMCharacter-Objekten zu ermöglichen (wenn Remote
festgelegt ist)
Load SSL certificate
ermöglicht das Laden eines SSL-Zertifikats für die Ende-zu-Ende-Verschlüsselung von Anfragen (sofern Remote
eingestellt ist). Erfordert auch einen SSL-Schlüssel.
Load SSL key
ermöglicht das Laden eines SSL-Schlüssels für die Ende-zu-Ende-Verschlüsselung von Anfragen (wenn Remote
eingestellt ist). Erfordert auch ein SSL-Zertifikat.
SSL certificate path
Das SSL-Zertifikat, das für die Ende-zu-Ende-Verschlüsselung von Anfragen verwendet wird (wenn Remote
eingestellt ist).
SSL key path
Der SSL-Schlüssel, der für die Ende-zu-Ende-Verschlüsselung von Anfragen verwendet wird (wenn Remote
eingestellt ist).
Download model
Klicken Sie hier, um eines der Standardmodelle herunterzuladen
Load model
Klicken Sie hier, um Ihr eigenes Modell im .gguf-Format zu laden
Download on Start
ermöglicht das Herunterladen der LLM-Modelle beim ersten Start des Spiels. Alternativ werden die LLM-Modelle direkt im Build kopiert
Context Size
Größe des Eingabeaufforderungskontexts (0 = Kontextgröße des Modells) Download lora
Klicken Sie hier, um ein LoRA-Modell im .gguf-Format herunterzuladen
Load lora
Klicken Sie, um ein LoRA-Modell im .gguf-Format zu laden
Batch Size
Batch-Größe für sofortige Verarbeitung (Standard: 512)
Model
den Pfad des verwendeten Modells (relativ zum Ordner „Assets/StreamingAssets“).
Chat Template
Die Chat-Vorlage, die für das LLM verwendet wird
Lora
der Pfad der verwendeten LoRAs (relativ zum Ordner „Assets/StreamingAssets“)
Lora Weights
die Gewichte der verwendeten LoRAs
Flash Attention
Klicken Sie, um Flash-Aufmerksamkeit im Modell zu verwenden (wenn Use extras
aktiviert ist).
Base Prompt
Eine gemeinsame Basis-Eingabeaufforderung zur Verwendung für alle LLMCharacter-Objekte, die das LLM verwenden
Show/Hide Advanced Options
Schalten Sie um, um die erweiterten Optionen unten anzuzeigen/auszublenden
Log Level
Wählen Sie aus, wie ausführlich die Protokollmeldungen sein sollen
Wählen Sie Use extras
, um zusätzliche Funktionen zu installieren und deren Nutzung zu ermöglichen (Flash-Aufmerksamkeit und IQ-Quants).
Remote
ob das verwendete LLM remote oder lokal ist
LLM
das LLM GameObject (wenn Remote
nicht eingestellt ist)
Hort
IP des LLM-Servers (wenn Remote
eingestellt ist)
Port
-Port des LLM-Servers (falls Remote
eingestellt ist)
Num Retries
Anzahl der HTTP-Anforderungswiederholungen vom LLM-Server (wenn Remote
eingestellt ist)
API key
API-Schlüssel des LLM-Servers (falls Remote
eingestellt ist)
Save
den Dateinamen oder den relativen Pfad Save Cache
Wählen Sie diese Option, um den LLM-Status zusammen mit dem Chat-Verlauf zu speichern. Der LLM-Status beträgt typischerweise etwa 100 MB+.
Debug Prompt
Wählen Sie diese Option aus, um die erstellten Eingabeaufforderungen im Unity-Editor zu protokollieren
Player Name
Der Name des Spielers
AI Name
den Namen der KI
Prompt
Beschreibung der KI-Rolle
Wählen Sie Stream
aus, um die Antwort des Modells bei der Erstellung zu erhalten (empfohlen!).
Wenn es nicht ausgewählt ist, wird die vollständige Antwort des Modells auf einmal empfangen
Num Predict
die maximale Anzahl der vorherzusagenden Token (Standard: 256, -1 = unendlich, -2 = bis der Kontext gefüllt ist) Load grammar
Klicken Sie hier, um eine Grammatik im .gbnf-Format zu laden
Grammar
Der Pfad der verwendeten Grammatik (relativ zum Ordner „Assets/StreamingAssets“).
Cache Prompt
speichert die laufende Eingabeaufforderung aus dem Chat (Standard: true) Slot
des Servers, der für die Berechnung verwendet werden soll. Der Wert kann von 0 bis Parallel Prompts
-1 eingestellt werden (Standard: -1 = neuer Slot für jedes Zeichen)
Seed
zur Reproduzierbarkeit. Für jedes Mal zufällige Ergebnisse verwenden Sie -1
Temperature
LLM-Temperatur, niedrigere Werte ergeben deterministischere Antworten (Standard: 0,2)Top K
Top-K-Sampling (Standard: 40, 0 = deaktiviert)Top P
Top-P-Abtastung (Standard: 0,9, 1,0 = deaktiviert)Min P
Mindestwahrscheinlichkeit für die Verwendung eines Tokens (Standard: 0,05)Repeat Penalty
steuert die Wiederholung von Token-Sequenzen im generierten Text (Standard: 1.1)Presence Penalty
bei wiederholter Token-Anwesenheit (Standard: 0,0, 0,0 = deaktiviert)Frequency Penalty
für wiederholte Token-Häufigkeitsstrafe (Standard: 0,0, 0,0 = deaktiviert) Tfs_z
: Tail Free Sampling mit Parameter z aktivieren (Standard: 1.0, 1.0 = deaktiviert).
Typical P
: Aktivieren Sie die lokal typische Probenahme mit Parameter p (Standard: 1,0, 1,0 = deaktiviert).
Repeat Last N
: letzte N Token, die zur Bestrafung von Wiederholungen berücksichtigt werden sollen (Standard: 64, 0 = deaktiviert, -1 = ctx-Größe).
Penalize Nl
: Zeilenumbruch-Token bestrafen, wenn die Wiederholungsstrafe angewendet wird (Standard: true).
Penalty Prompt
: Aufforderung zum Zweck der Strafauswertung. Kann entweder null
, eine Zeichenfolge oder ein Array von Zahlen sein, die Token darstellen (Standard: null
= ursprüngliche prompt
verwenden).
Mirostat
: Mirostat-Sampling aktivieren, um die Verwirrung während der Textgenerierung zu kontrollieren (Standard: 0, 0 = deaktiviert, 1 = Mirostat, 2 = Mirostat 2.0).
Mirostat Tau
: Legen Sie die Mirostat-Zielentropie fest, Parameter Tau (Standard: 5,0).
Mirostat Eta
: Stellen Sie die Mirostat-Lernrate ein, Parameter eta (Standard: 0,1).
N Probs
: Wenn größer als 0, enthält die Antwort auch die Wahrscheinlichkeiten der Top-N-Tokens für jeden generierten Token (Standard: 0).
Ignore Eos
: Aktivieren Sie diese Option, um End-of-Stream-Tokens zu ignorieren und mit der Generierung fortzufahren (Standard: false).
Die Lizenz von LLM für Unity lautet MIT (LICENSE.md) und verwendet Software von Drittanbietern mit MIT- und Apache-Lizenzen. Für einige im Asset enthaltene Modelle gelten eigene Lizenzbedingungen. Bitte lesen Sie diese, bevor Sie die einzelnen Modelle verwenden. Lizenzen von Drittanbietern finden Sie in (Third Party Notices.md).