Estimation du temps, du coût et des livrables d'un projet d'application ML

Publié: 2019-11-20

Imaginez-vous en train d'acheter un portefeuille personnalisé dans un magasin.

Bien que vous sachiez de quel type de portefeuille vous avez besoin, mais que vous ne connaissiez pas le coût ou le temps nécessaire pour obtenir la version personnalisée.

Il en va de même pour les projets d'apprentissage automatique. Et pour vous aider à résoudre ce dilemme, nous avons fourni des informations détaillées pour que vous ayez un projet réussi.

L'apprentissage automatique est comme une pièce de monnaie qui a deux faces .

D'un côté, cela aide à éliminer les incertitudes des processus. Mais d'un autre côté , son développement est plein d'incertitudes.

Alors que le résultat final de presque tous les projets d' apprentissage automatique (ML) est une solution qui améliore les entreprises et rationalise les processus ; la partie développement de celui-ci a une histoire complètement différente à partager.

Même si le ML a joué un rôle majeur dans le changement de l'histoire des bénéfices et du modèle commercial de plusieurs marques d'applications mobiles établies, il fonctionne toujours à l'état naissant. Cette nouveauté, à son tour, rend d'autant plus difficile pour les développeurs d' applications mobiles de gérer un plan de projet ML et de le rendre prêt pour la production, en gardant à l'esprit les contraintes de temps et de coût.

Une solution ( probablement la seule solution ) à cette difficulté est l'estimation en noir et blanc du projet d'application Machine Learning du temps, du coût et des livrables.

Mais avant de nous diriger vers ces sections, examinons d'abord ce qui fait que la difficulté et la combustion des bougies nocturnes en valent la peine.

Pourquoi votre application a-t-elle besoin d'un framework d'apprentissage automatique ?

Vous pensez peut-être pourquoi nous parlons de cadre au milieu d'estimations de temps, de coût et de livrables.

Mais la vraie raison derrière le temps et le coût réside ici, qui nous informe sur notre motivation derrière le développement d'applications. Que vous ayez besoin d'apprentissage automatique pour :

Pour offrir une expérience personnalisée

Pour intégrer la recherche avancée m

Pour prédire le comportement des utilisateurs

Pour une meilleure sécurité

Pour un engagement profond des utilisateurs

Sur la base de ces raisons, le temps, le coût et le livrable dépendront en conséquence.

Types de modèles d'apprentissage automatique

Quel type de modèle envisageriez-vous pour ajuster le temps et le coût ? Si vous ne le savez pas, nous vous avons fourni des informations pour comprendre et choisir les modèles, en fonction de vos besoins et de votre budget.

L'apprentissage automatique parmi ses différents cas d'utilisation peut être classé en trois types de modèles, qui jouent un rôle dans la transformation d'applications rudimentaires en applications mobiles intelligentes : supervisées, non supervisées et renforcées. La connaissance de ce que ces modèles d'apprentissage automatique représentent est ce qui aide à définir comment développer une application compatible ML.

Enseignement supervisé

C'est le processus où le système reçoit des données où les entrées de l'algorithme et leurs sorties sont étiquetées correctement. Étant donné que les informations d'entrée et de sortie sont étiquetées, le système est formé pour identifier les modèles de données dans l'algorithme.

Il devient d'autant plus avantageux qu'il est utilisé pour prédire le résultat sur la base de données d'entrée futures. Un exemple de cela peut être vu lorsque les médias sociaux reconnaissent le visage de quelqu'un lorsqu'il est tagué sur une photo.

Apprentissage non supervisé

Dans le cas de l'apprentissage non supervisé, les données sont introduites dans le système mais ses sorties ne sont pas étiquetées comme dans le cas du modèle supervisé. Il permet au système d'identifier les données et de déterminer des modèles à partir des informations. Une fois les modèles stockés, toutes les entrées futures sont affectées au modèle pour produire une sortie.

Un exemple de ce modèle peut être vu dans les cas où les médias sociaux donnent des suggestions à des amis sur la base de plusieurs données connues comme la démographie, le niveau d'éducation, etc.

Apprentissage par renforcement

Comme dans le cas de l'apprentissage non supervisé, les données qui sont données au système dans l'apprentissage par renforcement ne sont pas non plus étiquetées. Le type d'apprentissage automatique diffère au motif que lorsqu'une sortie correcte est produite, le système est informé que la sortie est correcte. Ce type d'apprentissage permet au système d'apprendre de l'environnement et des expériences.

