FTUP
1.0.0
Este script ayuda a automatizar el proceso de preparación de datos para Finetuning en modelos Operai, específicamente GPT-3.5 y Babbage. También proporciona utilidades para validar los datos, transformar los datos en el formato JSONL requerido y estimar el costo del proceso de fineciring.
pyfiglet , openai , tiktoken , dotenv , argparse , json , re , os , sys , time , clintPara instalar las bibliotecas requeridas:
pip install pyfiglet openai tiktoken python-dotenv argparse clinto
pip install requirements.txt python ftup.py [-k <API_KEY>] -m <MODEL_NAME> -f <INPUT_FILE> [-s <SUFFIX>] [-e <EPOCHS>]
Argumentos:
-k, --key : opcional. Clave API. Argumento opcional, pero requerido en el envéano predeterminado para tener una clave API en Enviroment. OPERAI_API_KEY-m, --model : requerido. Modelo para usar. Opciones: gpt para gpt-3.5-turbo-0613 o bab para babbage-002 .-f, --file : requerido. Archivo de datos de entrada (formato JSONL).-s, --suffix : Opcional. Agregue un sufijo para su modelo Finetuned. Por ejemplo, 'my-suffix-title-v-1'.-e, --epoch : opcional. Número de épocas para el entrenamiento. El valor predeterminado es 3. Almacene su clave API en un archivo .env en el formato:
OPENAI_API_KEY=your_api_key_here
El script se cargará de forma predeterminada esta clave si no -k / --key pasa como argumento.
check_key(key) : valida el formato para la tecla API de OpenAI.check_model(model) : valida el nombre del modelo.check_jsonl_file(file) : verifica si el archivo proporcionado tiene un nombre JSONL válido y si existe.create_update_jsonl_file(model, file) : verifique si JSONL tiene un formato correcto y carga el archivo a OpenAI.update_ft_job(file_id_name, model, suffix, epoch) : crea o actualiza el trabajo de Finetuning en OpenAI.check_jsonl_gpt35(file) : valida el formato para la capacitación GPT-3.5.check_jsonl_babbage(file) : valida el formato para el entrenamiento Babbage-002.cost_gpt(file, epochs) : estima el costo del proceso de finecing. $ 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