NDLR : Avec le lancement de ChatGPT, un certain nombre d'assistants de génération de code d'intelligence artificielle ont fait leur apparition sur le marché. L'intelligence artificielle générative est en vogue et a pénétré tous les aspects de la vie humaine. L'IA remplacera-t-elle vraiment les programmeurs humains ? Pour les développeurs de programmes, comment survivre et se développer dans le monde ChatGPT ? Cet article partagera 4 conseils pour aider les programmeurs humains à garder une longueur d'avance sur l'IA générative. L'article est issu de la traduction, j'espère qu'il pourra vous inspirer.
Source de l'image : générée par l'IA illimitée
L'intelligence artificielle, en particulier l'IA générative alimentée par de grands modèles de langage (LLM), a le potentiel de perturber l'ensemble de l'industrie des programmeurs. Mais certains experts pensent que l'IA ne remplacera pas les programmeurs humains, du moins pas dans l'immédiat.
"Vous allez devoir vous soucier des personnes qui utilisent l'IA pour se remplacer", a déclaré Tanishq Mathew Abraham, PhD en génie biomédical à l'Université de Californie, Davis, et PDG de MedARC, un centre de recherche sur l'intelligence artificielle médicale.
Alors, comment les développeurs de logiciels peuvent-ils se rendre plus précieux et utiles à l'approche de l'ère du codage LLM ? Voici quelques trucs et astuces pour que les codeurs survivent et prospèrent à l'ère de l'intelligence artificielle générative.
Respectez les principes de base et les bonnes pratiques
Bien que de nombreux assistants de codage basés sur l'IA puissent nous aider à écrire du code et à générer du code, la capacité de base d'apprendre la programmation est toujours requise, c'est-à-dire la capacité de lire et d'analyser le code, et de comprendre comment le code que vous écrivez s'applique aux grands systèmes. . **
"Je crois que l'intelligence artificielle peut grandement améliorer la productivité des développeurs de logiciels, mais le génie logiciel ne consiste pas seulement à générer du code, mais aussi à générer les besoins des utilisateurs, le débogage et les tests, et plus encore."
** L'une des compétences de programmation les plus intégrales reste le domaine des codeurs humains : la résolution de problèmes. ** Analyser un problème et trouver une solution appropriée reste une compétence de codage très appréciée.
"La programmation a son côté créatif, et ces compétences en résolution de problèmes sont plus importantes que le langage ou les outils de programmation réels. Ne vous laissez pas prendre par les comparaisons avec l'intelligence artificielle, qui n'est plus ou moins que la sortie statistique d'un grand modèle de langage. Développeurs Il y a une différence entre ce que vous faites et ce que votre modèle produit, et en tant que développeur, il ne suffit pas d'écrire du code », a déclaré Ines Montani, chercheuse à la Python Software Foundation et cofondatrice et PDG d'Explosion.
De plus, ** les bonnes pratiques d'ingénierie logicielle sont plus précieuses que jamais. ** Ces pratiques incluent la planification de la conception du système et de l'architecture logicielle, et les programmeurs peuvent utiliser des outils d'intelligence artificielle pour prédire plus efficacement quel code sera nécessaire ensuite.
"Les ingénieurs en programmation doivent comprendre les structures de données d'un morceau de code, les bonnes abstractions pour organiser le code et les exigences des différentes interfaces. Tous ces éléments sont au cœur de la pratique du génie logiciel, et ils ne disparaîtront pas. pour longtemps encore."
Trouvez l'outil qui correspond à vos besoins
Trouver les bons outils d'IA est essentiel. Chaque outil a sa propre façon d'interagir, et chaque outil peut être intégré dans le flux de travail de développement de différentes manières, qu'il s'agisse de créer automatiquement des tests unitaires, de générer des données de test ou d'écrire de la documentation.
Par exemple, GitHub Copilot et d'autres assistants de codage IA peuvent augmenter nos capacités de codage et nous fournir des suggestions de codage. ChatGPT et Google's Bard, d'autre part, ressemblent davantage à des programmeurs d'IA conversationnels qui peuvent être utilisés pour répondre à des questions sur une API (interface de programmation d'application) ou générer des extraits de code.
** La clé est d'expérimenter. Essayez un outil d'IA, familiarisez-vous avec son fonctionnement, tenez compte de la qualité de sa sortie et gardez également l'esprit ouvert aux autres outils d'IA. ** Abraham a déclaré : "Le domaine de l'intelligence artificielle évolue rapidement. Vous ne pouvez pas utiliser un certain outil pour toujours, vous devez donc vous adapter rapidement aux nouveaux outils."
Pensez également au cas d'utilisation approprié. Les outils d'intelligence artificielle générative peuvent nous aider à apprendre rapidement un nouveau langage de programmation et peuvent également créer des prototypes de projet en peu de temps.
Un dialogue clair et précis est essentiel
Lorsque vous utilisez un assistant de codage IA, précisez vos besoins et considérez-le comme un processus itératif. Abraham suggère d'écrire un commentaire qui explique le code, afin que l'assistant puisse générer du code qui réponde à vos exigences en fonction du commentaire.
Pour un programmeur d'IA conversationnelle, vous devez savoir comment configurer au mieux les invites, et c'est là que l'ingénierie des invites entre en jeu.
Abraham a suggéré d'utiliser la chaîne de la méthode d'incitation à la pensée. Cette méthode implique en fait une stratégie "diviser pour régner", c'est-à-dire décomposer le problème en plusieurs étapes, puis les résoudre une par une, et enfin résoudre l'ensemble du problème. "Demandez à un modèle de faire trop de choses dans un laps de temps donné et cela ne fonctionnera pas bien. Ce qu'il doit faire, c'est être capable de traiter des morceaux d'informations gérables et de générer des morceaux de code gérables", a-t-il déclaré.
Par exemple, plutôt que de demander à un programmeur IA de coder un programme entier à partir de zéro, réfléchissez bien à toutes les tâches que le programme doit accomplir. ** La division de ces tâches nécessite en outre que le modèle écrive des fonctions spécifiques pour chaque tâche, ce qui nécessite des allers-retours avec le modèle sur les étapes à suivre pour accomplir une certaine tâche. **
"Considérez-le comme un stagiaire intelligent qui connaît un sujet mais qui n'a pas beaucoup d'expérience", déclare Abraham.
La précision et la clarté de l'ingénierie des pointes sont très importantes. Abraham a mentionné: "Vous devez dire très clairement au modèle ce que vous voulez, lui dire très précisément quel problème vous lui demandez de résoudre et vous assurer que vous suivez."
**Il est également utile d'apprendre les concepts de base de l'intelligence artificielle et de l'apprentissage automatique, ainsi que de comprendre le fonctionnement des grands modèles de langage ainsi que leurs forces et leurs faiblesses. ** Vous devrez faire vos recherches, mais un peu de bon sens est essentiel pour juger du résultat.
Pour vous aider à démarrer, Abraham recommande le livre de recettes OpenAI, qui comprend des chapitres sur les bibliothèques et outils d'astuces, des guides d'astuces, des leçons vidéo, etc., tandis que Weisslingame recommande de lire le transformateur illustré pour en savoir plus sur les bases des modèles et de l'apprentissage automatique.
Soyez critique et conscient des risques
Les ingénieurs logiciels devraient être critiques à l'égard de la sortie des grands modèles de langage, car ils ont tendance à halluciner et à générer du code fictif, inexact, voire erroné. "L'utilisation aveugle de code généré par l'IA peut facilement conduire à des impasses, et il est difficile de repérer des erreurs subtiles", a déclaré Weisslingame.
"C'est pourquoi il est essentiel de vérifier le code généré, qui, tout en ajoutant du travail, peut faire plus de mal que de bien à la productivité", a déclaré Weisslingame. Mais Abraham affirme que "dans certains cas, vérifier le code est beaucoup plus facile que d'écrire du code à partir de zéro, et c'est un moyen beaucoup plus rapide de générer du code, de le valider, puis de l'intégrer dans une base de code existante."
Analysons les résultats de ces modèles et posons-nous les questions suivantes : ** Sur quelles données ce modèle a-t-il été formé ? Quelles données ont été filtrées et quelles données n'ont pas été incluses ? Quel est l'âge des données d'entraînement ? Sur quelle version du langage de programmation, du progiciel ou de la bibliothèque le modèle a-t-il été formé ? Les réponses à ces questions peuvent influencer les résultats et fournir des informations plus pertinentes. **
Les développeurs doivent également se méfier de l'entrée de code propriétaire dans ces modèles. Certaines entreprises, telles que Tabnine, proposent des versions d'entreprise d'assistants de codage alimentés par l'IA qui apprennent les modèles et les styles de codage d'entreprise tout en garantissant la confidentialité.
Le droit d'auteur est une autre considération, mais si vous utilisez ces outils pour compléter quelques lignes de code ou générer du code pour des tâches courantes et triviales, les problèmes de droit d'auteur sont moins préoccupants que la génération de gros morceaux de code.
"Les programmeurs devraient avoir une certaine conscience de l'ingéniosité de ce qu'ils essaient de faire et de la façon dont cette ingéniosité s'intègre dans leur environnement", a déclaré Lesama. "Si le code généré par le modèle présente une certaine originalité, il faut le traiter avec méfiance et méfiance avant de le mettre dans la base de code".
Une plus grande préoccupation est la sécurité du code, car ces modèles peuvent générer du code contenant des vulnérabilités. Weisslingame pense que les meilleures pratiques de développement de logiciels, telles que les revues de code et de solides pipelines de tests, peuvent aider à se prémunir contre ce risque.
"L'une des choses que les ingénieurs logiciels plus expérimentés peuvent apporter à la table est les vulnérabilités les plus courantes dans le code et les façons les plus courantes dont le code est vulnérable", a déclaré Lesama. "Ils développeront une intuition sur où chercher, quels endroits provoquera la vigilance. À l'avenir, ces technologies deviendront une partie encore plus importante du portefeuille de génie logiciel. "
Pour que les programmeurs survivent dans un monde d'IA générative, ils doivent voir l'IA comme un outil et l'intégrer dans leur flux de travail, tout en reconnaissant les opportunités et les limites de ces outils et en s'appuyant sur la capacité de codage humain pour grandir et se développer.
Traducteur : Aron_
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Comment les programmeurs survivent-ils dans le monde ChatGPT ?
Source : Bureau de traduction divine
NDLR : Avec le lancement de ChatGPT, un certain nombre d'assistants de génération de code d'intelligence artificielle ont fait leur apparition sur le marché. L'intelligence artificielle générative est en vogue et a pénétré tous les aspects de la vie humaine. L'IA remplacera-t-elle vraiment les programmeurs humains ? Pour les développeurs de programmes, comment survivre et se développer dans le monde ChatGPT ? Cet article partagera 4 conseils pour aider les programmeurs humains à garder une longueur d'avance sur l'IA générative. L'article est issu de la traduction, j'espère qu'il pourra vous inspirer.
L'intelligence artificielle, en particulier l'IA générative alimentée par de grands modèles de langage (LLM), a le potentiel de perturber l'ensemble de l'industrie des programmeurs. Mais certains experts pensent que l'IA ne remplacera pas les programmeurs humains, du moins pas dans l'immédiat.
"Vous allez devoir vous soucier des personnes qui utilisent l'IA pour se remplacer", a déclaré Tanishq Mathew Abraham, PhD en génie biomédical à l'Université de Californie, Davis, et PDG de MedARC, un centre de recherche sur l'intelligence artificielle médicale.
Alors, comment les développeurs de logiciels peuvent-ils se rendre plus précieux et utiles à l'approche de l'ère du codage LLM ? Voici quelques trucs et astuces pour que les codeurs survivent et prospèrent à l'ère de l'intelligence artificielle générative.
Respectez les principes de base et les bonnes pratiques
Bien que de nombreux assistants de codage basés sur l'IA puissent nous aider à écrire du code et à générer du code, la capacité de base d'apprendre la programmation est toujours requise, c'est-à-dire la capacité de lire et d'analyser le code, et de comprendre comment le code que vous écrivez s'applique aux grands systèmes. . **
"Je crois que l'intelligence artificielle peut grandement améliorer la productivité des développeurs de logiciels, mais le génie logiciel ne consiste pas seulement à générer du code, mais aussi à générer les besoins des utilisateurs, le débogage et les tests, et plus encore."
** L'une des compétences de programmation les plus intégrales reste le domaine des codeurs humains : la résolution de problèmes. ** Analyser un problème et trouver une solution appropriée reste une compétence de codage très appréciée.
"La programmation a son côté créatif, et ces compétences en résolution de problèmes sont plus importantes que le langage ou les outils de programmation réels. Ne vous laissez pas prendre par les comparaisons avec l'intelligence artificielle, qui n'est plus ou moins que la sortie statistique d'un grand modèle de langage. Développeurs Il y a une différence entre ce que vous faites et ce que votre modèle produit, et en tant que développeur, il ne suffit pas d'écrire du code », a déclaré Ines Montani, chercheuse à la Python Software Foundation et cofondatrice et PDG d'Explosion.
De plus, ** les bonnes pratiques d'ingénierie logicielle sont plus précieuses que jamais. ** Ces pratiques incluent la planification de la conception du système et de l'architecture logicielle, et les programmeurs peuvent utiliser des outils d'intelligence artificielle pour prédire plus efficacement quel code sera nécessaire ensuite.
"Les ingénieurs en programmation doivent comprendre les structures de données d'un morceau de code, les bonnes abstractions pour organiser le code et les exigences des différentes interfaces. Tous ces éléments sont au cœur de la pratique du génie logiciel, et ils ne disparaîtront pas. pour longtemps encore."
Trouvez l'outil qui correspond à vos besoins
Trouver les bons outils d'IA est essentiel. Chaque outil a sa propre façon d'interagir, et chaque outil peut être intégré dans le flux de travail de développement de différentes manières, qu'il s'agisse de créer automatiquement des tests unitaires, de générer des données de test ou d'écrire de la documentation.
Par exemple, GitHub Copilot et d'autres assistants de codage IA peuvent augmenter nos capacités de codage et nous fournir des suggestions de codage. ChatGPT et Google's Bard, d'autre part, ressemblent davantage à des programmeurs d'IA conversationnels qui peuvent être utilisés pour répondre à des questions sur une API (interface de programmation d'application) ou générer des extraits de code.
** La clé est d'expérimenter. Essayez un outil d'IA, familiarisez-vous avec son fonctionnement, tenez compte de la qualité de sa sortie et gardez également l'esprit ouvert aux autres outils d'IA. ** Abraham a déclaré : "Le domaine de l'intelligence artificielle évolue rapidement. Vous ne pouvez pas utiliser un certain outil pour toujours, vous devez donc vous adapter rapidement aux nouveaux outils."
Pensez également au cas d'utilisation approprié. Les outils d'intelligence artificielle générative peuvent nous aider à apprendre rapidement un nouveau langage de programmation et peuvent également créer des prototypes de projet en peu de temps.
Un dialogue clair et précis est essentiel
Lorsque vous utilisez un assistant de codage IA, précisez vos besoins et considérez-le comme un processus itératif. Abraham suggère d'écrire un commentaire qui explique le code, afin que l'assistant puisse générer du code qui réponde à vos exigences en fonction du commentaire.
Pour un programmeur d'IA conversationnelle, vous devez savoir comment configurer au mieux les invites, et c'est là que l'ingénierie des invites entre en jeu.
Abraham a suggéré d'utiliser la chaîne de la méthode d'incitation à la pensée. Cette méthode implique en fait une stratégie "diviser pour régner", c'est-à-dire décomposer le problème en plusieurs étapes, puis les résoudre une par une, et enfin résoudre l'ensemble du problème. "Demandez à un modèle de faire trop de choses dans un laps de temps donné et cela ne fonctionnera pas bien. Ce qu'il doit faire, c'est être capable de traiter des morceaux d'informations gérables et de générer des morceaux de code gérables", a-t-il déclaré.
Par exemple, plutôt que de demander à un programmeur IA de coder un programme entier à partir de zéro, réfléchissez bien à toutes les tâches que le programme doit accomplir. ** La division de ces tâches nécessite en outre que le modèle écrive des fonctions spécifiques pour chaque tâche, ce qui nécessite des allers-retours avec le modèle sur les étapes à suivre pour accomplir une certaine tâche. **
"Considérez-le comme un stagiaire intelligent qui connaît un sujet mais qui n'a pas beaucoup d'expérience", déclare Abraham.
La précision et la clarté de l'ingénierie des pointes sont très importantes. Abraham a mentionné: "Vous devez dire très clairement au modèle ce que vous voulez, lui dire très précisément quel problème vous lui demandez de résoudre et vous assurer que vous suivez."
**Il est également utile d'apprendre les concepts de base de l'intelligence artificielle et de l'apprentissage automatique, ainsi que de comprendre le fonctionnement des grands modèles de langage ainsi que leurs forces et leurs faiblesses. ** Vous devrez faire vos recherches, mais un peu de bon sens est essentiel pour juger du résultat.
Pour vous aider à démarrer, Abraham recommande le livre de recettes OpenAI, qui comprend des chapitres sur les bibliothèques et outils d'astuces, des guides d'astuces, des leçons vidéo, etc., tandis que Weisslingame recommande de lire le transformateur illustré pour en savoir plus sur les bases des modèles et de l'apprentissage automatique.
Soyez critique et conscient des risques
Les ingénieurs logiciels devraient être critiques à l'égard de la sortie des grands modèles de langage, car ils ont tendance à halluciner et à générer du code fictif, inexact, voire erroné. "L'utilisation aveugle de code généré par l'IA peut facilement conduire à des impasses, et il est difficile de repérer des erreurs subtiles", a déclaré Weisslingame.
"C'est pourquoi il est essentiel de vérifier le code généré, qui, tout en ajoutant du travail, peut faire plus de mal que de bien à la productivité", a déclaré Weisslingame. Mais Abraham affirme que "dans certains cas, vérifier le code est beaucoup plus facile que d'écrire du code à partir de zéro, et c'est un moyen beaucoup plus rapide de générer du code, de le valider, puis de l'intégrer dans une base de code existante."
Analysons les résultats de ces modèles et posons-nous les questions suivantes : ** Sur quelles données ce modèle a-t-il été formé ? Quelles données ont été filtrées et quelles données n'ont pas été incluses ? Quel est l'âge des données d'entraînement ? Sur quelle version du langage de programmation, du progiciel ou de la bibliothèque le modèle a-t-il été formé ? Les réponses à ces questions peuvent influencer les résultats et fournir des informations plus pertinentes. **
Les développeurs doivent également se méfier de l'entrée de code propriétaire dans ces modèles. Certaines entreprises, telles que Tabnine, proposent des versions d'entreprise d'assistants de codage alimentés par l'IA qui apprennent les modèles et les styles de codage d'entreprise tout en garantissant la confidentialité.
Le droit d'auteur est une autre considération, mais si vous utilisez ces outils pour compléter quelques lignes de code ou générer du code pour des tâches courantes et triviales, les problèmes de droit d'auteur sont moins préoccupants que la génération de gros morceaux de code.
"Les programmeurs devraient avoir une certaine conscience de l'ingéniosité de ce qu'ils essaient de faire et de la façon dont cette ingéniosité s'intègre dans leur environnement", a déclaré Lesama. "Si le code généré par le modèle présente une certaine originalité, il faut le traiter avec méfiance et méfiance avant de le mettre dans la base de code".
Une plus grande préoccupation est la sécurité du code, car ces modèles peuvent générer du code contenant des vulnérabilités. Weisslingame pense que les meilleures pratiques de développement de logiciels, telles que les revues de code et de solides pipelines de tests, peuvent aider à se prémunir contre ce risque.
"L'une des choses que les ingénieurs logiciels plus expérimentés peuvent apporter à la table est les vulnérabilités les plus courantes dans le code et les façons les plus courantes dont le code est vulnérable", a déclaré Lesama. "Ils développeront une intuition sur où chercher, quels endroits provoquera la vigilance. À l'avenir, ces technologies deviendront une partie encore plus importante du portefeuille de génie logiciel. "
Pour que les programmeurs survivent dans un monde d'IA générative, ils doivent voir l'IA comme un outil et l'intégrer dans leur flux de travail, tout en reconnaissant les opportunités et les limites de ces outils et en s'appuyant sur la capacité de codage humain pour grandir et se développer.
Traducteur : Aron_