Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Deep TabNine : un autocompléteur basé sur l'IA et l'apprentissage profond
Serait comme le Smart Compose de Gmail pour les codeurs

Le , par Bill Fassinou

66PARTAGES

8  0 
L’intelligence artificielle a beaucoup progressé ces dernières années surtout dans les domaines comme la génération d’images et la génération de textes. Cela a permis de mettre au point des systèmes d’autocomplétion basés sur l’IA pour augmenter la productivité et la vitesse de travail des développeurs. TabNine fait partie de cette catégorie de logiciels, mais avec une particularité. Deep TabNine est un autocompléteur de codage. En plus d’être basé sur l’IA, il ajoute désormais un modèle d’apprentissage profond, ce qui augmente considérablement sa qualité de suggestion.

L’intelligence artificielle et l'apprentissage profond ont transformé beaucoup de domaines de l’informatique, et de la vie en général, au cours des dernières années. Les réseaux de neurones sont à la pointe de la technologie dans de nombreux domaines académiques et ils ont été déployés dans la production pour des tâches telles que la conduite autonome, la synthèse de la parole et l'ajout de bouchons d'oreilles au visage humain. Jacob Jackson, étudiant du premier cycle en informatique à l'Université de Waterloo, a décidé de combiner ces technologies dans les outils de développement pour augmenter les performances et la productivité des développeurs, en mettant au point Deep TabNine. Deep TabNine est un autocompléteur de codage.

Deep TabNine peut être ajouté en tant qu'add-on dans un éditeur de texte

Les programmeurs peuvent l'installer en tant qu'add-on dans l'éditeur de texte de leur choix. Ensuite, quand ils commenceront à écrire, Deep TabNine suggérera comment continuer chaque ligne, en offrant de petites portions à la fois. Deep TabNine est formé sur environ 2 millions de fichiers de GitHub. Pendant l’entraînement, son objectif est de prédire chaque jeton à partir des jetons qui le précèdent. Pour atteindre cet objectif, il apprend des comportements complexes, tels que l'inférence de type dans des langages à typage dynamique. Selon son créateur, l’expérience avec Deep TabNine ressemble à peu près à celle que vous pourrez avoir en utilisant la fonctionnalité Smart Compose du service Gmail de Google.


Deep TabNine est un projet qui date de février de l’année dernière, mais vers le milieu de ce mois, Jackson a publié une version plus améliorée (en bêta) de son outil qui utilise désormais un algorithme d’apprentissage profond appelé GPT-2, qui utilise lui-même le réseau Transformer de l’université de Cornell pour améliorer ses capacités de prédiction et de suggestion. Cette architecture a d'abord été développée pour résoudre des problèmes de traitement du langage naturel. Bien que la modélisation du code et la modélisation du langage naturel puissent sembler être des tâches non liées, la modélisation du code nécessite une compréhension inattendue de l'anglais.

Le modèle utilise également une documentation écrite en langage naturel pour déduire les noms de fonction, les paramètres et les types de retours. GPT-2 est conçu par le laboratoire de recherche en intelligence artificielle générale OpenAI. Selon Jackson, le logiciel offre de meilleures suggestions, car il fonctionne sur une bonne base prédictive. En effet, la plupart des autocompléteurs doivent analyser ce que l'utilisateur a déjà écrit pour faire des suggestions, en utilisant leur code comme si vous suiviez les étapes d'une formule mathématique. Deep TabNine, par comparaison, s’appuie sur la capacité de l’apprentissage automatique à trouver des modèles statistiques dans les données pour effectuer ses prédictions.

Deep TabNine se base sur l’apprentissage profond pour faire ses suggestions

Selon Jacob Jackson, les outils d’autocomplétion qui sont basés sur l’IA ne sont pas nouveaux, mais dans le cas de Deep TabNine, l’apprentissage profond a énormément amélioré ce qu’il peut offrir. « Utiliser un apprentissage profond pour créer un logiciel d'autocomplétion offre plusieurs avantages. Cela a résolu un problème pour moi », a-t-il expliqué. De plus, ajoute-t-il, cela facilite l’ajout de la prise en charge de nouvelles langues, pour commencer. Le logiciel n'est pas parfait, explique-t-il, mais dans son état actuel, Deep TabNine prend tout de même en charge environ 22 langages de codage différents, alors que la plupart des alternatives ne fonctionnent qu'avec un seul.


Actuellement, Deep TabNine prend en charge les langages suivants : Python, JavaScript, Java, C ++, C, PHP, Go, C#, Ruby, Objective-C, Rust, Swift, TypeScript, Haskell, OCaml, Scala, Kotlin, Perl , SQL, HTML, CSS et Bash. Contrairement aux autres autocompléteurs, Deep TabNine ne consulte pas le code des utilisateurs pour faire des suggestions, ce qui signifie qu’il peut commencer dès le départ à aider les projets, au lieu d'attendre quelques indications du code écrit par l'utilisateur. Cependant, selon ce qu’explique Jacob Jackson sur son outil d’autocomplétion, Deep TabNine peut faire des erreurs dans ses suggestions et n'est pas totalement utile pour tous les types de codage.

