Training procedure
HUGGING_FACE_USER_NAME = "sksayril" model_name = "pbp-sayril"
import torch from peft import PeftModel, PeftConfig from transformers import AutoModelForCausalLM, AutoTokenizer
peft_model_id = f"{HUGGING_FACE_USER_NAME}/{model_name}" config = PeftConfig.from_pretrained(peft_model_id) model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path, return_dict=True, load_in_8bit=False, device_map='auto') tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
Load the Lora model
qa_model = PeftModel.from_pretrained(model, peft_model_id)
from IPython.display import display, Markdown
def make_inference(context, question): batch = tokenizer(f"### CONTEXT\n{context}\n\n### QUESTION\n{question}\n\n### ANSWER\n", return_tensors='pt')
with torch.cuda.amp.autocast(): output_tokens = qa_model.generate(**batch, max_new_tokens=200)
display(Markdown((tokenizer.decode(output_tokens[0], skip_special_tokens=True))))
context = "Cheese is the best food." question = "What is the best food?"
make_inference(context, question)
Framework versions
- PEFT 0.6.0.dev0