joackoEsp commited on
Commit
61e43c4
verified
1 Parent(s): 3afee96

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -10
app.py CHANGED
@@ -4,26 +4,30 @@ import torch
4
 
5
  # Cargar el modelo y el tokenizador
6
  model_name = "BSC-LT/salamandra-2b"
7
- tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
8
- model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
9
 
10
- # Funci贸n de generaci贸n optimizada con System Prompt
 
 
 
 
 
11
  def generate_response(prompt):
12
  system_prompt = "Responde solo con el texto solicitado, sin informaci贸n personal ni datos irrelevantes."
13
 
14
  inputs = tokenizer(
15
  f"Instrucci贸n: {system_prompt} \n Pregunta: {prompt} \n Respuesta directa:",
16
- return_tensors="pt"
 
17
  )
18
 
19
  outputs = model.generate(
20
  inputs.input_ids,
21
- max_length=50, # 馃敼 Limita la respuesta a 50 tokens
22
  do_sample=True,
23
- temperature=0.5, # 馃敼 Menos aleatoriedad, m谩s precisi贸n
24
- top_p=0.85, # 馃敼 M谩s controlado
25
- repetition_penalty=1.2, # 馃敼 Evita respuestas repetitivas
26
- early_stopping=True, # 馃敼 Detiene la respuesta si ya est谩 completa
27
  )
28
 
29
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
@@ -37,4 +41,3 @@ with gr.Blocks() as demo:
37
  submit_button.click(generate_response, inputs=input_text, outputs=output_text)
38
 
39
  demo.launch()
40
-
 
4
 
5
  # Cargar el modelo y el tokenizador
6
  model_name = "BSC-LT/salamandra-2b"
 
 
7
 
8
+ if "model" not in globals():
9
+ tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
10
+ tokenizer.pad_token = tokenizer.eos_token # 馃敼 Evita errores de atenci贸n
11
+ model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
12
+
13
+ # Funci贸n de generaci贸n optimizada
14
  def generate_response(prompt):
15
  system_prompt = "Responde solo con el texto solicitado, sin informaci贸n personal ni datos irrelevantes."
16
 
17
  inputs = tokenizer(
18
  f"Instrucci贸n: {system_prompt} \n Pregunta: {prompt} \n Respuesta directa:",
19
+ return_tensors="pt",
20
+ padding=True # 馃敼 Evita respuestas inconsistentes
21
  )
22
 
23
  outputs = model.generate(
24
  inputs.input_ids,
25
+ max_new_tokens=50, # 馃敼 En vez de max_length (mejor control de generaci贸n)
26
  do_sample=True,
27
+ temperature=0.45, # 馃敼 Menos aleatoriedad, m谩s coherencia
28
+ top_p=0.9, # 馃敼 M谩s controlado
29
+ repetition_penalty=1.1, # 馃敼 Evita repeticiones
30
+ early_stopping=True,
31
  )
32
 
33
  return tokenizer.decode(outputs[0], skip_special_tokens=True)
 
41
  submit_button.click(generate_response, inputs=input_text, outputs=output_text)
42
 
43
  demo.launch()