Un exemple de cela peut être vu dans Spotify. L'application Spotify fait une recommandation pour les chansons que les utilisateurs doivent ensuite donner un coup de pouce ou un pouce vers le bas. Sur la base de la sélection, l'application Spotify apprend les goûts musicaux des utilisateurs.

Cycle de vie d'un projet d'apprentissage automatique

ML-development-lifecycle-1

Le cycle de vie d'un calendrier des livrables d'un projet d'apprentissage automatique se présente généralement comme suit :

Configuration du plan de projet ML

  • Définir la tâche et les exigences
  • Identifier la faisabilité du projet
  • Discuter des compromis généraux du modèle
  • Créer une base de code de projet

Collecte et étiquetage des données

  • Créer la documentation d'étiquetage
  • Créer le pipeline d'ingestion de données
  • Validation de la qualité des données

Exploration de modèles

  • Établir la ligne de base pour les performances du modèle
  • Créer un modèle simple avec un pipeline de données initial
  • Essayez des idées parallèles au cours des premières étapes
  • Recherchez le modèle SoTA pour le domaine du problème, le cas échéant, et reproduisez les résultats.

Raffinement du modèle

  • Faire des optimisations centrées sur le modèle
  • Déboguez les modèles à mesure que la complexité s'ajoute
  • Effectuez une analyse des erreurs pour découvrir les modes de défaillance.

Tester et évaluer

  • Évaluer le modèle sur la distribution de test
  • Revoir la métrique d'évaluation du modèle, en s'assurant qu'elle induit un comportement utilisateur souhaitable
  • Écrire des tests pour - la fonction d'inférence du modèle, le pipeline de données d'entrée, les scénarios explicites attendus dans la production.

Déploiement du modèle

  • Exposez le modèle via l'API REST
  • Déployez le nouveau modèle sur un sous-ensemble d'utilisateurs pour vous assurer que tout se passe bien avant le déploiement final.
  • Avoir la possibilité de restaurer les modèles à sa version précédente
  • Surveillez les données en direct.

Entretien du modèle

  • Réentraîner le modèle pour éviter l'obsolescence du modèle
  • Sensibiliser l'équipe en cas de transfert de propriété du modèle

Comment estimer la portée d'un projet de Machine Learning ?

L'équipe d'apprentissage automatique d'Appinventiv, après avoir examiné le type d'apprentissage automatique et le cycle de vie de développement, définit ensuite l'estimation du projet d'application d'apprentissage automatique du projet en suivant ces phases :

Phase 1 – Découverte (7 à 14 jours)

La feuille de route du plan de projet ML commence par la définition d'un problème. Il examine les problèmes et les inefficacités opérationnelles qui doivent être résolus.

L'objectif ici est d'identifier les exigences et de voir si l'apprentissage automatique répond aux objectifs commerciaux . L'étape exige que nos ingénieurs rencontrent les gens d'affaires du côté client pour comprendre leur vision en termes de problèmes qu'ils cherchent à résoudre.

Deuxièmement, l'équipe de développement doit identifier le type de données dont elle dispose et si elle aurait besoin de les récupérer auprès d'un service extérieur.

Ensuite, les développeurs doivent évaluer s'ils sont capables de superviser les algorithmes - s'ils renvoient la bonne réponse à chaque fois qu'une prédiction est faite.

Livrable - Un énoncé de problème qui définirait si un projet est trivial ou complexe.

Phase 2 – Exploration (6 à 8 semaines)

L'objectif de cette étape est de s'appuyer sur une preuve de concept qui peut ensuite être installée en tant qu'API. Une fois qu'un modèle de référence est formé, notre équipe d'experts en ML évalue les performances de la solution prête pour la production.

Cette étape nous donne la clarté sur les performances à attendre avec les métriques prévues à l'étape de découverte.

Livrable – Une preuve de concept

Phase 3 – Développement (4+ mois)

C'est l'étape où l'équipe travaille de manière itérative jusqu'à ce qu'elle atteigne une réponse prête pour la production. Parce qu'il y a beaucoup moins d'incertitudes au moment où le projet atteint ce stade, l'estimation devient très précise.

Mais au cas où le résultat ne serait pas amélioré, les développeurs devraient appliquer un modèle différent ou retravailler sur les données ou même changer la méthode, si nécessaire.

À ce stade, nos développeurs travaillent en sprints et décident de ce qui doit être fait après chaque itération individuelle. Les résultats de chaque sprint peuvent être prédits efficacement.

