Suite à mon thread sur les sites automatisés en #IA, on m’a beaucoup demandé « Mais comment t’as fait ».
J'ai pu le présenter à @genaiparis
Je vais détailler mais profitons-en pour parler de comment on « code » avec #ChatGPT#langchain
⤵️⤵️
@genaiparis Je vais essayer de vulgariser un peu, on verra mon workflow spécifique après.
Outre la version grand public, ChatGPT existe aussi en version APIsé, c’est-à-dire que l’on peut donc intégrer dans un programme (soit via OpenAI, soit sur Microsoft Azure). datascientest.com/api-tout-savoir
@genaiparis De ce côté, il n’y a rien de différent avec d’autres services (par exemple se connecter à l’API de twitter pour créer un bot). Là où c’est très différent, c’est que les paramètres que l’on va indiquer sont plus qualitatif. On va coder de manière littérale !
@genaiparis La « magie » d’un LLM est la manière dont il comprend le prompt afin de compléter le texte. A la place de variables traditionnelles on va donc devoir mettre tout dans un prompt.
Il existe des framework pour faciliter la tâche, on va parler de #LangChain github.com/hwchase17/lang…
@genaiparis Afin de créer une application complexe, on va utiliser plusieurs technique (prompt simple, prompt demandant step by step…) et souvent via une « chaine de réflexion » et d’actions à prendre (chain of thoughts + Action Plan = ReAct) python.langchain.com/en/latest/glos…
@genaiparis Par exemple disons que je lui mets à disposition un outil pour chercher sur internet et un outil de calcul (équivalent des plugins de ChatGPT), et lui demande de formuler une chaine de réflexion et d’actions à prendre pour arriver à répondre
@genaiparis Il y a déjà pas mal d’outils qui existent via langchain et de types d’agents, ce qui rend GPT bien plus utile surtout dans un cadre d’entreprise. Et c’est très simple d’en créer d’autres
@genaiparis Mais tout ça n’est pas « magique » en réalité tout rentre dans le prompt. Par exemple pour utiliser les outils, il reçoit donc d’abord le mode d’emploi des outils dans le prompt, à chaque message (masqué par la librairie) qui ressemble à ça
@genaiparis Alors qu’en fait le code ne fait que 3 lignes (je choisi mes outils, je crée l’agent, je lance), la librairie va pré créer le prompt, qui aura été testé par les développeurs de l’outil avant (via les papiers de recherche)
@genaiparis On remarque donc que c’est le prompt qui fait tout.
Un modèle de ce type n’a pas de mémoire, quand vous utilisez chatGPT à chaque fois toute la conversation est renvoyée entièrement. Et il arrive parfois au bout du maximum qu'il peut recevoir et on lui fait « oublier » le début.
@genaiparis Voici les prompts « systèmes » cachés qui sont envoyés donc à chaque requête sur Bing Chat (772 mots) et sur My Ai de Snapchat (478 mots)
Renvoyés à chacun de vos messages
Donc la manière la plus efficace d’utiliser GPT c’est de lui donner à chaque fois le contexte nécessaire pour répondre, comme cet exemple où les sources en rapport avec la question sont remontées au niveau du prompt pour qu’il puisse formuler une réponse
Vous pouvez tester avec un PDF ici (attention seulement avec des données non confidentielles) ici chatpdf.com (je vais pas rentrer sur l'explication de l'indexation ici)
Exemple avec l’étude des vaccins covid Biontech
A ce stade vous avez donc compris que le prompt est le moyen de coder, et que le contexte fait tout.
Revenons à mes sites.
Les sites de base sont un wordpress standard, avec un thème gratuit, rien de spécial, juste customisé les couleurs et rapidement quelques ajouts CSS + config première page, trad, plugins standards etc : temps de mise en place moins d’une heure
Les profils ont été écrits par chatGPT à ma demande, la tagline aussi
Ensuite les photos ont été faites via un stable diffusion, modèle Realistic Vision 1.5/2.0, sur Google Collab (quelques exemples au hasard pas choisis finalement, parmi des centaines… Ca va tellement vite qu’on peut en générer pleins et choisir ensuite)
Je ne pouvais pas utiliser langchain (car PHP) puis au moment du lancement j’étais moins certain de son apport pour ce cas-là. De plus comme on va le voir, c’est très scripté et encadré, je n’ai pas besoin de réflexion de la part de GPT. Je guide.
Donc pour chaque site j’ai ensuite développé un petit plugin avec quelques fonctions, en gros quelques heures de taff avec du try & learn (surtout les prompts), on va rentrer dans le workflow de chaque site et les prompts utilisés
Côté cuisine, le but était de créer de recettes de saison, en rapport avec la culture et la personnalité du « chef », originales, et dans un format précis. Ca donne le workflow suivant :
Toutes les x heures donc une nouvelle recette est éditée, en rajoutant dynamiquement la date du jour, la bio du chef, les anciennes recettes, et un format très strict et précis en sortie pour la mise en page.
Le prompt devient :
Sur Tech Generation, on a 2 workflows. L’un pour le choix des articles, l’autre pour l’écriture de l’article
De la même manière le prompt contient des informations sur le journaliste, la structure exacte, et enfin on rajoute l’article en texte en entier
Et … c’est tout. C’est aussi simple que cela. Au niveau des coûts un site coûte 0,5 à 3€ par jour (il faut optimiser, choisir GPT3.5 quand on ne cherche pas une forte qualité, par exemple sur le choix des catégories pas besoin de GPT4)
Dans mon talk vous pouvez retrouver une partie sur éthique et de réglementations qui commencent à se mettre en place. Mais surtout beaucoup de fantasmes autour de l'utilisation et des capacités aujourd'hui de ces "IA" qui sont surtout des outils
Langchain a aussi la pire documentation possible, donc l'URL de ce tweet
Un bon exemple de désinformation @Poulin2012 met une capture de mon tweet, hors contexte, pour suscité une indignation dans ses fans... mais pourquoi il omet le contexte ? ⬇️
Le contexte est ici essentiel, la discussion portait sur la comparaison entre la période covid et la shoah. Mais ça il omet de le dire...
C'est dommage aussi de ne pas rappeler qu'il est vacciné, qu'il avait donc son passe, qu'il faisait des tests réguliers quand il passait sur RT etc... ça casserait son narratif
Ou encore ça
Les rageux vont rager, tellement prévisible. Ca serait risible si ce n’était pas triste, surtout venant de #Citizen4Seum qui ne sait pas de quoi elle parle...
La dernière fois, rappelez-moi qui vous a montré que vous ne saviez pas de quoi vous parlez sur l’#IA et vous avez lâchement supprimé votre tweet ?
Donc quand on a même pas le niveau d’Aberkane sur ce sujet on la ramène pas trop
Donc oui je sais de quoi je parle, pour tout ceux qui se demande « mais il fait quoi, comment il est payé » bah en fait c’est ça mon boulot, depuis 10 ans. Quelques articles ces dernières semaines : numerama.com/tech/1352660-c…
Comment mal utiliser ChatGPT ? Quelles sont les erreurs à éviter ? On va répondre en prenant le thread du FranceSoirien @Mounotella (archive ici au cas où il supprime :
@Mounotella ChatGPT n’est pas un outil de vérité, il ne « sait » pas, c’est toujours un outil de complétion de texte, basé sur des probabilités que le mot suivant soit le lié au contexte et de l’entrainement (beaucoup d’entrainement). J’en parle un peu ici
@Mounotella Plus l’entrainement est pertinent, plus le contexte est pertinent, plus la probabilité d’être « juste » est forte. Et selon la « créativité » qu’on va laisser (température) il ne va pas toujours choisir le plus probable
Ici température de 0.7 VS 0.1
Il y a quelques semaines, j’ai voulu tenter une expérience.
Et si on laissait réellement à des IA les rênes d’un site ? J’ai donc créé un network de sites gérés à 100% par des IA (#chatGPT notamment), totalement autonomes… Le network Generation !
Thread explicatif ⤵️⤵️
2 sites, l’un qui est un site de news technologiques, et l’autre est un site de recettes de cuisines. Les 2 fonctionnent aujourd’hui sans aucune intervention humaine, et crées du contenus « original », en choisissant leurs sujets.
Le 2nd d’abord, cuisine-generation.fr/un site de cuisine, qui crées de nouvelles recettes originales chaque jour, ainsi que les photos (qui n’existent donc pas non plus) – déjà 380 recettes, inventées !
On me retorque que toutes les réponses sont dans les livres que l’on n’a pas envie d’acheter. Les sources de « Les apprentis sorciers » seraient inattaquables. Nous avons accès aux 27 premières pages. Regardons. calameo.com/read/001918672…
On reviendra sur l’intro et les notes plus tard.
P.14 on voit tout de suite un problème sémantique. Tout n’est pas noir ou blanc, l’usage « d’empêcher » plutôt que réduire n’est pas anodin.
D’ailleurs p.15 elle rappelle elle-même que la protection est d’encore près de 50%, même avec de nouveaux variants, ce qui n’est pas du tout anodin mais insuffisant pour stopper avec des R0>10 (voir ce thread