2016-11-07 2 views
1

J'ai une question liée à celle-ci:tensorflow dans la production: Comment recycler vos modèles

TensorFlow in production for real time predictions in high traffic app - how to use?

Je veux installer tensorflow Au service de faire l'inférence en tant que service pour notre autre application. Je vois comment TensorFlow Serving m'aide à faire ça. De plus, il mentionne un continuous training pipeline, ce qui est probablement lié à la possibilité que TensorFlow Serving puisse servir avec plusieurs versions d'un modèle entraîné. Mais ce dont je ne suis pas sûr, c'est comment recycler votre modèle lorsque vous obtenez de nouvelles données. L'autre poste mentionne l'idée de faire de la rééducation avec des emplois cron. Cependant, je ne suis pas sûr si le recyclage automatique est une bonne idée. Quelle architecture proposeriez-vous pour un pipeline de recyclage continu avec un système continuellement confronté à de nouvelles données étiquetées?

Éditer: C'est un cas d'apprentissage supervisé. La question est de savoir si vous recontiez automatiquement votre modèle après l'arrivée de n nouveaux points de données ou si vous vous recycliez automatiquement pendant le temps d'arrêt du client ou si vous vous recycliez manuellement?

Répondre

1

Vous souhaitez probablement utiliser une formation semi-supervisée. Il y a des recherches assez approfondies dans ce domaine.

Un moyen simple, mais efficace, qui fonctionne bien, consiste à utiliser les meilleurs modèles actuels que vous avez pour étiqueter les nouvelles données entrantes. Les modèles sont généralement capables de produire un score (heureusement un logprob). Vous pouvez utiliser ce score pour vous entraîner uniquement sur les données qui correspondent bien.

C'est une approche que nous avons utilisée dans la reconnaissance de la parole et qui est une excellente base de référence.

+0

Merci pour la réponse, cela semble très bien pour d'autres tâches que nous avons. En fait, j'étais plus intéressé par la façon dont vous échangez votre ancien modèle avec le nouveau modèle dans un cas de réentraînement continu et supervisé. Cela signifie que si vous avez votre modèle x, et que vous voyez n nouveaux points de données étiquetés, quand vous recalculez-vous pour améliorer votre modèle à x + 1? Vous déclenchez-vous même sur le nombre de points de données ou le relanceriez-vous pendant le temps d'arrêt du client si possible? Ou voulez-vous seulement réexécuter manuellement et ne pas déployer automatiquement? – Ben

+1

Il y a deux approches, les deux sont utilisées, pour différentes raisons. Ils nécessitent un certain niveau d'échelle. Dans le premier, nous avons une équipe de scientifiques de données, en améliorant constamment les algorithmes, et en utilisant plus de données. Puis, chaque semaine, ils se rencontrent pour un comité de lancement. Chaque amélioration apportée à l'algorithme doit être approuvée. Dans l'autre approche, mécaniquement, tous, disons mercredi, une branche est coupée avec les modèles. Ensuite, il est poussé avec tout ce qui est en tête. Dans les deux cas, nous introduisons le nouveau modèle/code dans le service de maintenance et surveillons la latence, la mémoire, la précision, etc. – drpng