CS-4700-Demo / LyricGeneratorModel.py
tjl223's picture
add git ignore
3d922cc
raw
history blame
No virus
962 Bytes
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel, PeftConfig
class LyricGeneratorModel:
def __init__(self, repo_id: str):
config = PeftConfig.from_pretrained(repo_id)
model = AutoModelForCausalLM.from_pretrained(
config.base_model_name_or_path,
return_dict=True,
load_in_8bit=True,
device_map="auto",
)
self.tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
self.model = PeftModel.from_pretrained(model, repo_id)
def generate_lyrics(self, prompt: str, max_length: int):
input_ids = self.tokenizer(prompt, return_tensors="pt").input_ids
input_ids = input_ids.to("cuda")
output_tokens = self.model.generate(
input_ids, do_sample=True, max_length=max_length
)
output_text = self.tokenizer.batch_decode(output_tokens)[0]
return output_text