• Stars
    star
    698
  • Rank 64,548 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created about 1 year ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fine-tune mistral-7B on 3090s, a100s, h100s

fine-tune-mistral

Code used to fine-tune this model: abacaj/mistral-7b-sft. Add your data in the data folder as train.jsonl and validation.jsonl.

Note this repo is intended for full fine-tuning of mistral not qlora or other methods.

How to run

Install dependencies:

python -m venv env \
  && source env/bin/activate \
  && pip install -r requirements.txt

Get a Hugging Face token and set the variable:

export HF_TOKEN="[insert token here]"

Run training code:

torchrun --nnodes=1 --nproc-per-node=<REPLACE_WITH_NUMBER_OF_GPUS> train.py

Tips

  • If running with a small batch size, lower the learning rate
  • I did not have to adjust grad clip or weight_decay but YMMV
  • Use enough data, I recommend > 1k samples
  • I ran this for 3 epochs on 40k samples, will need to experiment more on epochs because the model was still improving.
  • The better way to tell if your model is improving or just overfitting or even getting worse, you should add evaluation on your task. This is data that is not part of training. For example, on code completion you can evaluate your model on the mbpp validation set or a custom set you have.
  • Use FSDP option: backward_prefetch=BackwardPrefetch.BACKWARD_PRE if you have the GPU memory, or backward_prefetch=BackwardPrefetch.BACKWARD_POST. This can cause OOM so it was set to None