Allgemeine Einführung
PromptWizard ist ein von Microsoft entwickeltes Open-Source-Framework, das einen selbstentwickelnden Mechanismus verwendet, der es dem Modell ermöglicht, selbständig Prompt-Wörter zu generieren, zu bewerten und zu verbessern sowie Beispiele zu erzeugen und die Qualität der Ausgabe durch kontinuierliches Feedback zu verbessern. Es kann selbstständig Prompts optimieren, geeignete Beispiele generieren und auswählen, Argumentationen und Validierungen durchführen und schließlich qualitativ hochwertige Prompts ausgeben, wodurch der Arbeitsaufwand für die manuelle Promptentwicklung durch automatisierte Prozesse reduziert wird. Zu den Merkmalen gehören die Einbeziehung der Konzepte der Aufgabenintention und der Expertenrollen, die Verwendung eines "chain-of-mind"-Ansatzes zur Optimierung der Argumentation und die Kombination von positiven, negativen und synthetischen Beispielen zur Verbesserung der Leistung. Es ist an die Aufgabenanforderungen verschiedener Domänen anpassbar, stabil in der Leistung und unterstützt mehrere LLMs auf verschiedenen Skalen.
Funktionsliste
- Feedback-gesteuerte OptimierungKontinuierliche Verbesserung der Aufgabenerfüllung durch das Erarbeiten, Kritisieren und Verbessern von Tipps und Beispielen.
- Diverse Beispiele GenerationGenerating Robust and Task-Aware Synthetic Examples, Optimising Cues and Examples.
- Adaptive OptimierungOptimierung von Lehr- und Kontextlernbeispielen durch einen selbst-evolutionären Mechanismus.
- Multitasking-UnterstützungAnwendung auf mehrere Aufgaben und große Sprachmodelle zur Verbesserung der Modellgenauigkeit und -effizienz.
- KostengünstigErhebliche Senkung der Rechenkosten und effizientes Tip Engineering.
Hilfe verwenden
Einbauverfahren
- Klon-Lager::
git clone https://github.com/microsoft/PromptWizard
cd PromptWizard
- Erstellen und Aktivieren einer virtuellen Umgebung::
- Fenster:
bash
python -m venv venv
venv\Scripts\activate
- macOS/Linux:
bash
python -m venv venv
source venv/bin/activate
- Fenster:
- Installateur::
pip install -e .
Leitlinien für die Verwendung
PromptWizard bietet im Wesentlichen drei Möglichkeiten der Nutzung:
- Optimieren Sie die Eingabeaufforderung für kein Beispiel::
- Ideal für Szenarien, in denen Optimierungshinweise benötigt werden, aber keine Trainingsdaten verfügbar sind.
- Generierung von Synthesebeispielen und Optimierung von Tipps::
- Optimieren Sie die Eingabeaufforderungen, indem Sie synthetische Beispiele für Aufgaben erstellen, die eine Unterstützung durch Beispiele erfordern.
- Optimierung der Tipps anhand von Trainingsdaten::
- Cue-Optimierung in Verbindung mit vorhandenen Trainingsdaten für Aufgaben mit umfangreicher Datenunterstützung.
Konfiguration und Einstellungen der Umgebungsvariablen
- Konfigurationsdatei::
- ausnutzen
promptopt_config.yaml
Datei, um die Konfiguration festzulegen. Für die Aufgabe GSM8k können Sie beispielsweise diese Datei verwenden, um die Konfiguration festzulegen.
- ausnutzen
- Umgebungsvariable::
- ausnutzen
.env
Datei, um Umgebungsvariablen zu setzen. Für die Aufgabe GSM8k können Sie zum Beispiel die folgenden Variablen setzen:plaintext
AZURE_OPENAI_ENDPOINT="XXXXX" # 替换为你的Azure OpenAI端点
OPENAI_API_VERSION="XXXX" # 替换为API版本
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="XXXXX" # 创建模型部署并放置部署名称
- ausnutzen
Arbeitsablauf
- Auswahl der Nutzungsszenarien::
- Auswahl geeigneter Nutzungsszenarien je nach Aufgabenstellung (keine Beispieloptimierung, synthetische Beispieloptimierung, Trainingsdatenoptimierung).
- Konfiguration der Umgebung::
- Setzen Sie Konfigurations- und Umgebungsvariablen für API-Aufrufe.
- Operative Optimierung::
- Führen Sie den PromptWizard aus, um die Prompts entsprechend dem gewählten Szenario zu optimieren.
typisches Beispiel
Nachfolgend ein einfaches Beispiel, das zeigt, wie Prompts mit PromptWizard optimiert werden können:
from promptwizard import PromptWizard
# 初始化PromptWizard
pw = PromptWizard(config_file="promptopt_config.yaml")
# 选择场景并运行优化
pw.optimize_scenario_1()
Mit diesen Schritten können Benutzer PromptWizard leicht installieren und für die Prompt-Optimierung verwenden, um die Aufgabenleistung in großen Sprachmodellen zu verbessern.