Update app.py
Browse files
app.py
CHANGED
|
@@ -8,24 +8,34 @@ generador = None
|
|
| 8 |
def predecir(pregunta):
|
| 9 |
global generador
|
| 10 |
|
| 11 |
-
# Lazy Loading: El modelo se carga en memoria solo bajo demanda
|
| 12 |
if generador is None:
|
| 13 |
-
print("Iniciando la carga del modelo por primera vez...")
|
| 14 |
model_id = "edusc182/Gemma_2B"
|
| 15 |
-
|
| 16 |
-
# Cargamos el tokenizador expl铆citamente para evitar problemas de compatibilidad
|
| 17 |
-
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
| 18 |
-
|
| 19 |
-
# Inicializamos el pipeline
|
| 20 |
generador = pipeline(
|
| 21 |
"text-generation",
|
| 22 |
model=model_id,
|
| 23 |
tokenizer=tokenizer,
|
| 24 |
torch_dtype=torch.bfloat16,
|
| 25 |
-
device_map="cpu"
|
| 26 |
)
|
| 27 |
-
print("隆Modelo cargado con 茅xito en la memoria!")
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
# Inferencia optimizada
|
| 30 |
resultados = generador(
|
| 31 |
pregunta,
|
|
|
|
| 8 |
def predecir(pregunta):
|
| 9 |
global generador
|
| 10 |
|
|
|
|
| 11 |
if generador is None:
|
|
|
|
| 12 |
model_id = "edusc182/Gemma_2B"
|
| 13 |
+
tokenizer = AutoTokenizer.from_pretrained(model_id, clean_up_tokenization_spaces=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
generador = pipeline(
|
| 15 |
"text-generation",
|
| 16 |
model=model_id,
|
| 17 |
tokenizer=tokenizer,
|
| 18 |
torch_dtype=torch.bfloat16,
|
| 19 |
+
device_map="cpu"
|
| 20 |
)
|
|
|
|
| 21 |
|
| 22 |
+
# Inferencia limpia (sin par谩metros de carga mezclados)
|
| 23 |
+
resultados = generador(
|
| 24 |
+
pregunta,
|
| 25 |
+
max_new_tokens=100,
|
| 26 |
+
temperature=0.7,
|
| 27 |
+
do_sample=True,
|
| 28 |
+
pad_token_id=generador.tokenizer.eos_token_id
|
| 29 |
+
)
|
| 30 |
+
|
| 31 |
+
# Extraemos el texto de forma segura
|
| 32 |
+
texto = resultados[0]['generated_text']
|
| 33 |
+
|
| 34 |
+
# Si el pipeline devuelve todo el prompt, limpiamos la parte de la pregunta
|
| 35 |
+
if texto.startswith(pregunta):
|
| 36 |
+
texto = texto[len(pregunta):].strip()
|
| 37 |
+
|
| 38 |
+
return texto
|
| 39 |
# Inferencia optimizada
|
| 40 |
resultados = generador(
|
| 41 |
pregunta,
|