Man kann ChatGPT auch an den eigenen Daten trainieren. Dieser Prozess wird Fine-Tuning genannt. Dabei wird der ChatGPT KI etwas neues beigebracht. Dazu trainiert man den Bot mit seinen eigenen Daten.
Die Trainingsdaten müssen aus einer Frage und einer Antwort bestehen. Bzw. prompt und completion.
Die Variablen heißen prompt und completion, da ChatGPT mehr kann als nur Fragen zu beantworten. Man kann sich auch Sätze, Texte oder Programmcode vervollständigen lassen.
Im folgenden werde ich an einem Beispiel zeigen wie man ChatGPT Fine Tunen kann. Dazu nutze ich das "Wine Reviews" Dataset von kaggle
Das Dataset enthält folgende Daten:
Die Tabelle enthält 150 000 Wein Testergebnisse. Mit diesen Daten werden wir ChatGPT beibringen, wie unterschiedliche Weine schmecken. Dafür müssen wir zuerst die Daten in das richtige Format bringen.
Ich bin kein Wein-Profi: Als Name des Weins, der Prompt für ChatGPT habe ich die Designation und die variety genommen. Also bspw. "Martha's Vineyard Cabernet Sauvignon" und als completion die description.
Um die Daten in das richtige Format zu bekommen habe ich in einem kaggle Notebook mit python programmiert.
Erklärung zur Python Programmierung:
Die descriptions sind in Englisch und meistens mehrere Sätze lang, dass ist sehr gut um die KI zu trainieren. In den meisten Beschreibungen wird der Geschmack beschrieben, teilweise aber auch Fakten über den Wein.
Als prompt nutzen wir einen Namen des Weins, welche eine Kombi aus der Designation und der variety ist. Das sollte reichen um den Wein halbwegs genau zu bestimmen, aber keinen allzu langen Namen zu haben. (Obwohl es bestimmt bei den 150k so einige mehrfach geben wird)
Jetzt konvertieren wir die Daten in das Format von ChatGPT. Danach müssen wir die Daten nur noch in eine Datei schreiben.
Ich habe erstmal zum Testen nur die ersten 100 Zeilen genommen.
Als nächstes müssen Sie die Open AI CLI nutzen, dazu müssen Sie diese zuerst installieren. Sie können diese über den Befehl "pip install --upgrade openai" installieren. Falls Sie den Python Package Manager pip noch nicht installiert haben, müssen Sie das zuerst tun :) .
Nun müssen Sie openAi noch Ihren OpenAI API Key mitteilen.
Unter Linux oder MacOS können Sie dies mit dem folgendem Befehl:
export OPENAI_API_KEY="<OPENAI_API_KEY>"
Ich habe bei Windows die Systemumgebungsvariable OPENAI_API_KEY über die Windows Einstellungen gesetzt.
Jetzt können Sie Ihre Daten für das Model mit folgendem Befehl vorbereiten:
openai tools fine_tunes.prepare_data -f name-der-date.jsonl
Ihr Output könnte dann ungefähr folgendermaßen aussehen:
Based on the analysis we will perform the following actions:
- [Recommended] Add a suffix separator ` ->` to all prompts [Y/n]: Y
- [Recommended] Add a whitespace character to the beginning of the completion [Y/n]: Y
Ich habe alle Empfehlungen befolgt.
Nun sind Sie bereit ChatGPT zu trainieren, dafür müssen Sie sich für ein Basis Model entscheiden. Es gibt unterschiedliche Chat Models, welche unterschiedliche Stärken haben. Für dieses Beispiel verwende ich das davinci model:
openai api fine_tunes.create -t wine-model3_prepared.jsonl -m davinci
Die Ausgabe:
In der Ausgabe steht der Name des Models davinci:ft-personal-2023-03-03-18-24-15
Lasst uns das neue Model ausprobieren:
Das ist das Ergebnis:
MY Model:Baked pears and Mirabelle plums combine on the nose of this wine, a hallmark of Miljenko’s Swan and White Hawk vineyards, along with graphite and black tea. Those aromas carry over to the palate, along with a compelling licorice flavor, backed by a fine grained texture and lingering tannin. It s appealing, warm and unabashed in its saturate color, but with the balance to age. 20172027. Drink now
Davinci Model:?
White Hawk Vineyard Syrah is described as bold and well-balanced, with notes of dark cherry and herbal spice and a lingering smoky finish. It has medium body and mild to moderate tannins, making it a smooth and enjoyable glass of wine. Reviews suggest that it is a delicious, crowd-pleasing wine.
Falls Sie eine Idee für einen eigenen Chatbot auf Basis von ChatGPT haben, dann helfen wir Ihnen gerne bei der Umsetzung. Mit einem gefinetuneten ChatGPT Model können Sie die KI mit Ihren eigenen Daten trainieren.