askbyte commited on
Commit
01023b1
verified
1 Parent(s): 7b48c13

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -12
app.py CHANGED
@@ -18,21 +18,25 @@ def generate_response(user_message):
18
  # Obtener el prompt del sistema
19
  system_prompt = get_system_prompt()
20
 
21
- # Crear el prompt completo
22
- prompt = f"{system_prompt}\n\nPregunta: {user_message}\n\nRespuesta:"
 
 
 
 
23
 
24
  # Generar respuesta usando el pipeline
25
  response = generator(
26
  prompt,
27
- max_new_tokens=512,
28
  temperature=0.7,
29
  top_p=0.9,
30
  do_sample=True,
31
  num_return_sequences=1
32
  )[0]["generated_text"]
33
 
34
- # Extraer solo la respuesta (despu茅s de "Respuesta:")
35
- assistant_response = response.split("Respuesta:")[-1].strip()
36
 
37
  # Forzar recolecci贸n de basura
38
  gc.collect()
@@ -45,18 +49,19 @@ def generate_response(user_message):
45
  return f"Lo siento, ha ocurrido un error: {str(e)}"
46
 
47
  # Cargar el modelo y crear el pipeline
48
- print("Cargando modelo ligero...")
49
 
50
- # Usar un modelo peque帽o optimizado para espa帽ol
51
- model_name = "microsoft/phi-2" # Modelo de 2.7B par谩metros, mucho m谩s ligero que 7B
52
 
53
- # Configuraci贸n para reducir el uso de memoria
54
- # IMPORTANTE: Eliminamos device_map="auto" que no es compatible con Phi-2
55
  tokenizer = AutoTokenizer.from_pretrained(model_name)
56
  model = AutoModelForCausalLM.from_pretrained(
57
  model_name,
58
  torch_dtype=torch.float32,
59
- low_cpu_mem_usage=True
 
 
60
  )
61
 
62
  # Crear el pipeline de generaci贸n de texto
@@ -88,6 +93,6 @@ demo = gr.Interface(
88
 
89
  # Lanzar la aplicaci贸n con configuraci贸n para ahorrar memoria
90
  if __name__ == "__main__":
91
- # Configurar menos workers para ahorrar memoria
92
  demo.queue(max_size=1).launch(share=False, debug=False)
93
 
 
18
  # Obtener el prompt del sistema
19
  system_prompt = get_system_prompt()
20
 
21
+ # Crear el prompt completo para TinyLlama
22
+ prompt = f"""<|system|>
23
+ {system_prompt}
24
+ <|user|>
25
+ {user_message}
26
+ <|assistant|>"""
27
 
28
  # Generar respuesta usando el pipeline
29
  response = generator(
30
  prompt,
31
+ max_new_tokens=256, # Reducido para mayor velocidad
32
  temperature=0.7,
33
  top_p=0.9,
34
  do_sample=True,
35
  num_return_sequences=1
36
  )[0]["generated_text"]
37
 
38
+ # Extraer solo la respuesta del asistente (despu茅s del 煤ltimo <|assistant|>)
39
+ assistant_response = response.split("<|assistant|>")[-1].strip()
40
 
41
  # Forzar recolecci贸n de basura
42
  gc.collect()
 
49
  return f"Lo siento, ha ocurrido un error: {str(e)}"
50
 
51
  # Cargar el modelo y crear el pipeline
52
+ print("Cargando modelo ultra ligero...")
53
 
54
+ # Usar TinyLlama, un modelo muy peque帽o (1.1B par谩metros) pero potente
55
+ model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0"
56
 
57
+ # Configuraci贸n para reducir el uso de memoria y aumentar velocidad
 
58
  tokenizer = AutoTokenizer.from_pretrained(model_name)
59
  model = AutoModelForCausalLM.from_pretrained(
60
  model_name,
61
  torch_dtype=torch.float32,
62
+ low_cpu_mem_usage=True,
63
+ # Cargamos en 8-bit para reducir memoria y aumentar velocidad
64
+ load_in_8bit=True
65
  )
66
 
67
  # Crear el pipeline de generaci贸n de texto
 
93
 
94
  # Lanzar la aplicaci贸n con configuraci贸n para ahorrar memoria
95
  if __name__ == "__main__":
96
+ # Configurar menos workers para ahorrar memoria y aumentar velocidad
97
  demo.queue(max_size=1).launch(share=False, debug=False)
98