Britania commited on
Commit
2927fde
路
verified 路
1 Parent(s): e13368c

Update handler.py

Browse files
Files changed (1) hide show
  1. handler.py +9 -24
handler.py CHANGED
@@ -3,19 +3,11 @@ from typing import Dict, Any, List
3
  import torch
4
  import json
5
 
6
- def model_inference(model, tokenizer, text, max_new_tokens, temperature, top_p=0.99, top_k=20, repetition_penalty=1.2):
7
- inputs = tokenizer(text, return_tensors="pt").to("cuda:0")
8
- inputs_length = len(inputs["input_ids"][0])
9
- with torch.inference_mode():
10
- outputs = model.generate(**inputs,
11
- max_new_tokens=max_new_tokens,
12
- temperature=temperature,
13
- top_p=top_p,
14
- top_k=top_k,
15
- repetition_penalty=repetition_penalty)
16
- return tokenizer.decode(outputs[0][inputs_length:], skip_special_tokens=True)
17
-
18
-
19
 
20
  class EndpointHandler():
21
  def __init__(self, path=""):
@@ -27,24 +19,17 @@ class EndpointHandler():
27
  )
28
  self.my_tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
29
 
30
- def __call__(self, data):
31
- print(data)
32
  input_data = data.pop("inputs", data)
 
33
  template = """
34
- [INST] <<SYS>>
35
  A continuaci贸n se presentan par谩metros fisiol贸gicos y ambientales capturados por los sensores de un smartwatch utilizado por un atleta. Bas谩ndote en estos datos y en tu conocimiento de las rutinas de entrenamiento para atletas, crea una rutina diaria de entrenamiento personalizada para el atleta.
36
  <</SYS>>
37
  {data} [/INST]
38
  """.strip()
39
-
40
  data_text = json.dumps(input_data, indent=4)
41
  filled_template = template.replace("{data}", data_text)
42
- print("input:")
43
- print(filled_template)
44
- max_new_tokens = 1600
45
- temperature = 0.5
46
 
47
- result = model_inference(self.model, self.my_tokenizer, filled_template, max_new_tokens, temperature)
48
- print("output:")
49
- print(result)
50
  return {'generated_text': [result]}
 
3
  import torch
4
  import json
5
 
6
+ def model_inference(model, tokenizer, text, **kwargs):
7
+ inputs = tokenizer(text, return_tensors="pt").to("cuda:0")
8
+ with torch.inference_mode():
9
+ outputs = model.generate(**inputs, **kwargs)
10
+ return tokenizer.decode(outputs[0], skip_special_tokens=True)
 
 
 
 
 
 
 
 
11
 
12
  class EndpointHandler():
13
  def __init__(self, path=""):
 
19
  )
20
  self.my_tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
21
 
22
+ def __call__(self, data: Dict[str, Any]) -> Dict[str, str]:
 
23
  input_data = data.pop("inputs", data)
24
+ parameters = data.pop("parameters", {})
25
  template = """
26
+ <s>[INST] <<SYS>>
27
  A continuaci贸n se presentan par谩metros fisiol贸gicos y ambientales capturados por los sensores de un smartwatch utilizado por un atleta. Bas谩ndote en estos datos y en tu conocimiento de las rutinas de entrenamiento para atletas, crea una rutina diaria de entrenamiento personalizada para el atleta.
28
  <</SYS>>
29
  {data} [/INST]
30
  """.strip()
 
31
  data_text = json.dumps(input_data, indent=4)
32
  filled_template = template.replace("{data}", data_text)
33
+ result = model_inference(self.model, self.my_tokenizer, filled_template, **parameters)
 
 
 
34
 
 
 
 
35
  return {'generated_text': [result]}