IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

L'IA Codex d'OpenAI fait ses débuts en programmation et peut déjà coder dans une dizaine de langages
L'IA pourra-t-elle bientôt décharger les développeurs de certaines tâches, voire les remplacer ?

Le , par Michael Guilloux

372PARTAGES

14  0 
OpenAI vient de publier une nouvelle intelligence artificielle capable de convertir des instructions simples en langage naturel en code informatique fonctionnel. Avec Codex, il est possible, sans taper de code, de créer un jeu spatial et faire la data science. L'IA permet également, entre autres, de convertir du code Python en Ruby, et sait programmer dans plus d'une dizaine de langages. Les développeurs pourront-ils bientôt déléguer une partie de leur travail à des IA ? Sera-t-il possible pour des gens ordinaires de coder sans réellement apprendre à coder ?

OpenAI a publié mardi une version améliorée de son IA Codex à laquelle les développeurs pourront accéder via une API en version bêta privée. Codex, qui est le modèle qui alimente GitHub Copilot, peut désormais interpréter des commandes simples en langage naturel et les exécuter pour l'utilisateur ; ce qui permet de créer une interface en langage naturel pour les applications existantes.


OpenAI Codex est un descendant du modèle de génération de texte GPT-3 d'OpenAI. Mais alors que GPT-3 a été entrainé sur une énorme quantité de données de langage naturel extraites d'Internet, Codex a été entrainé à la fois avec des données de langage naturel et des milliards de lignes de code source provenant de sources accessibles au public. Cela inclut le code des référentiels publics GitHub. En conséquence, les utilisateurs peuvent seulement émettre des commandes en anglais, et Codex va les exécuter en générant un code informatique fonctionnel. OpenAI Codex est plus performant en Python, mais il maîtrise également plus d'une dizaine de langages de programmation, notamment JavaScript, Go, Perl, PHP, Ruby, Swift et TypeScript, et même Shell.

« Une fois qu'un programmeur sait quoi construire, l'acte d'écrire du code peut être considéré comme (1) décomposer un problème en problèmes plus simples, et (2) mapper ces problèmes simples à du code (bibliothèques, API ou fonctions) qui peut déjà exister. Cette dernière activité est probablement la partie la moins amusante de la programmation (et la plus haute barrière à l'entrée), et c'est là où OpenAI Codex excelle le plus », lit-on dans un billet de blog d'OpenAI. « Codex est un modèle de programmation à usage général, ce qui signifie qu'il peut être appliqué à pratiquement n'importe quelle tâche de programmation (bien que les résultats puissent varier). Nous l'avons utilisé avec succès pour la transpilation, l'explication du code et la refactorisation du code. Mais nous savons que nous n'avons fait qu'effleurer la surface de ce qui peut être fait. »

Dans l'annonce de mardi, OpenAI a publié plusieurs vidéos montrant Codex en action :

Créer un jeu spatial avec OpenAI Codex



« Hello World » avec OpenAI Codex



Science des données avec OpenAI Codex



Parler à votre ordinateur avec OpenAI Codex



Conversion de Python en Ruby avec OpenAI Codex



Donner à OpenAI Codex un test de mathématiques de niveau CP


En rendant Codex disponible en version bêta privée, OpenAI compte évoluer aussi rapidement que possible en toute sécurité. Comme avec GPT-3, l'entreprise va travailler en étroite collaboration avec les développeurs pour comprendre l'effet de sa technologie dans le monde. Dans un premier temps, l'IA sera accessible gratuitement.

Codex est le dernier exemple de progrès dans le traitement du langage naturel (NLP), mais il va plus loin. Il laisse croire également en un avenir où les développeurs pourront déléguer une partie de leur travail à des intelligences artificielles, et où des gens ordinaires pourront coder sans réellement apprendre à coder. « Nous pensons qu'il s'agit d'un outil qui peut supprimer les barrières à l'entrée pour permettre à plus de personnes de se lancer dans le codage informatique », affirme Greg Brockman, cofondateur et Chief Technology Officer d'OpenAI. « C'est vraiment le début de la possibilité de parler à votre ordinateur et de lui faire faire ce que vous demandez d'une manière intelligente et fiable », dit-il.

Source : OpenAI

Et vous ?

Que pensez-vous des capacités de l'IA Codex d'OpenAI ?
Croyez-vous que les développeurs pourront bientôt déléguer une partie de leur travail à des IA ?
Un outil qui peut supprimer les barrières à l'entrée dans la programmation ?
Quels pourraient être les effets d'une telle technologie dans le monde actuel ?

Voir aussi :

Microsoft crée un autocompléteur de code à l'aide de GPT-3, le système de génération de texte d'OpenAI, pour combler le manque de développeurs dans le monde
L'IA peut maintenant écrire de la désinformation pour tromper les lecteurs, des chercheurs ont utilisé le générateur de texte GPT-3 pour écrire des tweets que les gens ont trouvés convaincants
Un faux blog d'un lycéen généré par GPT-3, l'IA de traitement du langage naturel d'OpenAI, a trompé des dizaines de milliers de personnes
Open AI propose en bêta privée son modèle de traitement du langage naturel GPT-3, ses applications vont de la génération de texte cohérent à la génération de code en passant par la création d'apps
GPT-3, le système de génération de texte d'OpenAI, produit désormais 4,5 milliards de mots par jour, avec une précision de 91 %

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

