+375 (1713) 4-66-99


+375 (29) 708-02-90


+375 (25) 529-22-35


+375 (25) 913-33-60

  • Slides
  • Slides
  • Slides
  • Slides
  • Slides
  • Slides

Modele harkous (2019-02-19)

Hamza harkous, école polytechnique fédérale de Lausanne (EPFL); Kassem Fawaz, Université du Wisconsin-Madison; Rémi Lebret, école polytechnique fédérale de Lausanne (EPFL); Florian Schaub et Kang G. Shin, Université du Michigan; Karl Aberer, école polytechnique fédérale de Lausanne (EPFL) Toutefois, en ajoutant la couche incorporation à votre modèle, vous économiserez le mot «incorporations» à côté de votre modèle. C`est très bien si vous avez affaire à quelques modèles. Dans les environnements de production, cependant, vous pouvez avoir plusieurs modèles, tous utilisant des incorporations préformées congelées. Dans ce cas, vous allez dupliquer les incorporations dans tous les modèles. Cela entraîne une augmentation des ordres de grandeur dans le stockage sur disque et dans l`utilisation de RAM beaucoup plus élevée. Si vous avez atteint cette étape, et que votre application s`est exécutée avec succès, cet article a servi son but. Quelques notes supplémentaires méritent d`être mentionnées à ce stade: maintenant, nous sommes à la mise à l`échelle de notre serveur d`applications simple. uWSGI sera la clé ici.

Il communique avec notre application Flask en appelant l`application d`objet Callable dans le fichier app.py. uWSGI inclut la plupart des fonctionnalités de parallélisation que nous sommes après. Son fichier de configuration se présente comme suit: une façon d`envoyer des demandes simultanées à votre serveur utilise curl (n`oubliez pas de remplacer YOUR_SERVER_NAME_OR_IP par l`URL ou l`adresse IP de votre serveur. Le ORIGINAL_EMBEDDINGS_FILE est supposé être du format suivant. La première ligne est un en-tête définissant la taille du vocabulaire et la dimension des incorporations. Il s`agit du format utilisé dans fastText. Installez faiss, la bibliothèque de Facebook pour une recherche de similarité efficace, en suivant leur guide afin de surveiller le journal de l`application elle-même, nous pouvons faire usage de journalctl: si rien ne se passe, téléchargez GitHub Desktop et réessayez. Ajoutez faiss au chemin Python pour l`utiliser, par exemple, si le répertoire est FAISS_DIRECTORY, vous pouvez émettre: en ce moment, nous avons keras installé, aux côtés de Flask, uwsgi, uwsgitop, etc. Nous sommes donc prêts à commencer.

À ce stade, notre service devrait commencer avec succès. Si nous mettons à jour le service ultérieurement, nous devons simplement le redémarrer: Voici un exemple des travailleurs en action, avec des travailleurs supplémentaires qui ont déjà été générés. Pour simuler une charge aussi lourde de votre côté, même avec des tâches simples, vous pouvez ajouter artificiellement un temps. Sleep (3) dans le code de prédiction. Dans cet article, nous allons ensemble à travers ce Workflow; un processus que je devais à maintes reprises me faire. L`hypothèse est que vous avez déjà construit un modèle de machine learning ou d`apprentissage profond, en utilisant votre cadre favori (scikit-Learn, keras, Tensorflow, PyTorch, etc.). Maintenant, vous voulez le servir au monde à grande échelle via une API. Pour garder un œil sur le service et voir la charge par travailleur, nous pouvons utiliser uwsgitop. Dans uwsgi. ini, nous avons déjà configuré un socket stats dans notre dossier d`application. Pour voir les statistiques, exécutez la commande suivante dans ce dossier: maintenant, vous pouvez pointer votre navigateur vers la visualisation des incorporations, par exemple http://server_address: #embeddings.

Vous verrez une interface comme la suivante: ensuite, nous devons installer Anaconda en suivant les instructions sur le site officiel, qui consistent à télécharger l`exécutable, l`exécuter, et d`ajouter Anaconda à la PATH de votre système. Ci-dessous, nous supposerons que Anaconda est installé sous le répertoire de départ. Fichier d`origine (3 072 × 2 304 pixels, taille du fichier: 1,78 Mo, type MIME: image/JPEG) tous les fichiers de code et de configuration de cet article sont disponibles dans le référentiel GitHub qui l`accompagne. Mais assurez-vous de suivre les étapes ci-dessous pour obtenir le workflow complet. Pour l`exécuter vous-même, dirigez-vous vers les fichiers et ajustez les répertoires GLOVE_DIR et TEXT_DATA_DIR selon vos préférences, ainsi que d`autres paramètres.