mindfossil's picture
Create handler.py
358fc1e verified
Raw
History Blame Contribute Delete
917 Bytes
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
class EndpointHandler:
def __init__(self, path=""):
self.tokenizer = AutoTokenizer.from_pretrained(path)
self.model = AutoModelForCausalLM.from_pretrained(
path, torch_dtype=torch.float16, device_map="auto"
)
def __call__(self, data):
inputs = data.pop("inputs", data)
params = data.pop("parameters", {})
encoded = self.tokenizer(inputs, return_tensors="pt").to(self.model.device)
output = self.model.generate(
**encoded,
max_new_tokens=params.get("max_new_tokens", 600),
temperature=params.get("temperature", 0.1),
repetition_penalty=params.get("repetition_penalty", 1.1),
do_sample=True,
)
return self.tokenizer.decode(output[0][encoded["input_ids"].shape[1]:], skip_special_tokens=True)