Promptwright ist eine Python-Bibliothek von Stacklok, die für die Generierung großer synthetischer Datensätze mithilfe eines lokalen LLM entwickelt wurde. Die Bibliothek bietet einen flexiblen und benutzerfreundlichen Satz von Schnittstellen, die es Benutzern ermöglichen, zeitnah geführte synthetische Datensätze zu generieren.
Promptwright wurde von Redotvideo/Pluto inspiriert, eigentlich begann es als Fork, wurde aber größtenteils neu geschrieben, um die Generierung von Datensätzen anhand eines lokalen LLM-Modells zu ermöglichen, im Gegensatz zu OpenAI, wo die Kosten unerschwinglich hoch sein können.
Die Bibliothek ist mit Ollama verbunden, sodass Sie ganz einfach ein Modell abrufen und Promptwright ausführen können.
Lokale LLM-Client-Integration : Interagieren Sie mit Ollama-basierten Modellen
Konfigurierbare Anweisungen und Eingabeaufforderungen : Definieren Sie benutzerdefinierte Anweisungen und Systemeingabeaufforderungen
Push to Hugging Face : Schieben Sie den generierten Datensatz auf Hugging Face Hub.
Python 3.11+
promptwright
Bibliothek installiert
Ollama CLI installiert und ausgeführt (siehe Ollama-Installation).
Ein über Ollama gezogenes Modell (siehe Modellkompatibilität)
Um die Voraussetzungen zu installieren, können Sie die folgenden Befehle verwenden:
pip install promptwright Ollama servieren ollama pull {model_name} # welches Modell auch immer Sie verwenden möchten
Im examples
finden Sie einige Beispiele, die veranschaulichen, wie Sie mit der Bibliothek verschiedene themenbasierte Datensätze generieren.
Um ein Beispiel auszuführen:
Stellen Sie sicher, dass Sie Ollama gestartet haben, indem ollama serve
ausführen.
Stellen Sie sicher, dass das erforderliche Modell heruntergeladen wurde (z. B. llama3.2:latest
).
Legen Sie den model_name
in der ausgewählten Beispieldatei auf das Modell fest, das Sie heruntergeladen haben.
engine = LocalDataEngine( args=LocalEngineArguments( Instructions="Generieren Sie Aufforderungen zum kreativen Schreiben und Beispielantworten.", system_prompt="Sie sind ein Dozent für kreatives Schreiben, der Aufforderungen zum Schreiben und Beispielantworten bereitstellt.", model_name="llama3.2:latest", Temperature =0,9, # Höhere Temperatur für kreativere Variationen max_retries=2,
Führen Sie die von Ihnen gewählte Beispieldatei aus:
Python-Beispiel/creative_writing.py
Der generierte Datensatz wird in einer JSONL-Datei unter dem in dataset.save()
festgelegten Wert gespeichert.
{ "Nachrichten": [ { „role“: „system“, „content“: „Ihre Aufgabe ist es, ein immersives Virtual-Reality-Erlebnis zu entwerfen, das Benutzer in eine fantastische Welt voller Wunder entführt.“ }, { „role“: „user“, „content“: „Erstellen Sie eine beschreibende Passage über einen Charakter, der seine verborgenen Talente entdeckt.“ }, { „role“: „assistant“, „content“: „Als sie auf die Leinwand starrte, schwebten Emmas Finger über den Pinseln, als zögerte sie, die Farben, die in ihr eingeschlossen waren, freizusetzen. Die Striche begannen mit kühner Hingabe und wirbelten Blau- und Grüntöne verschmelzen zu einem faszinierenden Tanz aus Licht und Schatten. Mit jedem Augenblick wurde sie zum Kunstwerk – ihre Essenz sickerte auf die Leinwand wie Aquarelle in einem Frühlingssturm. Die Welt um sie herum schmolz dahin und ließ nur das Lebendige zurück Symphonie aus Farbe und Schöpfung. } ] }
Datensatz : Eine Klasse zum Verwalten generierter Datensätze.
LocalDataEngine : Die Haupt-Engine, die für die Interaktion mit dem LLM-Client und die Generierung von Datensätzen verantwortlich ist.
LocalEngineArguments : Eine Konfigurationsklasse, die die Anweisungen, die Systemeingabeaufforderung, die Temperatur des Modellnamens, Wiederholungsversuche und Eingabeaufforderungsvorlagen definiert, die zum Generieren von Daten verwendet werden.
OllamaClient : Eine Client-Klasse für die Interaktion mit der Ollama-API
HFUploader : Eine Dienstprogrammklasse zum Hochladen von Datensätzen auf Hugging Face (übergeben Sie den Pfad zum Datensatz und zum Token).
Wenn beim Ausführen des Skripts Fehler auftreten, finden Sie hier einige häufige Schritte zur Fehlerbehebung:
Ollama neu starten :
Killall Ollama && Ollama servieren
Überprüfen Sie die Modellinstallation :
ollama pull {model_name}
Überprüfen Sie die Ollama-Protokolle :
Überprüfen Sie die Protokolle auf Fehlermeldungen, die möglicherweise mehr Kontext zu dem Fehler liefern. Diese finden Sie im Verzeichnis ~/.ollama/logs
.
Die Bibliothek sollte mit den meisten LLM-Modellen funktionieren. Es wurde bisher mit folgenden Modellen getestet:
LLaMA3 : Die Bibliothek ist für die Arbeit mit dem LLaMA-Modell konzipiert, insbesondere mit dem Modell llama3:latest
.
Mistral : Die Bibliothek ist mit dem Mistral-Modell kompatibel, das eine Abzweigung des GPT-3-Modells ist.
Wenn Sie weitere Tests durchführen, stellen Sie bitte eine Pull-Anfrage, um diese Liste zu aktualisieren!
Wenn hier etwas verbessert werden könnte, öffnen Sie bitte ein Problem oder senden Sie eine Pull-Anfrage.
Dieses Projekt ist unter der Apache 2-Lizenz lizenziert. Weitere Einzelheiten finden Sie in der LICENSE
-Datei.