--- license: llama2 --- ## Fine-tuned Llama 2 on sheperd ```python from datasets import load_dataset from random import randrange import torch from peft import AutoPeftModelForCausalLM from transformers import AutoTokenizer output_dir = "philschmid/shepherd-2-hf-int4" # load base LLM model and tokenizer model = AutoPeftModelForCausalLM.from_pretrained( output_dir, low_cpu_mem_usage=True, torch_dtype=torch.float16, load_in_4bit=True, ) tokenizer = AutoTokenizer.from_pretrained(output_dir) # Load dataset from the hub and get a sample dataset = load_dataset("philschmid/meta-shepherd-human-data", split="train") sample = dataset[randrange(len(dataset))] prompt = f"""### Question: {sample['question']} ### Answer: {sample['answer']} ### Feedback: """ input_ids = tokenizer(prompt, return_tensors="pt", truncation=True).input_ids.cuda() # with torch.inference_mode(): outputs = model.generate(input_ids=input_ids, max_new_tokens=100, do_sample=True, top_p=0.9,temperature=0.9) print(prompt[:-14]) print("---"*35) print(f"### Generated Feedback:\n{tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0][len(prompt):]}") print(f"### Ground truth Feedback:\n{sample['feedback']}") ``` ## Training procedure The following `bitsandbytes` quantization config was used during training: - load_in_8bit: False - load_in_4bit: True - llm_int8_threshold: 6.0 - llm_int8_skip_modules: None - llm_int8_enable_fp32_cpu_offload: False - llm_int8_has_fp16_weight: False - bnb_4bit_quant_type: nf4 - bnb_4bit_use_double_quant: True - bnb_4bit_compute_dtype: bfloat16 ### Framework versions - PEFT 0.4.0