LEESM's picture
Update README.md
d6e5af0 verified
metadata
library_name: transformers
license: mit
datasets:
  - heegyu/open-korean-instructions
language:
  - ko
tags:
  - Llama-2-7b-hf
  - LoRA

Llama-2 model fine tuning (TREX-Lab at Seoul Cyber University)

Summary

  • Base Model : meta-llama/Llama-2-7b-hf
  • Dataset : heegyu/open-korean-instructions (10%)
  • Tuning Method
    • PEFT(Parameter Efficient Fine-Tuning)
    • LoRA(Low-Rank Adaptation of Large Language Models)
  • Related Articles : https://arxiv.org/abs/2106.09685
  • Fine-tuning the Llama2 model with a random 10% of Korean chatbot data (open Korean instructions)
  • Test whether fine tuning of a large language model is possible on A30 GPU*1 (successful)
  • Developed by: [TREX-Lab at Seoul Cyber University]
  • Language(s) (NLP): [Korean]
  • Finetuned from model : [meta-llama/Llama-2-7b-hf]

Fine Tuning Detail

  • alpha value 16
  • r value 64 (it seems a bit big...@@)
peft_config = LoraConfig(
    lora_alpha=16,
    lora_dropout=0.1,
    r=64,
    bias='none',
    task_type='CAUSAL_LM'
)
  • Mixed precision : 4bit (bnb_4bit_use_double_quant)
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type='nf4',
    bnb_4bit_compute_dtype='float16',
)
trainer = SFTTrainer(
    model=peft_model,
    train_dataset=dataset,
    dataset_text_field='text',
    max_seq_length=min(tokenizer.model_max_length, 2048),
    tokenizer=tokenizer,
    packing=True,
    args=training_args
)

Train Result

time taken : executed in 2d 0h 17m
TrainOutput(global_step=2001,
            training_loss=0.6940358212922347,
            metrics={
               'train_runtime': 173852.2333,
               'train_samples_per_second': 0.092,
               'train_steps_per_second': 0.012,
               'train_loss': 0.6940358212922347,
               'epoch': 3.0})