Avatar de Fagus
Membre expert https://www.developpez.com
Le 11/08/2021 à 12:49
Citation Envoyé par totozor Voir le message
C'est complètement illusoire.
Mais si, il suffirait de rédiger les spécifications du programme pour l'IA. Evidemment, il faudrait rédiger ces spécifications dans un langage formalisé logique,et sans doute rédiger formellement avec un typage les algorithmes qu'elle ne peut inventer. On aurait besoin donc d'un programme intermédiaire pour repérer les erreurs de syntaxe et de type de ce langage formel et il faudrait payer des gens pour cette tâche
4  0 
Avatar de wallas00
Nouveau membre du Club https://www.developpez.com
Le 11/08/2021 à 15:09
Alors contrairement aux démos de Copilot, celles de Codex semblent montrer une réelle valeur ajoutée.

Je vois déjà microsoft optimiser Power APPs et créer d'autres plateformes de low code similaires.
Les dèvs back pourront produire du code front et vice-versa; pareil pour builder des infrastructures (générer du template cloud formation ou azure arm).
Je ne parle même pas des business analysts et des project manager décents (ayant une compréhension acceptable du code source, des patterns et des protocoles; bref, des dèvs sènior ) qui auront un outils de prototypage surpuissant entre les mains.
Overall, je ne pense pas que les dèvs seront remplacés; cependant, la génération de code par IA suivie d'un refactoring du résultat sera une nouvelle manière de produire des logiciels.

En plus j'ai l'impression que ça réduira considérablement la demande d'ingénieurs logiciel; les fulls stack / back / frond end seront probablement les plus touchés.
Aujourd'hui, les boîtes peuvent se permettre d'embaucher des dèvs ayant des connaissances superficielles; or un ingénieur souhaitant profiter de Codex doit connaître les étapes subtiles / critiques de construction de son appli.
(En gros, c'est pas à mettre entre les main d'un dèv ne connaissant pas par exemple:
- les flows d'authentification ou d'autorisation,
- les bonnes pratiques pour shutdown son serveur applicatif,
- les bonnes pratiques relatives à la gestion de la mémoire et du cpu,
- etc en fonction du sous domaine [web app, microservices dans le cloud, jeux vidéo, embarqué ...]
)

Ceux qui pensent que l'IA ne coupera pas l'herbe sous les pieds des dèvs dans les 5 prochaines années; j'ai envie de leur dire: franchement, quand je vois la vitesse à laquelle on fait des progrès là dessus, j'ai beaucoup de mal à vous donner raison.
4  1 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 15/08/2021 à 15:53
Dans le passé, programmer voulait dire apprendre les instructions d'une machine particulière pour coder un algorithme.

Aujourd'hui, programmer consiste à décrire l'algorithme dans un langage formel qui sera traduit en instructions machine. Le gain est la plus grande accessibilité de l'activité, la perte est sur la maîtrise du niveau machine qui se réduit à une niche de développeurs.

Demain, programmer pourrait correspondre à donner une spécification haut niveau qui serait traduite en algorithmes dans un langage formel choisit selon le type d'application. Le gain serait la plus grande accessibilité de l'activité, la perte serait la maîtrise du niveau algorithmique qui se réduirait à une niche de développeurs.

Ces transitions changent certes le visage du développement, mais aucune ne remplace l'existant : on construit systématiquement dessus. Même aujourd'hui, il nous faut encore des gens qui connaissent les instructions machines pour créer les compilateurs ou interpréteurs qui fonctionnent sur des machines bien concrètes. Je ne doute pas que demain encore il nous faudra des gens maîtrisant l'algorithmie pour écrire les langages (qu'on pourra appeller "de programmation" comme leurs ancêtres) qui traduiront correctement les spécifications haut niveau.

La question est surtout dans quelle mesure les activités principales d'aujourd'hui se réduiront à une niche. Et cela dépendra de l'ampleur de la standardisation des pratiques : des pratiques entièrement standardisées (en terme de choix et d'application d'algos) auront perdu tout intérêt et se verront alors majoritairement automatisées, naturellement, sans que grand monde n'y trouve quoi que ce soit à y redire. Mais tant que des conventions/standards ayant une bonne couverture des cas possibles ne percent pas, on restera avec peu d'automatisation car avec un besoin d'adaptation accru.

On pourra toujours avancer l'argument de la créativité grimpante de solutions d'IA pour couvrir ce besoin d'adaptation, mais il ne faut pas oublier que derrière il faut maintenir le système et certains nécessitent des garanties de fonctionnement et de maintenance. Une solution produite de manière abscons ne fera donc jamais l'unanimité. Ça peut servir dans les cas les plus banals, mais pas dans les cas critiques. Tout du moins pas sans avoir des solutions subsidiaires pour reproduire les garanties désormais perdues par la "magie" de l'IA.

