locorene1000 commited on
Commit
c59c044
1 Parent(s): c6f8a91
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -1,12 +1,11 @@
1
  import gradio as gr
2
  import torch
3
- from awq import AutoAWQForCausalLM
4
- from transformers import AutoTokenizer
5
  import spaces
6
 
7
  class Modelo:
8
  def __init__(self):
9
- self.model_id = "hugging-quants/Meta-Llama-3.1-70B-Instruct-AWQ-INT4"
10
  self.tokenizer = None
11
  self.model = None
12
  self.instrucciones = """
@@ -14,20 +13,27 @@ class Modelo:
14
 
15
  Como Ministro de la Corte Suprema de Chile, su objetivo es mejorar y finalizar los borradores de resoluciones judiciales para el sistema judicial civil del pa铆s...
16
  """
17
- self.cargar_modelo_y_tokenizador() # Llama a la funci贸n para inicializar el modelo y el tokenizador
18
-
19
  def cargar_modelo_y_tokenizador(self):
20
  if not torch.cuda.is_available():
21
  raise Exception("No hay GPU disponible")
 
22
  self.tokenizer = AutoTokenizer.from_pretrained(self.model_id)
23
- self.model = AutoAWQForCausalLM.from_pretrained(
 
24
  self.model_id,
25
- torch_dtype=torch.float16,
26
- device_map={"": "cuda:0"}, # Forzar la carga en GPU
27
  low_cpu_mem_usage=True
28
  )
 
29
 
 
30
  def mejorar_resolucion(self, message, history=None):
 
 
 
31
  prompt = [
32
  {"role": "system", "content": self.instrucciones},
33
  {"role": "user", "content": f"Mejora esta resoluci贸n judicial: {message}"}
@@ -47,4 +53,4 @@ modelo = Modelo()
47
 
48
  with gr.Blocks() as demo:
49
  chatbot = gr.ChatInterface(fn=modelo.mejorar_resolucion, title="Mejora de Resoluciones Judiciales")
50
- demo.launch()
 
1
  import gradio as gr
2
  import torch
3
+ from transformers import AutoModelForCausalLM, AutoTokenizer
 
4
  import spaces
5
 
6
  class Modelo:
7
  def __init__(self):
8
+ self.model_id = "mistralai/Mistral-Nemo-Instruct-2407"
9
  self.tokenizer = None
10
  self.model = None
11
  self.instrucciones = """
 
13
 
14
  Como Ministro de la Corte Suprema de Chile, su objetivo es mejorar y finalizar los borradores de resoluciones judiciales para el sistema judicial civil del pa铆s...
15
  """
16
+
17
+ @spaces.GPU(duration=120)
18
  def cargar_modelo_y_tokenizador(self):
19
  if not torch.cuda.is_available():
20
  raise Exception("No hay GPU disponible")
21
+
22
  self.tokenizer = AutoTokenizer.from_pretrained(self.model_id)
23
+
24
+ self.model = AutoModelForCausalLM.from_pretrained(
25
  self.model_id,
26
+ torch_dtype=torch.bfloat16, # Utiliza BF16 para ahorrar memoria
27
+ device_map="auto", # Asigna autom谩ticamente en funci贸n de los recursos disponibles
28
  low_cpu_mem_usage=True
29
  )
30
+ self.model.to("cuda") # Mover expl铆citamente el modelo a la GPU si es posible
31
 
32
+ @spaces.GPU(duration=120)
33
  def mejorar_resolucion(self, message, history=None):
34
+ if self.model is None or self.tokenizer is None:
35
+ self.cargar_modelo_y_tokenizador()
36
+
37
  prompt = [
38
  {"role": "system", "content": self.instrucciones},
39
  {"role": "user", "content": f"Mejora esta resoluci贸n judicial: {message}"}
 
53
 
54
  with gr.Blocks() as demo:
55
  chatbot = gr.ChatInterface(fn=modelo.mejorar_resolucion, title="Mejora de Resoluciones Judiciales")
56
+ demo.launch()