Sie können Basismodelle in IBM watsonx.ai über das Programm optimieren, indem Sie die Python -Bibliothek verwenden.
Um ein foundation model schnell zu optimieren, führen Sie ein Experiment durch, das von Ihnen bereitgestellte Trainingsdaten verwendet. Das Experiment ist ein maschineller Lernprozess, der dem foundation model die Ausgabe zeigt, die Sie vom Modell für Ihre sofortige Eingabe erwarten. Der Optimierungsprozess ist komplex und umfasst ein Datenasset, ein Trainingsasset und ein Bereitstellungsasset.
Die Python-Bibliothek enthält Methoden und Helper-Klassen für die Optimierung von Basismodellen. Weitere Informationen zur Bibliothek finden Sie unter Prompt-Tuning .
Verwenden Sie Funktionen, die in der Python -Bibliothek watsonx.ai in Notebooks in watsonx.ai verfügbar sind, um Basismodelle für Eingabeaufforderungen zu optimieren.
Beispielnotebook
Das Python Notebook „Verwenden Sie watsonx um IBM granite-13b-instruct-v2 Modell mit dem Beispieldokument zur Kundenzufriedenheit einer Autovermietung zu optimieren“ enthält Code zum sofortigen Optimieren von Basismodellen in watsonx.ai .
Das Beispielnotebook unterstützt Sie bei den beiden Hauptphasen der Optimierung:
- Optimale Optimierungsparameterwerte suchen
- Aufforderung an das optimierte Modell zur Bewertung der Qualität der Ausgabe des optimierten Modells
Das Beispielnotebook wurde zur Eingabeaufforderungsoptimierung des Modells granite-13b-instruct-v2 konzipiert. Sie können sie aber auch zur Optimierung anderer Basismodelle verwenden. Ersetzen Sie dazu die base_model
-Verweise wie folgt:
base_model='google/flan-t5-xl'
Wenn Sie das foundation model ändern, müssen Sie auch die Trainingsdaten ersetzen. Ersetzen Sie den Dateipfad im Abschnitt Laden von Daten des Notebooks.
url = "{path to your file}"
if not os.path.isfile(filename):
wget.download(url)
Sie können auch ein Beispielnotebook verwenden, das die anderen Basismodelle optimiert, die für die Eingabeaufforderung optimiert werden können.
Optimieren Sie ein Modell zur Klassifizierung von CFPB-Dokumenten in watsonx
Das flan-t5 Notebook enthält Schritte zum Optimieren des foundation model , jedoch keinen Schritt zur Hyperparameteroptimierung.
Beispielnotebook zum Optimieren von Optimierungsparameterwerten verwenden
Das Beispielnotebook verfügt über Code, der den Parameterwert learning_rate
optimiert. Das Beispielnotebook ändert systematisch den Lernratenwert und führt das Experiment 10 Mal erneut aus, sodass der Verlust in den 10 Ausführungen verglichen werden kann. Das Beispielnotebook berechnet den optimalen Wert für die Lernrate für Sie.
Das Beispielnotebook generiert 10 separate Experimente; es führt nicht dasselbe Experiment 10 Mal aus.
Der Parameter für die Optimierung wird im Abschnitt Suchbereich und Optimierung des Notebooks definiert.
Sie können das Beispielnotebook bearbeiten oder hinzufügen, um automatisierten Code auszuführen, um zusätzlich zur Lernrate die folgenden Parameter zu optimieren:
accumulate_steps
batch_size
num_epochs
Um die optimalen Werte für viele Parameter auf einmal zu überprüfen, können Sie das Beispielnotebook so ändern, dass Code wie der folgende verwendet wird:
SPACE = [
skopt.space.Real(0.001, 0.09, name='learning_rate', prior='log-uniform'),
skopt.space.Integer(1, 50, name='num_epochs', prior='uniform'),
skopt.space.Integer(1, 16, name='batch_size', prior='uniform')
]
Die Optimierung vieler Parameter auf einmal kann Zeit sparen, da die Parameter zusammenarbeiten. Ihre Werte beeinflussen sich gegenseitig und das richtige Gleichgewicht der Werte unter ihnen führt zu den besten Ergebnissen.
Das Beispielnotebook verwendet Methoden aus der scikit-optimize-Bibliothek. Weitere Informationen finden Sie in der API-Referenz zu scikit-optimize .
Beispielnotebook zum Auswerten des optimierten Modells verwenden
Das Beispielnotebook enthält Code, der das optimierte Modell bereitstellt, das optimierte Modell abbildet und dann die Genauigkeit der Ausgabe des optimierten Modells berechnet. Es werden auch Rückschlüsse auf das zugrunde liegende foundation model gezogen und die Genauigkeit der Basismodellausgabe berechnet, sodass Sie einen Vergleich sehen können.
Wenn Sie das Beispielnotebook zum Optimieren und Bewerten anderer Modelle verwenden wollen, können Sie den Wert des Parameters model_id
im folgenden Code ersetzen.
base_model = ModelInference(
model_id='ibm/granite-13b-instruct-v2',
params=generate_params,
api_client=client
)
Geben Sie beispielsweise google/flan-t5-xl
an.
Außerdem müssen Sie den Eingabeaufforderungstext durch eine Eingabeaufforderung aus Ihrem eigenen Trainingsdataset ersetzen.
response = tuned_model.generate_text(prompt="{your text here}")
Wenn der Genauigkeitsscore für Ihr optimiertes Modell niedrig ist, prüfen Sie einige Ideen, wie Sie Ihre Trainingsdaten verbessern können, unter Datenqualitätsprobleme in optimierter Modellausgabe adressieren.
Beachten Sie, dass die Optimierung der Optimierungsparameter für das Modell und die Trainingsdaten, die Sie verwenden, spezifisch ist. Wenn Sie das Modell oder die Trainingsdaten ändern, müssen Sie das Optimierungsexperiment neu bewerten. Passen Sie die Optimierungsparameter erneut an, um sie für Ihre erweiterte Datei zu optimieren.
Übergeordnetes Thema: Python -Bibliothek