【Dialogue Naturel】Pourquoi revenir à la programmation alors qu’on peut enfin dialoguer en langage naturel ? — Apprendre l'IA lentement 029
Introduction
- Écrire du code dans un prompt n’est vraiment pas nécessaire
- On a enfin réussi à dialoguer en langage naturel
- Ce n’est pas de la programmation en langage naturel
- La programmation doit rester dans les mains des programmeurs
- Ne compliquons pas la vie des gens ordinaires
- Les programmeurs devraient écrire leur code là où il faut
- Les hallucinations dans le prompt sont difficiles à déboguer
- Il n’y a pas besoin d’ajouter un fardeau ou de l’anxiété à l’apprentissage des gens ordinaires
- Il n’est pas nécessaire d’écrire du code dans le prompt
1. Quelle est l’expérience d’écrire du code dans le prompt
1.1. Un exemple de prompt raté illustre que c’est inutile d’entrer dans cette démarche
Prompt et résultat de sortie
Vous êtes un générateur de cartes de révision de mots capable d’exécuter du code, selon les entrées de l’utilisateur concernant le nombre de lignes, de colonnes, le niveau scolaire et la date, générez une carte. Référez-vous au code ci-dessous pour l’exécution :
1 | import pandas as pd |
En commençant à utiliser, vous attendrez que l’utilisateur entre les informations nécessaires, puis vous utiliserez votre capacité de code pour créer un tableau pour l’utilisateur.
Résultat de sortie, le code a effectivement été exécuté
Le code est comme suit :
1 | import pandas as pd |
Cet exemple échoué révèle plusieurs points :
- Atteindre les résultats d’un langage de programmation traditionnel nécessite un énorme investissement d’efforts
- Déboguer et modifier du code se révèle très compliqué et pénible
- Il est difficile de cerner la nécessité d’intégrer du code dans le prompt
À ce moment, certains pourraient dire : c’est parce que vos compétences en programmation sont faibles…
Oui, c’est vrai, mes capacités en écriture de code sont assez ordinaires.
Mais attendez, si l’IA exige de telles compétences en programmation, est-ce encore de l’AIGC ?
Regardons une simplification d’une autre manière d’utiliser les variables, où l’on constate qu’il s’agit d’une langue dont on ne trouve pas la nature.
1.2. Quel est le contexte d’intégration de pseudo-code
Prompt et résultat de sortie
1 | "Sur la base de mon intérêt {interests}, mon budget {budget}, la durée du voyage {travel_duration} et le nombre de compagnons {number_of_companions}, aide-moi à planifier un voyage." "Les intérêts incluent mais ne se limitent pas à {list_of_interests}." "La fourchette budgétaire est {budget_range}." "La durée prévue pour le voyage est de {length_of_trip} jours." "Je voyagerai avec {number_of_people} personnes, qui ont un éventail d'âges et d'intérêts {ages_and_interests}." "Fournis-nous des suggestions détaillées pour notre itinéraire quotidien, y compris des recommandations de repas {meal_preferences} et des choix d'hébergement {accommodation_preferences}." |
Bien que cet exemple ne soit pas parfait, il ressemble davantage à un modèle de prompt avec variables. Cela nous montre que, dans certains contextes, cette méthode peut s’avérer efficace. Des cas similaires incluent : pour concevoir des prompts plus complexes, il est possible d’ajouter davantage de points de décision et de variables afin d’enrichir le processus d’interaction. Voici des exemples complexes pour différents scénarios :
Scénario 1 : Plan de repas santé complet
Prompt initial :
1 | "Je souffre de {dietary_restrictions} et j'ai besoin d'un plan de repas {meal_type} pour les {number_of_days} jours à venir." |
Scénario 2 : Évaluation approfondie d’un produit technologique
Prompt initial :
1 | "J'envisage d'acheter {product_name}, merci de me fournir des fonctionnalités détaillées {detailed_features}, des avis utilisateurs {detailed_reviews}, une comparaison de prix {price_comparison} et des conseils d'achat {purchase_advice}." |
Scénario 3 : Plan détaillé de ressources d’apprentissage
Prompt initial :
1 | "Je souhaite apprendre {subject}, recommande des ressources d'apprentissage adaptées en fonction de mon style d'apprentissage {learning_style} et de mon temps disponible {available_time}." |
Scénario 4 : Parcours de reconversion professionnelle détaillé
Prompt initial :
1 | "Mon métier actuel est {current_job} et je m'intéresse au secteur de {industry_interest}." |
Jetons maintenant un coup d’œil à ce que pourrait être une logique simple.
1.3. Pseudo-code / langage naturel avec une certaine logique
Prompt et résultat de sortie
1 | Entrée : n |
C’est relativement simple, compliquons un peu ?
1 | Entrée : tableau trié A, valeur à rechercher val |
Je ne lui ai pas dit que je cherchais 99, et il est allé chercher tout seul…
Ces exemples ont un fort accent scientifique et sont assez éloignés de nos vies quotidiennes.
Cela a été effectué avec ChatGPT 3.5 ; il reste à voir s’il a réellement fait des calculs, mais cela ne nous empêche pas de continuer notre exploration. Étant donné que la plupart des gens n’ont pas besoin de plonger dans des langages de programmation complexes et changeants, il n’est pas nécessaire de s’y attarder, économisons notre énergie. La question clé est que ce langage naturel et pseudo-code est difficile à appréhender. Si le prompt devenait trop complexe, les choses pourraient devenir très épineuses dans un environnement de production :
- Résultats imprévisibles
- Le problème des hallucinations est déjà présent dans l’exemple ci-dessus
- Processus imprévisible
- Comme un processus SQL de 8000 lignes
- Chaque mise à jour de système fait que personne n’ose y toucher
On semble aboutir à un prompt maximal ici https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor
2. Qu’est-ce que la programmation en langage naturel ?
Avec l’avènement des prompts, les grandes entreprises de modèles comme OpenAI ont suscité un émoi dans les médias : l’inspiration des articles était au rendez-vous !
Le prompt a été interprété comme un nouveau langage de programmation, comme si le maîtriser allait engendrer des merveilles, avec une armée d’AIGC capable de peindre, écrire, tourner des films, tout cela sans effort ! si facile !!!
Le seul problème est :
- Je ne sais pas encore faire cela
- Mais je crois que c’est sûrement simple.
- Cependant, pour l’instant, je ne sais encore pas comment faire.
Alors qu’est-ce que la programmation en langage naturel ? Que veut dire Jensen Huang lorsqu’il dit qu’il ne faut pas apprendre à programmer ?
La question peut se ramener à très longtemps auparavant…
Sans trop remonter dans le temps, disons simplement que nous souhaitons que les ordinateurs nous aident à résoudre des problèmes, mais nous découvrons que c’est assez difficile, alors certains scientifiques ont commencé par les calculs, accumulant doucement des méthodes pour résoudre des problèmes.
Les scientifiques ont découvert que certains phénomènes naturels pouvaient être abstraits en problèmes mathématiques. Par exemple, le problème des poules et des lapins peut se résoudre par des équations.
Avec le temps, les mathématiciens ont commencé à commodifier leurs abstractions, utilisant davantage d’outils mathématiques, des choses devenues impossibles à calculer manuellement, ainsi vinrent les ordinateurs et les langages de programmation. Pour la plupart d’entre nous, l’apprentissage du langage de programmation suit ce processus : comprendre les types de données, les structures if/else, les boucles for, etc.
Ces outils sont des méthodes par lesquelles les ordinateurs résolvent des problèmes, en simplifiant et en restreignant les problèmes en leur liant des limites. Les avantages sont évidents, nous avons une meilleure maîtrise des problèmes et des moyens de les résoudre. Cependant, les inconvénients sont aussi clairs : certains problèmes sont difficiles à contraindre, nécessitant une exploration plus libre.
Alors, certains ont commencé à imaginer s’il existait une manière de se passer des langages de programmation. À l’heure actuelle, il semble qu’à mesure que la complexité des problèmes augmente, on y reviendrait vraiment au codage !! Comme je ne maîtrise pas Photoshop et n’utilise que Paint et quelques outils simples en ligne, si je devais vraiment traiter une image complexe, il vaudrait mieux que j’apprenne Photoshop !! Le paradoxe réside dans l’évaluation des résultats dans la programmation en langage naturel. Si nous utilisons la programmation en langage naturel, comment garantir qu’elle ne produit pas de résultats erronés ?
On connaît l’adage selon lequel les grands modèles de langage jouent à un jeu de mots. Ainsi,
1 | 1+1=2 |
n’est pas un calcul résultant, mais plutôt une simple suite de formation. Afin de remédier à cela, OpenAI a lancé l’année dernière l’interprète de code, apportant un peu d’espoir à ceux d’entre nous qui ne savons pas programmer.
3. Que peut faire l’interprète de code ?
En termes simples, l’interprète de code peut être compris comme un espace sécurisé qui, sur la base des modèles de langage existants, exécute du code Python, comprend le contexte et les intentions, génère et exécute le code, puis compile les résultats pour nous informer.
On peut le considérer comme une aide pour accomplir une tâche en fournissant les exigences, et c’est lui qui les réalise. Les détails techniques plus complexes se trouvent à la fin. On peut dire qu’il peut faire la plupart des choses que Python peut faire, examinons des scénarios typiques.
Les quatre scénarios ci-dessous disposent tous d’outils spécialisés, mais ils offrent de nouvelles possibilités d’expérimentation. À l’instar de l’émergence d’Internet mobile, il y avait des controverses initiales, mais un équilibre a lentement été établi, beaucoup de tâches ne nécessitant plus d’outils aussi spécialisés.
Il est parfois surprenant de le voir échouer après 10 tentatives. Par exemple, j’ai demandé une analyse des résumés de TickTick, et il a échoué plus d’une dizaine de fois.
Au total, utiliser cela pour l’exploration est extrêmement approprié
Comment l’activer ? Dans l’interface GPTs, il y a une option à cocher, ce qui la rend incluse, dans ma communication avec GPT4, je dis actuellement d’utiliser sa capacité Python ou sa capacité d’exécution de code, puis je continue :
Au regard de l’interaction ci-dessus, l’ensemble du processus reste simple.
3.1 Analyse de données et visualisation
Ici, on peut même commencer sans préciser notre demande, en jetant un fichier CSV ou Excel pour qu’il le traite automatiquement, il trouvant des graphiques propres pour rendre les données plus compréhensibles. Si ce n’est pas satisfaisant, nous pouvons préciser par la suite.
Dans le monde professionnel et la recherche moderne, l’analyse de données et la visualisation sont des outils clés pour saisir les tendances et les modèles. Le plugin interprète de code ChatGPT simplifie énormément ce processus grâce à l’intégration de puissantes bibliothèques de science des données telles que pandas et matplotlib. Les utilisateurs peuvent simplement demander en langage naturel au ChatGPT d’effectuer des opérations sur les données et de générer des graphiques, simplifiant ainsi l’analyse de données et la rendant plus accessible.
Par exemple, un analyste de marché peut avoir besoin d’analyser les données de vente d’un produit et de montrer les performances de vente dans différentes régions. Grâce à l’interprète de code, il peut simplement demander à ChatGPT de lire un fichier CSV contenant les données de vente, d’utiliser pandas pour calculer le chiffre d’affaires total par région, puis d’utiliser matplotlib pour créer un graphique à barres. Le tout sans avoir à écrire de code complexe, juste une description simple de la tâche d’analyse de données et des exigences de visualisation.
En outre, la puissance de l’ interprète de code facilite des analyses de séries temporelles, la modélisation prédictive, et des tests statistiques complexes. Par exemple, un scientifique environnemental pourrait vouloir analyser les variations de température au cours des dix dernières années. Grâce à l’interprète de code, il peut charger des ensembles de données, appliquer des modèles de lissage ou de régression, et rapidement générer des graphiques montrant les tendances.
En matière de graphiques, l’analyse quotidienne dans Excel est déjà assez complète, il existe de nombreux outils professionnels, et pour nous, les utilisateurs ordinaires, ChatGPT a la valeur d’apporter des perspectives d’analyse et d’interprétation qui peuvent inspirer de nouvelles idées. Par exemple.
Une question se pose : si le graphique est en chinois, il pourrait ne pas s’afficher correctement, nécessitant probablement le téléchargement d’une police. Cela n’est pas encore résolu.
3.2 Flexibilité dans la conversion de fichiers
Actuellement, cette méthode semble moins efficace, mais elle reste tentable. J’ai tenté de convertir MP4 en MP3 ; en termes d’impact, cela ne paraît pas grand-chose, mais ça a au moins un mérite, c’est mieux que rien. C’est un peu comme le principe d’enlever l’arrière-plan d’une image.
La conversion de formats de fichiers est une demande courante dans de nombreux domaines, surtout lors du traitement de documents et de fichiers multimédias. L’interprète de code, en simplifiant les processus de conversion de fichiers, offre une grande commodité. Que ce soit en recherche scientifique, en ingénierie ou lors d’opérations quotidiennes, être capable de convertir rapidement et avec précision entre différents formats est un élément clé pour améliorer l’efficacité.
En intégrant des bibliothèques Python comme pandas, l’interprète de code peut facilement réaliser des conversions d’un fichier CSV à un fichier Excel, et vice versa. Cela représente un immense gain de temps pour des utilisateurs nécessitant la migration et l’utilisation des données entre différentes plateformes logicielles. Par exemple, un analyste financier pourrait avoir besoin de convertir des rapports financiers d’Excel en format CSV pour un traitement ultérieur. Avec l’interprète de code, cette tâche devient réalisable en quelques instructions simples.
Pour le traitement d’images, l’interprète de code peut utiliser la bibliothèque PIL (Pillow) de Python pour réaliser des conversions entre différents formats d’image, par exemple de JPEG à PNG. Cela est particulièrement important dans l’édition d’images, la conception Web et l’industrie de l’impression. Les designers ou photographes peuvent rapidement ajuster le format des images pour répondre aux exigences de sortie variées à l’aide de l’interprète de code.
En somme, les champs d’application de l’interprète de code sont vastes et ses fonctionnalités puissantes, de la simple conversion de fichiers à des analyses de données complexes et de visualisation. Il démontre son utilité et son innovation en tant qu’outil moderne. Ces fonctionnalités non seulement augmentent notre efficacité, mais permettent également aux utilisateurs non techniques de traiter plus facilement des tâches qui nécessitaient auparavant des connaissances spécialisées. À mesure que la technologie progresse et que les demandes des utilisateurs se diversifient, il est probable que l’interprète de code élargisse encore ses domaines d’application.
3.3 Développement de code et conception de prototypes
L’interprète de code offre un outil révolutionnaire pour le développement de logiciels et la conception de prototypes, permettant aux développeurs de créer et de tester rapidement des extraits de code. En fournissant un environnement d’exécution avec retour instantané, l’interprète de code permet aux développeurs de valider constamment des algorithmes et des fonctionnalités en temps réel, réduisant ainsi considérablement le cycle de développement et augmentant l’efficacité. Cela s’avère particulièrement utile durant les phases initiales de développement, lorsque l’on doit évaluer des concepts ou tester de nouvelles idées rapidement, tout en évitant les longues attentes liées à la compilation et à l’exécution traditionnelles.
Par exemple, un développeur peut utiliser l’interprète de code pour rapidement créer un prototype d’un script de collecte de données web, tester différentes stratégies de parsing, ou vérifier si le flux d’intégration des données se déroule comme prévu. Avec des commandes simples, l’interprète de code peut exécuter le script, afficher les sorties et fournir des informations pour le débogage, permettant ainsi au développeur d’identifier et de corriger instantanément les problèmes.
- Charger le contenu d’une page web : Utiliser la bibliothèque
requests
pour obtenir le contenu HTML d’un site ciblé. - Analyser le HTML : À l’aide de bibliothèques telles que
BeautifulSoup
, extraire les données souhaitées du HTML. - Traitement des données : Nettoyer et formater les données extraites pour des analyses ou un stockage ultérieur.
- Afficher les résultats : Imprimer ou visualiser les données pour valider l’exactitude des résultats de la collecte.
1 | import requests |
Dans ce scénario, l’interprète de code peut nous aider à effectuer des tests et des validations, évitant ainsi de lancer un projet pour tout initialiser. Certes, cela sera nécessaire à un moment, mais cela nous fait inévitablement gagner du temps.
De plus, l’interprète de code prend en charge une variété de bibliothèques et de modules, ce qui signifie que les développeurs peuvent tirer parti des outils les plus récents et des caractéristiques du langage. Par exemple, ils peuvent utiliser TensorFlow ou PyTorch pour un développement rapide de prototypes dans des modèles d’apprentissage automatique. Cela accélère non seulement l’exploration de nouvelles technologies, mais fournit aussi aux développeurs un environnement d’expérimentation sécurisé où ils peuvent essayer et apprendre de nouveaux outils sans risquer d’endommager leurs configurations de développement existantes.
3.4 Résolution de problèmes mathématiques complexes
L’interprète de code est non seulement un puissant outil de programmation et de développement de logiciels, mais également un assistant efficace pour la résolution de problèmes mathématiques complexes. Grâce à l’intégration de bibliothèques scientifiques telles que Numpy et Scipy, l’interprète de code peut exécuter une large gamme d’opérations mathématiques, des calculs de base aux modélisations mathématiques complexes et aux analyses statistiques.
Dans la recherche scientifique et l’ingénierie, les chercheurs et les ingénieurs doivent souvent effectuer un traitement mathématique complexe sur de grandes quantités de données, y compris mais sans s’y limiter au calcul de l’algèbre linéaire, aux transformations de Fourier et aux analyses statistiques. L’interprète de code peut exécuter ces opérations rapidement et fournir des résultats intuitifs, permettant à l’utilisateur de vérifier immédiatement si leurs calculs sont corrects ou d’observer les tendances et les motifs des données.
Par exemple, un scientifique de l’environnement qui étudie l’impact du changement climatique sur les températures régionales peut charger des données de température historiques, appliquer des modèles statistiques pour analyser les variations de température et visualiser les résultats à l’aide de graphiques. Ce retour instantané et cette puissance de calcul permettent aux chercheurs de se concentrer davantage sur l’analyse et l’interprétation des données plutôt que sur leur traitement.
Surface 3D | Fractale |
---|---|
Tous ces scénarios ont des solutions matures dans la réalité.
4. Analyse des principes de l’interprète de code
Ma question
1 | En utilisant les capacités de Python, indiquez-moi les informations complètes sur la version de Linux de l’environnement sandbox, ainsi que les informations sur la version de Python. Ensuite, exécutez ces deux commandes pour obtenir des informations plus détaillées, qui sont : uname -a et lsb_release -a |
Sa réponse
Dans l’environnement sandbox actuel, nous avons obtenu les informations détaillées suivantes sur le système et Python :
Informations complètes sur la version Linux :
Linux-4.4.0-x86_64-with-glibc2.36
Informations sur la version de Python :
3.11.8 (main, Mar 12 2024, 11:41:52) [GCC 12.2.0]
Résultat de la commande
uname -a
:Linux 3dfa9ec0-11da-496f-831c-878f4773c1c6 4.4.0 #1 SMP Sun Jan 10 15:06:54 PST 2016 x86_64 GNU/Linux
- Cela indique que le noyau Linux utilisé est la version 4.4.0, construite en 2016, avec une architecture x86_64.
Résultat de la commande
lsb_release -a
:Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm
- Cela signifie que le système d’exploitation actuel est Debian GNU/Linux, version 12, avec le surnom “bookworm”.
Nous pouvons déduire qu’il s’agit d’un environnement sandbox pouvant exécuter Python, et il présente certaines restrictions :
- Accès Internet interdit
- Il semble que curl soit accessible
- Limite sur les commandes : timeout de 120 secondes
- Une durée excessive conduira à une interruption
- Accès en mode root interdit
- Cela affectera l’installation de certains logiciels
Cet article vise à démontrer qu’il n’est pas nécessaire d’inclure du code dans le prompt ; il suffit de savoir tirer parti de l’interprète de code.
5. Conclusion : future des interprètes de code
L’interprète de code, en tant qu’outil innovant, a déjà montré son potentiel d’application et sa valeur pratique dans divers domaines. De la science des données au développement logiciel, en passant par la résolution de problèmes mathématiques complexes et le prototypage rapide, cet outil non seulement améliore l’efficacité du travail, mais apporte également une flexibilité et une rapidité sans précédent en matière de création et de recherche. En perspective, avec l’avancée continue de l’intelligence artificielle, on peut s’attendre à ce que l’interprète de code intègre davantage de fonctionnalités avancées, telles que des intégrations en profondeur de l’apprentissage automatique, des générations automatiques de tests, et la collaboration sur le cloud, ce qui élargira encore son champ d’application et approfondira son impact sur les technologies modernes.