C2MV commited on
Commit
7424b84
verified
1 Parent(s): dcedc50

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -21
app.py CHANGED
@@ -4,7 +4,7 @@ from transformers import pipeline
4
  import time
5
  from functools import wraps
6
  import sys
7
- from multimolecule import RnaTokenizer, RnaFmModel # Importar clases espec铆ficas de multimolecule
8
 
9
  # Decorador para medir el tiempo de ejecuci贸n
10
  def medir_tiempo(func):
@@ -19,26 +19,16 @@ def medir_tiempo(func):
19
  return wrapper
20
 
21
  # Verificar si CUDA est谩 disponible para el modelo principal
22
- device = "cuda" if torch.cuda.is_available() else "cpu"
23
- if device == "cpu":
24
  print("Advertencia: CUDA no est谩 disponible. Se usar谩 la CPU, lo que puede ser lento.")
25
 
26
- # Cargar el modelo y el tokenizador
27
- model_name = "multimolecule/mrnafm"
28
-
29
  try:
30
- print("Cargando el tokenizador...")
31
- tokenizer = RnaTokenizer.from_pretrained(model_name)
32
- except ValueError as e:
33
- print(f"Error al cargar el tokenizador: {e}")
34
- sys.exit(1)
35
-
36
- try:
37
- print("Cargando el modelo...")
38
- model = RnaFmModel.from_pretrained(model_name)
39
- model.to(device)
40
  except Exception as e:
41
- print(f"Error al cargar el modelo: {e}")
42
  sys.exit(1)
43
 
44
  @medir_tiempo
@@ -54,16 +44,13 @@ def predecir_fill_mask(secuencias):
54
  secuencias_lista = [seq.strip().upper() for seq in secuencias.strip().split('\n') if seq.strip()]
55
  resultados = []
56
 
57
- # Crear el pipeline de fill-mask utilizando el tokenizador y modelo cargados
58
- fill_mask = pipeline('fill-mask', model=model, tokenizer=tokenizer, device=0 if device == "cuda" else -1)
59
-
60
  for seq in secuencias_lista:
61
  # Asegurarse de que la secuencia contenga al menos un <mask>
62
  if "<MASK>" not in seq and "<mask>" not in seq:
63
  resultados.append(f"Secuencia sin token <mask>: {seq}. Agrega <mask> donde desees predecir.")
64
  continue
65
 
66
- # Realizar la predicci贸n de fill-mask
67
  predictions = fill_mask(seq)
68
 
69
  # Formatear las predicciones
 
4
  import time
5
  from functools import wraps
6
  import sys
7
+ import multimolecule # Importar para registrar los modelos de multimolecule
8
 
9
  # Decorador para medir el tiempo de ejecuci贸n
10
  def medir_tiempo(func):
 
19
  return wrapper
20
 
21
  # Verificar si CUDA est谩 disponible para el modelo principal
22
+ device = 0 if torch.cuda.is_available() else -1
23
+ if device == -1:
24
  print("Advertencia: CUDA no est谩 disponible. Se usar谩 la CPU, lo que puede ser lento.")
25
 
26
+ # Cargar el pipeline de Fill-Mask
 
 
27
  try:
28
+ print("Cargando el pipeline de Fill-Mask...")
29
+ fill_mask = pipeline('fill-mask', model='multimolecule/mrnafm', device=device)
 
 
 
 
 
 
 
 
30
  except Exception as e:
31
+ print(f"Error al cargar el pipeline de Fill-Mask: {e}")
32
  sys.exit(1)
33
 
34
  @medir_tiempo
 
44
  secuencias_lista = [seq.strip().upper() for seq in secuencias.strip().split('\n') if seq.strip()]
45
  resultados = []
46
 
 
 
 
47
  for seq in secuencias_lista:
48
  # Asegurarse de que la secuencia contenga al menos un <mask>
49
  if "<MASK>" not in seq and "<mask>" not in seq:
50
  resultados.append(f"Secuencia sin token <mask>: {seq}. Agrega <mask> donde desees predecir.")
51
  continue
52
 
53
+ # Realizar la predicci贸n de Fill-Mask
54
  predictions = fill_mask(seq)
55
 
56
  # Formatear las predicciones