Alors que le résultat du sprint peut être prédit efficacement, la planification des sprints à l'avance peut être une erreur dans le cas de l'apprentissage automatique, car vous travaillerez sur des eaux inexplorées.

Livrable – Une solution ML prête pour la production

Phase 4 – Amélioration (continue)

Une fois déployés, les décideurs sont presque toujours pressés de terminer le projet pour réduire les coûts. Alors que la formule fonctionne dans 80 % des projets, il n'en va pas de même dans les applications d'apprentissage automatique.

Ce qui se passe, c'est que les données changent tout au long de la chronologie du projet Machine Learning. C'est la raison pour laquelle un modèle d'IA doit être surveillé et révisé en permanence - pour le protéger de la dégradation et fournir une IA sûre permettant le développement d'applications mobiles .

Les projets centrés sur l'apprentissage automatique nécessitent du temps pour obtenir des résultats satisfaisants. Même lorsque vous constatez que vos algorithmes battent les références dès le début, il y a de fortes chances qu'ils soient d'un seul coup et que le programme se perde lorsqu'il est utilisé sur un ensemble de données différent.

Facteurs qui affectent le coût global

La manière de développer un système d'apprentissage automatique présente certaines caractéristiques distinctives telles que les problèmes liés aux données et les facteurs liés aux performances qui déterminent la dernière dépense.

Problèmes liés aux données

Le développement d'un apprentissage automatique fiable ne dépend pas seulement d'un codage phénoménal, mais la qualité et la quantité des informations de formation jouent également un rôle crucial.

  1. Manque de données appropriées
  2. Procédures complexes d'extraction, de transformation et de chargement
  3. Traitement des données non structurées

Problèmes liés aux performances

La performance adéquate de l'algorithme est un autre facteur de coût important, car un algorithme de haute qualité nécessite plusieurs séries de sessions de réglage.

  1. Le taux de précision varie
  2. Performances des algorithmes de traitement

Comment estimons-nous le coût d'un projet d'apprentissage automatique ?

Lorsque l'on parle d'estimation du coût d'un projet de machine learning, il est important d'abord d'identifier de quel type de projet on parle.

Il existe principalement trois types de projets d'apprentissage automatique , qui jouent un rôle dans la réponse à Combien coûte l'apprentissage automatique :

Premièrement - Ce type a déjà une solution - à la fois : l'architecture du modèle et l'ensemble de données existent déjà. Ces types de projets sont pratiquement gratuits, nous n'en parlerons donc pas.

Deuxièmement - Ces projets nécessitent une recherche fondamentale - l'application du ML dans un domaine complètement nouveau ou sur des structures de données différentes par rapport aux modèles traditionnels. Le coût de ces types de projets est généralement celui que la majorité des startups ne peuvent pas se permettre.

Troisièmement - Ce sont ceux sur lesquels nous allons nous concentrer dans notre estimation des coûts. Ici, vous prenez l'architecture du modèle et les algorithmes qui existent déjà, puis vous les modifiez en fonction des données sur lesquelles vous travaillez.

Passons maintenant à la partie où nous estimons le coût du projet ML.

Le coût des données

Les données sont la monnaie principale d'un projet de Machine Learning. Un maximum de solutions et de recherches se concentre sur les déclinaisons du modèle d'apprentissage supervisé. C'est un fait bien connu que plus l'apprentissage supervisé est approfondi, plus le besoin de données annotées est important et, par conséquent, plus le coût de développement de l'application Machine Learning est élevé .

Alors que des services comme Scale et Mechanical Turk d'Amazon peuvent vous aider à collecter et à annoter des données, qu'en est-il de la qualité ?

Il peut être extrêmement long de vérifier puis de corriger les échantillons de données. La solution à ce problème est à deux facettes : soit externaliser la collecte de données, soit l'affiner en interne.

Vous devez sous-traiter l'essentiel du travail de validation et d'affinement des données, puis nommer une ou deux personnes en interne pour nettoyer les échantillons de données et les étiqueter.

Le coût de la recherche

La partie recherche du projet, comme nous l'avons partagé ci-dessus, traite de l'étude de faisabilité de niveau d'entrée, de la recherche d'algorithmes et de la phase d'expérimentation. Les informations qui ressortent généralement d'un atelier de livraison de produits . Fondamentalement, l'étape exploratoire est celle que traverse chaque projet avant sa production.

Terminer l'étape avec sa plus grande perfection est un processus qui s'accompagne d'un chiffre attaché au coût de la mise en œuvre de la discussion sur le ML.

Le coût de fabrication

