Important
NeMo 2.0 is an experimental feature and currently released in the dev container only: nvcr.io/nvidia/nemo:dev. Please refer to NeMo 2.0 overview for information on getting started.
Parameter Efficient Fine-Tuning (PEFT)
Run PEFT with NeMo Launcher
To run PEFT update conf/config.yaml:
defaults:
  - peft: Mistral/squad
stages:
  - peft
Execute the launcher pipeline: python3 main.py.
Configuration
Default configurations for PEFT with squad can be found in conf/peft/mistral/squad.yaml.
Fine-tuning configuration is divided into four sections run, trainer, exp_manger and model.
run:
  name: peft_mistral_7b
  time_limit: "04:00:00"
  dependency: "singleton"
  convert_name: convert_nemo
  model_train_name: Mistral_7b
  convert_dir: ${base_results_dir}/${peft.run.model_train_name}/${peft.run.convert_name}
  task_name: "squad"
  results_dir: ${base_results_dir}/${.model_train_name}/peft_${.task_name}
Set the number of nodes and devices for fine-tuning:
trainer:
  num_nodes: 1
  devices: 8
model:
  restore_from_path: ${peft.run.convert_dir}/results/megatron_mistral.nemo
restore_from_path sets the path to the .nemo checkpoint to run fine-tuning.
peft_scheme sets the fine-tuning scheme to be used. Supported schemes include: lora, adapter, ia3, ptuning.
Gated Model assets
Mistral’s tokenizer is hosted on Huggingface.com which requires login. In order to access the tokenizer assets, users are advised to prepend the HF_TOKEN=<token> environment variable to the nemo launcher invocation command.
In NeMo Laucher this can be achieved by appending “++env_vars.HF_TOKEN=<user-token” to the argument list.