Skip to the content.

Session A: se lancer avec un LLM

Retour à la page principale

Première série d’exercice pour prendre en main les LLM, découvrir de nouveaux usages et prendre du recul par rapport aux réponses.

A.1. Préliminaire

comprendre l’unité de base des LLM: le token

Lien: Tokenizer Playground

Mettre en évidence la gestion des langues en tokenisant: ➡️ Avec chatGPT (multi-lingue) ou BERT (anglophone)

A.2. Premiers tests

2.a. Etudier les différences entre modèles

Quelques recherches basiques (n'hésitez pas vous écarter des propositions et poser des questions techniques dans votre domaine d'expertise). ➡️ Vous pouvez comparer le fait de poser les questions en Français ou en anglais
➡️ Tester avec le comparateur du gouvernement... Pour comparer les résultats et les consommations (mais il ne tient pas bien la charge... Vous pouvez utiliser les outils Ragarenn/Huggingface et changer de modèles)
➡️ Plus on cherche des informations précises/spécifiques, plus on a besoin d'un *gros* modèle (# param mémoire paramétrique)

2.b. Dialogue & réinitialisation du dialogue

Il est important de comprendre comment marche le dialogue d’un LLM:

Comparer les deux protocoles suivants: ➡️ Ne pas oublier de réinitialiser les conversations lorsque vous changez de thème sous peine d'introduire une grande confusion dans le LLM.

2.c. Traduction

Les LLM généralistes (que nous utilisons aujourd’hui) sont très doués pour la traduction… Mais moins doué et adaptable que des outils spécifiques comme deepl: lien

Travaillons sur des exemples d'intérêt croissant: il notamment est très intéressant de traduire un document technique en conservant le format (utiliser un LLM acceptant les fichiers comme ragarenn ou chatgpt pour cette tâche). ➡️ Jouer dans votre domaine, avec un vocabulaire technique susceptible de prendre en défaut le LLM

2.d Modèles connectés vs déconnectés

Faire la part des choses entre la mémoire paramétrique et les capacités d’analyse des LLM: toujours réfléchir à l’origine des informations qui vous sont fournies

Quelles sont les nouvelles du jour?
Peux-tu me faire une courte biographie de Vincent Guigue, professeur d'informatique?

A.3. Mettre en difficulté un modèle

Ces modèles sont utiles (on va essayer de vous convaincre si ce n’est pas encore le cas)… Mais faillibles.

3.a. Etudions les erreurs

➡️ N'hésitez pas à mettre ce dernier calcul dans un tokenizer pour comprendre le mode de fonctionnement de ce calcul
➡️ Tenter avec un modèle classique et un modèle de raisonnement (type DeepSeek R1)
➡️ Demander le nombre de syllabes d’Elephant (au(x) modèle(s) faisant des erreurs)

3.b.Les ambiguités…

➡️ ambiguités sur les mots et/ou sur les intentions de l'utilisateur: le chatbot ne peut pas deviner de quoi vous parlez ou le type de réponse que vous attendez (basique, scientifique, détaillée, ...).

3.c. La stabilité

Certifier des systèmes d’IA est une étape clé dans les systèmes critiques (Véhicule autonome, …). Une des contraintes pour la certification est d’avoir un système stable: une petite variation en entrée doit correspondre à une petite variation en sortie sinon, il est impossible de tirer des conclusions des expériences (forcément partielles qui sont menées)

➡️ L'ajout du point d'intérrogation change-t-il la réponse? reste-t-elle correcte?

3.d. Les biais

Tout apprentissage statistique est biaisé… Cependant, certains biais sont problématiques (genre, social, origine ethnique, …).

En profitant de l'anglais (non genré), demandons la traduction en français suivante: ➡️ Note: en général, ça marche aussi avec les humains :)
Ces questions sont multiples et difficiles, on peut se référer à différentes sources, par exemple: lien

A.4. Alignement, censure ou ligne éditoriale?

