FTUP
1.0.0
Dieses Skript hilft dabei, den Prozess der Vorbereitung von Daten für die Finetuning auf OpenAI-Modellen, insbesondere GPT-3.5 und Babbage, zu automatisieren. Es bietet auch Versorgungsunternehmen, um die Daten zu validieren, die Daten in das erforderliche JSONL -Format zu verwandeln und die Kosten des Finetuning -Prozesses zu schätzen.
pyfiglet , openai , tiktoken , dotenv , argparse , json , re , os , sys , time , clintSo installieren Sie die erforderlichen Bibliotheken:
pip install pyfiglet openai tiktoken python-dotenv argparse clintoder
pip install requirements.txt python ftup.py [-k <API_KEY>] -m <MODEL_NAME> -f <INPUT_FILE> [-s <SUFFIX>] [-e <EPOCHS>]
Argumente:
-k, --key : optional. API -Schlüssel. Optionales Argument, aber in der Standard -Umgebung erforderlich, um einen API -Schlüssel in der Umgebung zu haben. Openai_api_key-m, --model : Erforderlich. Modell zu verwenden. Optionen: gpt für gpt-3.5-turbo-0613 oder bab für babbage-002 .-f, --file : Erforderlich. Datendatei eingeben (JSONL -Format).-s, --suffix : Optional. Fügen Sie ein Suffix für Ihr Geldfunkmodell hinzu. ZB "My-Suffix-Title-V-1".-e, --epoch : optional. Anzahl der Epochen für das Training. Standard ist 3. Speichern Sie Ihren API -Schlüssel in einer .env -Datei im Format:
OPENAI_API_KEY=your_api_key_here
Das Skript lädt standardmäßig diesen Schlüssel, wenn nicht -k / --key als Argument übergeben.
check_key(key) : Validiert das Format für den OpenAI -API -Schlüssel.check_model(model) : Validiert den Modellnamen.check_jsonl_file(file) : Überprüft, ob die angegebene Datei einen gültigen JSONL -Namen hat und ob sie vorhanden ist.create_update_jsonl_file(model, file) : Überprüfen Sie, ob JSONL über ein korrektes Format verfügt und die Datei zum Öffnen hochladen.update_ft_job(file_id_name, model, suffix, epoch) : Erstellt oder aktualisiert den Finetuning -Job auf OpenAI.check_jsonl_gpt35(file) : Validiert das Format für GPT-3.5-Training.check_jsonl_babbage(file) : Validiert das Format für Babbage-002-Training.cost_gpt(file, epochs) : Schätzt die Kosten des Finetuning -Prozesses. $ python ftup.py --key your_api_key_here --file train_gpt3_5.jsonl --model gpt --epoch 1 --suffix custom-model-name
or
$ python ftup.py -f train_gpt3_5.jsonl -m gpt -e 1 -s custom-model-name
____________ __ ______
/ ____/_ __/ / / / / __
/ /_ / / ______ / / / / /_/ /
/ __/ / / /_____/ / /_/ / ____/
/_/ /_/ ____/_/
Checking API key ...
- API Key
Checking model ...
- Model gpt
Checking if jsonl is valid ...
- JSON File train_gpt3_5.jsonl
Checking if jsonl format is valid for GPT-3.5 training ...
- Num examples: 225
- JSONL train_gpt3_5.jsonl correct format
Uploading jsonl train file ...
- File ID: file-abcd123
Dataset has ~15153 tokens that will be charged for during training
You'll train for 1 epochs on this dataset
By default, you'll be charged for ~15153 tokens
Total cost: $0.1212 ?
Creating a finetuning job ...
- Fintetuning job id: ftjob-abc123
Status: succeeded
Finetuning succeeded! ☑️
Finetune model: ft:gpt-3.5-turbo:openai:custom-model-name:7p4lURe