Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

365
Vistas
Django: ¿modelo de aprendizaje automático en el lado del servidor?

Tengo un modelo de Word2Vec (uno de los modelos de aprendizaje automático) y podría obtener este modelo preentrenado por nombre de archivo:

 model = Word2Vec.load(fname)

Entonces, puedo obtener alguna predicción usando este modelo:

predicción = modelo.predecir(X)

Lo que estoy tratando de hacer es obtener una solicitud (incluida la palabra de consulta) del usuario y consultar estos datos en mi modelo previamente entrenado y obtener una predicción para que el servidor pueda enviar una respuesta con estos datos de predicción. Este proceso debe ocurrir cada vez que el usuario envía consultas, por lo que este modelo previamente entrenado siempre debe estar en la memoria.

Para implementar esto, creo que tengo que usar Redis , Celery algo así, pero que yo sepa, Celery funciona de forma asíncrona con la aplicación web Django , por lo que no sería adecuado para lo que quiero hacer...

¿Cómo puedo implementar esta función en mi aplicación Django ?

Gracias.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En realidad, no necesitas Redis o apio para esto.

Antes de publicar la solución usando Django, debo mencionar que si solo necesita una interfaz web para su proyecto de ML, es decir, no necesita el elegante ORM, administrador, etc. de Django, debe optar por Flask. Es perfecto para su caso de uso.


Solución usando matraz:

Es muy fácil almacenar su modelo entrenado en la memoria usando Flask:

 # ... # your Flask application code # ... # ... if __name__ == '__main__': model = Word2Vec.load(fname) app.run()

Si te interesa, el ejemplo completo está aquí .


Solución usando Django:

Puede utilizar el marco de caché de Django para almacenar su modelo. Primero, active el backend de caché de memoria local. Las instrucciones están aquí .

Ahora, deberá almacenar su modelo en el caché.

 from django.core.cache import cache model_cache_key = 'model_cache' # this key is used to `set` and `get` # your trained model from the cache model = cache.get(model_cache_key) # get model from cache if model is None: # your model isn't in the cache # so `set` it model = Word2Vec.load(fname) # load model cache.set(model_cache_key, model, None) # save in the cache # in above line, None is the timeout parameter. It means cache forever # now predict prediction = model.predict(...)

Puede mantener el código anterior en sus vistas, pero prefiero que cree un archivo separado para eso y luego importe este archivo en sus vistas.

Puede encontrar el ejemplo completo en este blog .

over 4 years ago · Santiago Trujillo Denunciar

0

Secundo que no necesitas un Redis y apio para esto. La solución más simple se describe en esta pregunta de Daniel Roseman.

Este enfoque también es práctico si tiene un objeto que no se puede serializar/decapar (como es necesario para aprovechar el caché de django).

Todo lo que necesita hacer es instanciar el objeto del model antes de sus vistas en views.py , de esa manera se llama al model una vez (cuando se importa views.py) y las vistas basadas en clase/función podrán acceder al model .

Esto se vería así en tu pregunta:

 # views.py model = Word2Vec.load(fname) class WordView(View): def post(self, request, *args, **kwargs): # make a prediction based on request prediction = model.predict(self.request.something) return prediction
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda