Finetune CLI
The following are the CLI commands for ScaleGenAI Finetuning.
| Function | Description |
|---|---|
| create | Launch a fine-tuning job. |
| list | List launched fine-tuning jobs. |
| stop | Stop a running job. |
| view | View a fine-tuning job. |
create
Run this command to create a finetuning job.
scalegen finetune clm create [args]
The following is the list of arguments that the command requires:
Parameter Description
cloud_regions:: str : Specifies the cloud region and provider to use, formatted asPROVIDER:REGION(e.g.,SCALEGENAI:US).gpu_num:: int : The number of GPUs to use for the job.gpu_type:: str : Type of GPU to use for training (e.g.,A100_80GB).artifacts_storage:: str : The storage location for results (e.g.,s3-store).model:: str : The Hugging Face model to use for fine-tuning (e.g.,"meta-llama/Meta-Llama-3.1-8B-Instruct").job_name:: str : Name of the fine-tuning job.hf_project_name:: str : The name of the Hugging Face project (e.g.,"code_vulnerability_sequrity_dpo").push_to_hub:: flag : A flag to indicate if the fine-tuned model should be pushed to the Hugging Face model hub.hf_repo_id:: str : The Hugging Face repository ID for pushing the model (e.g.,"username/repo").data_path:: str : Path to the dataset on Hugging Face (e.g.,"CyberNative/Code_Vulnerability_Security_DPO").hf_token:: str : The Hugging Face authentication token.comet_ml_key:: str : API key for Comet ML to enable experiment tracking.finetuning_type:: str : Type of finetuning to perform (e.g.,"dpo"for Direct Preference Optimization).model_max_length:: int : The maximum sequence length for the model (e.g.,8192).mixed_precision:: str [ "fp16" | "bf16" ] : The type of mixed precision to use (e.g.,bf16).lr:: float : Learning rate for training (e.g.,0.0003).epochs:: int : Number of training epochs (e.g.,1).batch_size:: int : Batch size for training (e.g.,2).warmup_ratio:: float : The ratio of warm-up steps to total steps (e.g.,0.1).gradient_accumulation_steps:: int : Number of gradient accumulation steps (e.g.,64).logging_steps:: int : Number of steps between logging outputs (e.g.,1).optimizer:: str [ "adamw_torch" | ... ] : Optimizer type to use (e.g.,"adamw_torch").lr_scheduler_type:: str [ "linear" | ... ] : Learning rate scheduler type (e.g.,"linear").weight_decay:: float : Weight decay value for regularization (e.g.,0.0).max_grad_norm:: float : Maximum gradient norm for clipping (e.g.,1.0).seed:: int : Random seed for reproducibility (e.g.,42).save_steps:: int : Number of steps between model checkpoints (e.g.,20).use_peft:: str [ "lora" | ... ] : Specifies if and what type of Parameter-Efficient Fine-Tuning (PEFT) to use (e.g.,"lora").lora_r:: int : LoRA rank parameter (e.g.,32).lora_alpha:: int : LoRA alpha parameter (e.g.,64).lora_dropout:: float : Dropout rate for LoRA layers (e.g.,0.05).text_column:: str : The column name containing the text data (e.g.,"chosen").prompt_text_column:: str : The column name for prompt text (e.g.,"question").rejected_text_column:: str : The column name for rejected text data (e.g.,"rejected").use_flash_attention_2:: flag : A flag to enable Flash Attention 2 for efficient attention mechanisms.max_prompt_length:: int : The maximum length of the prompt text (e.g.,256).merge_adapter:: flag : A flag to merge adapter weights.padding:: str [ "left" | "right" ] : Padding direction for token sequences (e.g.,"left").train_split:: str : The dataset split used for training (e.g.,"train").help
Example
scalegen finetune clm create \
--cloud_regions SCALEGENAI:US \
--gpu_num 1 \
--gpu_type A100_80GB \
--artifacts_storage s3-store \
--model "meta-llama/Meta-Llama-3.1-8B-Instruct" \
--job_name "template_code_vulnerability_sequrity_dpo" \
--hf_project_name "code_vulnerability_sequrity_dpo" \
--push_to_hub \
--hf_repo_id "username/repo" \
--data_path "CyberNative/Code_Vulnerability_Security_DPO" \
--hf_token your_hf_token \
--comet_ml_key your_cometml_key \
--finetuning_type dpo \
--model_max_length 8192 \
--mixed_precision bf16 \
--lr 0.0003 \
--epochs 1 \
--batch_size 2 \
--warmup_ratio 0.1 \
--gradient_accumulation_steps 64 \
--logging_steps 1 \
--optimizer adamw_torch \
--lr_scheduler_type linear \
--weight_decay 0.0 \
--max_grad_norm 1.0 \
--seed 42 \
--save_steps 20 \
--use_peft lora \
--lora_r 32 \
--lora_alpha 64 \
--lora_dropout 0.05 \
--text_column chosen \
--prompt_text_column question \
--rejected_text_column rejected \
--use_flash_attention_2 \
--max_prompt_length 256 \
--merge_adapter \
--padding left \
--train_split "train"
list
Run this command to list your running finetuning jobs.
scalegen finetune clm list
To list all the jobs, use the -a or --all flag
scalegen finetune clm list -a
stop
Run this command to stop a running finetuning jobs.
scalegen finetune clm stop <JOB_ID>
Example
scalegen finetune clm stop test_job
view
View the status and logs associated with a job.
scalegen finetune clm view <JOB_ID>
Example
scalegen finetune clm view test_job