LoRA model trained for ~11 hours on r/uwaterloo data.
Only trained on top-level comments with the most upvotes on each post.
Model Details
Model Description
Developed by: Anthony Susevski and Alvin Li
Model type: LoRA
Language(s) (NLP): English
License: mit
Finetuned from model [optional]: mistralai/Mistral-7B-v0.1
Uses
Pass a post title and a post text(optional) in the style of a Reddit post into the below prompt.
prompt = f"""
Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
Respond to the reddit post in the style of a University of Waterloo student.
### Input:
{post_title}
{post_text}
### Response:
Bias, Risks, and Limitations
No alignment training as of yet -- only SFT.
Recommendations
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
How to Get Started with the Model
Use the code below to get started with the model.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
from peft import PeftModel, PeftConfig
peft_model_id = "asusevski/mistraloo-sft"
peft_config = PeftConfig.from_pretrained(peft_model_id)
model = AutoModelForCausalLM.from_pretrained(peft_config.base_model_name_or_path)
model = PeftModel.from_pretrained(model, peft_model_id).to(device)
model.eval()
tokenizer = AutoTokenizer.from_pretrained(
peft_config.base_model_name_or_path,
add_bos_token=True
)
post_title = "my example post title"
post_text = "my example post text"
prompt = f"""
Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
Respond to the reddit post in the style of a University of Waterloo student.
### Input:
{post_title}
{post_text}
### Response:
"""
model_input = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
model_output = model.generate(**model_input, max_new_tokens=256, repetition_penalty=1.15)[0]
output = tokenizer.decode(model_output, skip_special_tokens=True)