C2MV commited on
Commit
ce0f331
·
verified ·
1 Parent(s): 8d7ad50

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -33
app.py CHANGED
@@ -1,11 +1,25 @@
1
  import gradio as gr
2
  import torch
3
- from transformers import AutoTokenizer
4
  import time
5
  from functools import wraps
6
- import sys
7
- import spaces # Asegúrate de que este módulo esté disponible y correctamente instalado
8
- from model import GenerRNA # Ahora que model.py existe, esto debería funcionar
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  # Decorador para medir el tiempo de ejecución
11
  def medir_tiempo(func):
@@ -19,8 +33,36 @@ def medir_tiempo(func):
19
  return resultado
20
  return wrapper
21
 
22
- # Decorador para asignar GPU durante la ejecución de la función
23
- @spaces.GPU(duration=120) # Asigna GPU durante 120 segundos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  @medir_tiempo
25
  def generar_rna_sequence(prompt, max_length=256):
26
  """
@@ -54,33 +96,6 @@ def generar_rna_sequence(prompt, max_length=256):
54
  print(f"Error durante la generación de secuencia: {e}")
55
  return f"Error al generar la secuencia: {e}"
56
 
57
- # Configurar el dispositivo (GPU si está disponible)
58
- device = "cuda" if torch.cuda.is_available() else "cpu"
59
- if device == "cpu":
60
- print("Advertencia: CUDA no está disponible. Se usará la CPU, lo que puede ser lento.")
61
-
62
- # Cargar el tokenizador
63
- try:
64
- print("Cargando el tokenizador...")
65
- tokenizer = AutoTokenizer.from_pretrained("tokenizer_bpe_1024")
66
- except ValueError as e:
67
- print(f"Error al cargar el tokenizador: {e}")
68
- sys.exit(1)
69
-
70
- # Cargar el modelo GenerRNA
71
- try:
72
- print("Cargando el modelo GenerRNA...")
73
- # Cargar la configuración del modelo si es necesario
74
- config = GPT2Config.from_pretrained("tokenizer_bpe_1024") # Ajusta el path si tienes una configuración específica
75
- model = GenerRNA(config) # Instancia tu modelo personalizado
76
- model.load_state_dict(torch.load("model.pt.recombined", map_location=device))
77
- model.to(device)
78
- model.eval()
79
- print("Modelo GenerRNA cargado exitosamente.")
80
- except Exception as e:
81
- print(f"Error al cargar el modelo GenerRNA: {e}")
82
- sys.exit(1)
83
-
84
  # Definir la interfaz de Gradio
85
  titulo = "GenerRNA - Generador de Secuencias de RNA"
86
  descripcion = (
 
1
  import gradio as gr
2
  import torch
3
+ from transformers import AutoModelForCausalLM, AutoTokenizer
4
  import time
5
  from functools import wraps
6
+
7
+ # Asegúrate de que el módulo 'spaces' esté disponible y correctamente instalado.
8
+ # Si 'spaces.GPU' no está disponible, puedes omitir o implementar una alternativa.
9
+ # En este ejemplo, se asume que 'spaces.GPU' es un decorador válido en tu entorno.
10
+
11
+ try:
12
+ import spaces
13
+ except ImportError:
14
+ # Si el módulo 'spaces' no está disponible, define un decorador vacío
15
+ # para evitar errores. Esto es útil si no estás utilizando características
16
+ # específicas de Hugging Face Spaces que requieran este decorador.
17
+ def GPU(duration):
18
+ def decorator(func):
19
+ return func
20
+ return decorator
21
+
22
+ spaces = type('spaces', (), {'GPU': GPU})
23
 
24
  # Decorador para medir el tiempo de ejecución
25
  def medir_tiempo(func):
 
33
  return resultado
34
  return wrapper
35
 
36
+ # Configurar el dispositivo (GPU si está disponible)
37
+ device = "cuda" if torch.cuda.is_available() else "cpu"
38
+ if device == "cpu":
39
+ print("Advertencia: CUDA no está disponible. Se usará la CPU, lo que puede ser lento.")
40
+
41
+ # Cargar el tokenizador desde Hugging Face Hub
42
+ model_name = "pfnet/GenerRNA"
43
+
44
+ try:
45
+ print("Cargando el tokenizador desde Hugging Face Hub...")
46
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
47
+ except ValueError as e:
48
+ print(f"Error al cargar el tokenizador: {e}")
49
+ sys.exit(1)
50
+
51
+ # Cargar el modelo desde Hugging Face Hub
52
+ try:
53
+ print("Cargando el modelo GenerRNA desde Hugging Face Hub...")
54
+ model = AutoModelForCausalLM.from_pretrained(
55
+ model_name,
56
+ torch_dtype=torch.float16 if device == "cuda" else torch.float32,
57
+ revision="main" # Asegúrate de que la rama correcta esté especificada
58
+ ).to(device)
59
+ model.eval()
60
+ print("Modelo GenerRNA cargado exitosamente.")
61
+ except Exception as e:
62
+ print(f"Error al cargar el modelo GenerRNA: {e}")
63
+ sys.exit(1)
64
+
65
+ @spaces.GPU(duration=120) # Decorador para asignar GPU durante 120 segundos
66
  @medir_tiempo
67
  def generar_rna_sequence(prompt, max_length=256):
68
  """
 
96
  print(f"Error durante la generación de secuencia: {e}")
97
  return f"Error al generar la secuencia: {e}"
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  # Definir la interfaz de Gradio
100
  titulo = "GenerRNA - Generador de Secuencias de RNA"
101
  descripcion = (