Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
# Generar respuesta usando el pipeline
|
| 25 |
response = generator(
|
| 26 |
prompt,
|
| 27 |
-
max_new_tokens=
|
| 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
|
| 35 |
-
assistant_response = response.split("
|
| 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
|
| 51 |
-
model_name = "
|
| 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 |
|