Aujourd'hui, certains se contentent de la reproduction "bête" de systèmes IA existants pendant que d'autres en soulèvent les limites d'interprétation et dangers d'exécution. Demain, certains se contenteront de la traduction "bête" de spécifications haut niveau bancales pendant que d'autres en soulèveront les limites d'interprétation et dangers d'exécution.

Bref, je ne m'attend à rien de neuf si ce n'est de voir une monté de niveau d'abstraction comme on sait le faire depuis nos début en informatique. L'audience changera, les participants du débat changeront, les exemples fondant les arguments changeront, mais le débat restera le même.

L'informatique est avant tout le traitement et le transfert d'information. On aura beau changer le niveau d'abstraction, on en restera toujours à se poser les même questions :
- quelle information représenter ?
- comment la représenter ?
- comment la transformer (produire de nouvelles informations) ?
- comment la transmettre ?

Chacune de ces questions a ses réponses objectives et subjectives, le débat ne sera donc jamais terminé. Comme d'habitude, soit on s'appuiera sur des conventions du passé pour justifier des décisions qu'on ne souhaite pas prendre nous-même (que ce soit raisonnable ou non), soit on tranchera au cas par cas. Changer le niveau d'abstraction ne changera rien à tout ça. Le boulot d'ingénieur en informatique restera le même : avoir la rigueur suffisante pour pouvoir répondre à ces question de la manière la plus pertinente que possible selon le contexte. Mais y répondre ça ne s'invente pas, il faudra toujours un bon bagage pour y arriver. Ce n'est pas parce qu'une activité devient plus accessible que l'expertise n'est plus requise nulle part.
4  1 
Avatar de Il-maestro
Futur Membre du Club https://www.developpez.com
Le 20/08/2021 à 17:16
C'est clair que le métier de pisseur de code - vous savez ces formations de 6,7,8 mois fort à la mode à l'issue desquelles certains s'affublent le titre de "développeur" - est en grand sursis avec ce genre de technologies. Par contre, je doute fort que cet IA puisse générer du code digne de ce nom sans une étape "logique" préalable ou sans analyse du développeur. Comme certains l'ont suggéré ici, il faudra rédiger des spécifications dans un langage formalisé logique. Bref, le métier de développeur va muter. Puis, si ça peut permettre aux développeurs de se concentrer sur des tâches ayant réellement de la valeur ajoutée, pourquoi pas? Après tout, on n'arrêtera pas le progrès technique.
4  1 
Avatar de totozor
Membre expert https://www.developpez.com
Le 11/08/2021 à 12:29
Citation Envoyé par Michael Guilloux Voir le message

[...] où des gens ordinaires pourront coder sans réellement apprendre à coder. « Nous pensons qu'il s'agit d'un outil qui peut supprimer les barrières à l'entrée pour permettre à plus de personnes de se lancer dans le codage informatique », affirme Greg Brockman, cofondateur et Chief Technology Officer d'OpenAI. « C'est vraiment le début de la possibilité de parler à votre ordinateur et de lui faire faire ce que vous demandez d'une manière intelligente et fiable », dit-il.
C'est complètement illusoire.
Je ne suis pas développeur de formation mais je fais des petits outils pour des périmètres restreints.

L'expression du besoin par le demandeur ne correspond jamais à son besoin réel.
Partir du premier pour arriver au deuxième nécessite un (long) échange dont je doute fort qu'une IA soit capable de gérer avant quelques années.

Faire penser l'inverse est problématique.
Les résultats de l'outil fourni sont très rarement remis en cause même s'ils ne sont pas pertinents. Résultats qui sont diffusés et parfois utilisés pour d'autres choses etc.
On se retrouve avec un ensemble de données fausses qu'on est plus capable de corriger parce que la source erronée est introuvable.

Il est nécessaire de mettre une personne capable de plonger dans l'outil pour détecter/challenger les dysfonctionnements de tout ce système.
2  0 
Avatar de vivid
Membre régulier https://www.developpez.com
Le 19/08/2021 à 22:06
Et si on ne fait plus travailler nos cerveaux et dans tout les domaines d'activités, on fait quoi après ? on va vite ce faire chie..
1  0 
Avatar de TJ1985
Membre chevronné https://www.developpez.com
Le 20/08/2021 à 9:56
Euh, pour traduire du code Python en Ruby il me semble qu'un interpréteur ou un compilateur est largement suffisant, pas besoin d'IA.
J'attends toujours le système qui part d'un crobard et en tire l'application de gestion de l'entreprise... Le reste, c'est souvent "je t'en rajoute une couche, t'y comprends plus rien mais je t'assure que ça va te faire du bien".
Pas mon approche.
1  0 
Avatar de CoderInTheDark
Membre émérite https://www.developpez.com
Le 17/09/2021 à 13:33
Pour moi le but est surtout de ne plus payer les développeurs ou de réduire leurs pouvoirs.

Ronald Regan après une grève des contrôlleurs aériens avait demandé à IBM de les remplacer par des machines, et ils sont toujours là.
0  0 
Avatar de TotoParis
Membre expérimenté https://www.developpez.com
Le 24/09/2021 à 21:32
Ca programme aussi en COBOL ?
0  0