L’IA n’est pas neutre, de nombreuses réponses sont scriptées et suivent donc une ligne éditoriale

➡️ Tenter avec différents modèles pour mettre en évidence des différences; dans tous les cas, le système a tendance à ne pas répondre directement à la question: il faut s'intérroger sur l'origine de la réponse.

A.5. Prompting

Apprendre à parler au modèle: donner un maximum de détails pour maximiser les chances d’obtenir une réponse satisfaisante:

5.a Consigne détaillées : positionnement

➡️ Le point de vue et le contexte sont critiques pour obtenir une réponse adaptée

Note: le prompting est assez largement sur-coté, de moins en moins critique et les utilisateurs en font naturellement en quelques heures de pratiques, à la manière de Monsieur Jourdain.

5.b Consigne détaillées : intention de l’utilisateur

Soit un article sur le cancer du sein (trouvé au hasard et remplaçable par la référence de votre choix): [https://pmc.ncbi.nlm.nih.gov/articles/PMC11444406/pdf/pone.0309421.pdf]

Comparer les deux analyses suivantes ➡️ Il est possible de télécharger le fichier et de le donner explicitement au LLM s'il accepte les fichiers extérieurs ou de lui donner l'URL directement (si le LLM est connecté à internet)
➡️ L'intention de l'utilisateur est importante pour orienter la réponse et très dure/impossible à deviner pour le LLM

5.c Génération d’image

Si le prompting s’est largement simplifié avec l’évolution des LLM grand public (ils intuitent beaucoup mieux les intentions utilisateurs)… Il reste un domaine critique: celui de la génération des images.

La génération d’image est désactivée (ou très lente) sur différents LLM en version gratuite… Je vous conseille:

Trouver un prompt permettant de générer l'image suivante (SANS donner l'image au LLM, ce serait de la triche!)

fig-gen

Note: il y a un coté stochastique dans la génération qui empêche la reproduction exacte

Note, c’est assez différent de générer une image et de transformer une image

En partant d'un portrait quelconque (e.g. lien ), on peut facilement demander d'avoir

5.d Utiliser un LLM pour apprendre à utiliser un LLM

Le LLM est un formidable outil de formation:

Sur un exemple

A.6. Imposer le format de sortie

6.a. Il est possible de jouer avec le format de sortie:

➡️ vous pouvez demander un simple liste si vous n'êtes pas familié des formats informatiques JSON, XML, ...

6.b. Vers des chaînes de traitements

Soit la phrase:
La Commission européenne a déclaré jeudi qu'elle n'était pas d'accord avec les conseils donnés par l'Allemagne aux consommateurs d'éviter l'agneau britannique tant que les scientifiques n'auront pas déterminé si la maladie de la vache folle peut être transmise aux moutons. ➡️ Les réponses sont-elles de qualités équivalentes avec et sans contraintes de formatage?

On peut aussi comparer le résultat avec l’anglais:

Soit la phrase:
The European Commission said on Thursday it disagreed with German advice to consumers to shun British lamb until scientists determine whether mad cow disease can be transmitted to sheep. ➡️ Les réponses sont-elles de qualités équivalentes dans les deux langues?

Après la séance, de manière optionnelle. Des idées de prompts pour bien extraire des entités (GPT NER): lien

6.c. Chaine de traitements de documents pdf

Et si on traitait un fichier pdf (avec chatGPT, en faisant un glisser-déposer du fichier dans le prompt)? Vous pouvez utiliser le sujet ci-dessous ou n’importe quel sujet ou fichier court (2-3 pages max) que vous avez écrit récemment, en modifiant éventuellement les questions.

Soit le document: lien

Construire un JSON à partir du document pdf suivant listant:
- le titre de la thèse
- le nom du candidat
- une liste de mots clés
- un résumé en quelques mots du sujet

Approfondir les prompts (en dehors de cette session de formation)

Pour aller plus loin avec le prompt: lien