La partie production du coût du projet Machine Learning est composée du coût d'infrastructure, du coût d'intégration et du coût de maintenance. Hors de ces coûts, vous devrez faire le moins de dépenses avec le cloud computing. Mais cela aussi variera de la complexité d'un algorithme à l'autre.

Le coût d'intégration varie d'un cas d'utilisation à l'autre. Habituellement, il suffit de mettre un endpoint d'API dans le cloud et de le documenter pour ensuite être utilisé par le reste du système.

Un facteur clé que les gens ont tendance à négliger lors du développement d'un projet d'apprentissage automatique est la nécessité de passer un support continu pendant tout le cycle de vie du projet. Les données provenant des API doivent être nettoyées et annotées correctement. Ensuite, les modèles doivent être formés sur de nouvelles données et testés, déployés.

En plus des points mentionnés ci-dessus, il existe deux autres facteurs qui ont une importance sur l'estimation du coût de développement d'une application AI/ML .

Défis liés au développement d'applications d'apprentissage automatique

ML-project-challenges

Habituellement, lorsqu'une estimation de projet d'application d'apprentissage automatique est établie, les défis de développement qui y sont associés sont également pris en compte. Mais il peut y avoir des cas où les défis se trouvent à mi-chemin du processus de développement d'applications alimentées par ML. Dans de tels cas, l'estimation globale du temps et des coûts augmente automatiquement.

Les défis pour les projets d'apprentissage automatique peuvent aller de :

  • Décider quel ensemble de fonctionnalités deviendrait des fonctionnalités d'apprentissage automatique
  • Déficit de talents dans le domaine de l'IA et de l'apprentissage automatique
  • L'acquisition d'ensembles de données coûte cher
  • Il faut du temps pour obtenir des résultats satisfaisants

Conclusion

Estimer la main-d'œuvre et le temps nécessaires pour terminer un projet logiciel est relativement facile lorsqu'il est développé sur la base de conceptions modulaires et est géré par une équipe expérimentée suivant une approche Agile . La même chose, cependant, devient d'autant plus difficile lorsque vous travaillez sur la création d'une estimation de projet d'application d'apprentissage automatique en termes de temps et d'efforts.

Même si les objectifs peuvent être bien définis, la garantie qu'un modèle atteindra ou non le résultat souhaité n'est pas là. Il n'est généralement pas possible de réduire la portée, puis d'exécuter le projet dans un cadre temporel limité à une date de livraison prédéfinie.

Il est primordial que vous identifiiez qu'il y aura des incertitudes. Une approche qui peut aider à atténuer les retards consiste à s'assurer que les données d'entrée sont au bon format pour l'apprentissage automatique.

Mais en fin de compte, quelle que soit l'approche que vous envisagez de suivre, elle ne sera considérée comme réussie que si vous vous associez à une agence de développement d'applications d'apprentissage automatique qui sait comment développer et déployer les complexités dans leur forme la plus simple.

FAQ sur l'estimation de projet d'application d'apprentissage automatique

Q. Pourquoi utiliser l' apprentissage automatique pour développer une application ?

Les entreprises peuvent profiter d'un certain nombre d'avantages grâce à l'intégration de l'apprentissage automatique dans leurs applications mobiles. Certains des plus répandus concernent le marketing des applications -

  • Offrir une expérience personnalisée
  • Recherche Avancée
  • Prédire le comportement des utilisateurs
  • Engagement plus profond des utilisateurs

Q. Comment l'apprentissage automatique peut-il aider votre entreprise ?

Les avantages de l'apprentissage automatique pour les entreprises vont au-delà du fait de les marquer comme une marque perturbatrice. Cela se répercute sur leurs offres qui deviennent plus personnalisées et en temps réel.

L'apprentissage automatique peut être la formule secrète qui rapproche les entreprises de leurs clients, exactement comme elles veulent être approchées.

Q. Comment estimer le ROI sur le développement d'un projet Machine Learning ?

Alors que l'article vous aurait aidé à établir l'estimation du projet d'application Machine Learning, le calcul du retour sur investissement est un jeu différent. Vous devrez également tenir compte du coût d'opportunité dans le mix. De plus, vous devrez examiner les attentes de votre entreprise vis-à-vis du projet.

Q. Quelle plate-forme est la meilleure pour un projet ML ?

Votre choix de vous connecter avec une société de développement d'applications Android ou avec des développeurs iOS dépendra entièrement de votre base d'utilisateurs et de l'intention - qu'elle soit lucrative ou centrée sur la valeur.