Journal AI générative pour scripter en Python ?

Posté par  (Mastodon) . Licence CC By‑SA.
5
8
juin
2023

Salut 'nal

Je viens d'assister à une présentation sur l'utilisation des AI génératives dans le cadre de l'analyse des données.

Chat GPT nous a montré comme il était capable de pisser rapidement du code pas trop mal foutu. Il nous a aussi montré qu'il n'avait aucune réflexion critique sur les résultats. Par exemple, cela ne le gênait pas du tout d'arriver à la conclusion qu'un train connaissait son retard le plus important dans une gare qui a priori ne faisait pas partie du trajet normal du train.

Quoiqu'il en soit, cela démontrait quand même un potentiel intérêt à utiliser ce type d'AI quand on doit écrire des scripts Python. J'aurais bien envie de tester un peu cette piste mais pas trop envie d'utiliser une boite noire disponible sur internet avec bien des incertitudes sur ce que peuvent bien devenir nos données. C'est là que ton avis m'intéresse :

Quels modèles d'AI génératives installable sur un PC perso aurais-tu tendance à utiliser pour pisser des scripts python ?

  • # pour répondre à la question :

    Posté par  . Évalué à 10.

    Aucune; déjà avec un code à typage fort j'hésiterai; mais avec un langage tel que le python, c'est vraiment chercher des ennuis.

    Comme tu le remarque afficher un retard pour une gare hors trajet ne le gène pas; il en sera tout autant pour l'appel de la fonction bidule de l'objet truc.

    Et la seule façon de trouver le bug, c'est qu'il exécute le morceau de code incriminé.

    à la rigueur tu pourrais lui demander des truc spécifique comme lire les entrée en csv d'un fichier passé en paramètre, et vérifier qu'il s'est pas planté; mais tu aurais plus vite fait de faire une recherche pour trouver des exemples de code.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # Machina ex deus

    Posté par  . Évalué à 1.

    On m'a dit que cela ne le gênait pas non plus d'utiliser des fonctions obsolètes, genre de vieilles fonctions Python 2.
    Rien d'étonnant, comme pour les échecs, il y est moyen. Sauf à pouvoir définir clairement ce qu'est un bon coup au jeu ou un bon programme…
    Après n'est-ce qu'une question de temps (et d'affinage de données) ?

  • # Copilot et Copilot chat sont fabuleux

    Posté par  (site web personnel) . Évalué à 4.

    Le gain de productivité est énorme, surtout quand tu as un niveau avancé te permettant de voir les faibles erreurs.

    Il est capable de
    - t'écrire tout seul les tests automatiques
    - de transformer d'un language dans un autre
    - d'écrire des exemples dans ta doc paramétré par le modèle décrit juste au dessus
    - te rajouter un emoticon devant chaque ligne pour ajouter du graphique sur un message
    - t'apprendre une nouvelle syntaxe, que tu rejetes au début et après 10min de recherche tu t’aperçois qu'il avait raison

    Chaque jour il me surprend et ça diminue fortement le "pissage de code". Contrairement aux détracteurs qui pensent que ça rend bête je pense que ça permet de se concentrer sur le but du projet et son architecture. On est pas là pour appuyer sur des touches du clavier à la base.

  • # À la hache

    Posté par  (site web personnel) . Évalué à 8.

    Actuellement je ne suis pas au courant d'une intégration propre à la Github Copilot dans VSCode qui soit dispo facilement en auto-hebergé.

    Néanmoins des modèles existent. Je crois que la hype actuelle du modèle de code auto-hebergé c'est starcoder: https://huggingface.co/bigcode/starcoder . En cherchant un peu on trouve des plugins vscode pour starcoder genre https://github.com/Lisoveliy/StarCoderEx mais j'ai aucune idée de son déploiement local. (À vue de nez pour une inférence locale, faut compter 30Go de RAM et ~ 5charactère/seconde (sachant que ça compte l'entrée et la sortie) sur un CPU 8 coeurs. Ça peut théoriquement descendre à 10Go de RAM avec de moins bons résultats, mais je sais pas où on en est de ça. Pour être à une vitesse plus confortable faudra probablement être sur GPU avec 16Go de VRAM. (Note: J'ai pas réussi à faire tourner starcoder lui-même pour le moment, alors que j'ai pas de problèmes pour d'autres, donc je pifométrise un peu)

    Je réitère ce qui a été dit dans les autres commentaires, il est suicidaire de leur faire confiance aveuglement, et dans mon expérience l'énergie nécessaire pour comprendre et s'assurer que ce que le modèle a sorti fait bien ce qu'on lui demande est plus élevée que de l'écrire soit-même. (Néanmoins je le trouve utile pour donner des pistes)

    • [^] # Re: À la hache

      Posté par  (Mastodon) . Évalué à 6.

      Néanmoins je le trouve utile pour donner des pistes

      Je suis du même avis : comme je le disais dans un commentaire précédent je me demande si c'est pas la fin de la page blanche (et non pas la fin de la création comme on l'a entendu dans les premières heures d'excitation).

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: À la hache

        Posté par  (site web personnel) . Évalué à 6.

        +1
        Même si je n'ai pas approfondi réellement l'utilisation de chatGPT comme certains, j'ai cependant testé sur 2 choses :

        • une courte introduction sur AWS, et comme le résultat me convenait j'ai bien entendu cité la source et même l'éditeur après quelques jours de réflexion a donnée son feu vert.

        • j'ai aussi demandé à chatGPT de me générer une application django avec des models de données, les views et templates HTML qui vont avec, cela permet d'aller vite sur certaines choses et cela me rappelle le scaffolding de "Ruby On Rails"

        Bon le code se devait d'être revu mais il est tout a fait possible de demander à chatGPT de le formuler autrement dans un style plus proche de ce que j'aurais codé avec mes petits doigts.

        IMHO chaptGPT et l'IA générative devrait permettre d'avancer plus vite sur de nombreuses choses comme de "pisser de la ligne de code".
        Et cela devrait permettre de guider certains utilisateurs dans la rédaction de scripts simple ou faciliter la recherche d'informations, plutôt que de demander aux informaticiens :)

        Mais comme n'importe quel outil ou technique si tu n'as pas un minimum de maîtrises de l'art en question tu risque de ne produire que de la m…..

        Si le seul outil que tu as est un marteau, alors tu auras tendance a voir tout problème comme un clou.

        Une truelle est un outil simple, faire du béton n'est pas super compliqué non plus, mais il suffit de regarder un ancien maçon faire une bordure de fenêtre pour comprendre que la texture du béton et le savoir faire cela ne s'acquiert pas en 10 minutes

        L'informatique c'est pareil

  • # Blender+chatGPT

    Posté par  . Évalué à 4.

    Dans un forum 3D que je fréquente tout le monde reste actuellement avec du chat-gpt pour s'amuser à tester des scripts python pour blender. De temps en temps on doit quant même changer/jouer en changeant sa demande dans le prompt, pour avoir un meilleur résultat aussi même s'il propose des paramètres différents.

    Exemple :
    I need a blender python script that, for each mesh of a 3D scene, deselect everything in the scene but the current object, places the cursor at the object origin, rotates the Y axes of the cursor towards center of the world, add the cursor Z inverted rotation to the object, call the "bpy.ops.object.origin_set( type="ORIGIN_CURSOR")" operator, apply the rotation transforms to the object, and then applies the cursor Z rotation to the object

    Pour la génération d'image réalisé avec nos travaux, là on s'amuse a tester une dizaine de softs en ligne et hors-ligne depuis 6 mois.

  • # Non

    Posté par  . Évalué à 8.

    Quoiqu'il en soit, cela démontrait quand même un potentiel intérêt à utiliser ce type d'AI quand on doit écrire des scripts Python.

    Écrire du code n'a pas de coût. On sait très bien taper du code plus vite, on a des outils triviaux (qui sont simples à comprendre, très rapide à l’exécution et ne demandent pas de carte graphique) pour en écrire plus vite si vraiment on a besoin. La partie écriture de code est un aspect minime de la création de logiciel.

    Ce qui prend du temps, qui a de la valeur c'est décrire du code qui fait ce que tu t'attends à faire. S'assurer que le code qu'à créé une IA générative fait ce que tu espère a globalement le même coût que de tester le code de ton voisin. Parce que c'est là que tu spécifie ce que dois faire ton logiciel. C'est ça qui prend du temps et il n'existe pas de modèle d'IA qui pourra t'aider.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.