Les utilisateurs qui l’ont essayé n’ont pas manqué de partager leurs avis sur les différents sites communautaires et de commentaires, certains le qualifiant « d’incroyable » ou « d'absolument hallucinant ». Mais certains commentaires ont souligné quelques limites à l’outil. Sur ce point, une des plaintes que Jackson juge légitimes est que Deep TabNine est plus adapté à certains types de codage. Il est moins capable d'écrire du code exploratoire, où l'utilisateur résout un nouveau problème. Cela est logique étant donné que le logiciel tire ses connaissances des modèles trouvés dans les données d'archives. Alors,

À quel point Deep TabNine peut être utile pour un codeur moyen ?

Jacob Jackson a indiqué que cela dépend de nombreux facteurs comme le langage de programmation utilisé et les objectifs recherchés. Il ajoute également que c'est plus une méthode de saisie plus rapide qu'un partenaire de codage humain (une pratique courante connue sous le nom de programmation par paires). D’après lui, le fait d’être capable de créer un programme comme celui-ci en utilisant un logiciel open source montre que l'avenir est prometteur pour le codage assisté par l'IA. « C’est l’objectif de tous ceux qui travaillent dans cet espace de dire à l’ordinateur le code que vous voulez écrire et il le fait pour vous. Nous sommes loin de cela pour le moment, mais je vois cela comme un outil qui est un peu plus pratique pour vous d'exprimer vos pensées », a-t-il déclaré.

À l'heure actuelle, une licence pour TabNine coûte 49 USD pour un usage personnel et 99 USD pour un usage professionnel. Les utilisateurs doivent s'inscrire à la version bêta de Deep TabNine pour avoir accès aux nouvelles fonctionnalités basées sur l’apprentissage profond. Sur le site Web officiel de l'outil, Jackson justifie le prix comme ceci : « Deep TabNine vous fera gagner au moins 1 seconde par minute. Si vous valorisez votre temps au-dessus de 1,40 USD/heure, le paiement sera rentabilisé en moins d'un an ». Enfin, explique Jackson, notez que le logiciel améliore la rapidité avec laquelle vous pouvez entrer des informations, ce qui vous rend plus productif. Mais il n'écrira pas votre code pour vous, et vous aurez besoin de garder un œil dessus.

Source : Deep TabNine

Et vous ?

Qu'en pensez-vous ?
Avez-vous déjà testé cet outil ? Comment le trouvez-vous ?

Voir aussi

Microsoft propose de nouvelles fonctionnalités aux développeurs Java sur Visual Studio Code concernant le refactoring et la sélection sémantique

Microsoft annonce la disponibilité générale de Visual Studio 2019 sur Windows et macOS. Petit tour d'horizon sur les nouveautés et améliorations

Apprendre à configurer Visual Studio Code pour déboguer une application ASP.NET Core. Un billet d'Hinault Romaric

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de pboulanger
Membre confirmé https://www.developpez.com
Le 25/07/2019 à 14:52
Si l'IA est entraînée par le code de l'utilisateur, le risque est, si l'utilisateur produit un mauvais code, de proposer de mauvais choix.... J'ai vu un exemple dans LinkedIn où, en Python, l'IA ne proposait pas :
  • de faire de bloc "with" pour ouvrir les fichiers
  • d'utiliser scandir mais listdir
  • ...

Le rôle d'un autocompléteur est d'aider pas de conforter le développeurs dans ses mauvais choix...
5  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 26/07/2019 à 0:27
1s/min de codage, c'est 1.7% de temps de gagné. Sachant que le codage est loin d'occuper tout mon temps de travail (il faut penser design, revue de code, réunions en tout genre, etc.) on doit être en dessous des 1% de temps de gagné. À ce tarif là, je ne vois même pas l'intérêt de prendre du temps à installer le bousin et risquer de perdre du temps avec des bugs potentiels. Le risque de consommer le peu de temps gagné est élevé.
1  0 
Avatar de mermich
Membre expérimenté https://www.developpez.com
Le 29/07/2019 à 16:13
C'est exactement ce que fait deja IntelliCode dans visual studio et ce gratuitement (https://marketplace.visualstudio.com....VSIntelliCode) ...

Si c'est integre a l'IDE et gratuit c'est toujours un plus. Pour des junior cela peut etre assez utile, ensuite pour des profils plus experimentes, cela releve plus de l'accessoire.

Enfin comme le souligne Matthieu Vergne, ecrire du code est un details dans les taches du quotidien, on passe en moyenne 5 fois plus de temps a lire du code, c'est donc la dessus qu'il faudrait ameliorer l'environement en priorite.
1  0 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 25/07/2019 à 13:44
Intéressant mais en lisant l'article et en allant sur le site je trouve des contradictions qui me font dire que je n'ai pas tout compris...

La version gratuite permet d'indexer jusqu'à 100kio du code de notre projet, mais l'article indique qu'il ne fait pas comme les autres auto-compléteur et ne se base pas sur ce que l'on a tapé (donc indexé)...
0  0