Pas besoin de ChatGPT pour ça

Hategekimana Vestin

Université de Genève

Présentation

Qui suis-je?

Vestin Hategekimana

.

  • Assistant-doctorant en démographie (IDESO)

    • Institut de socioéconomie et de démographie (UNIGE)
  • Migration et mobilité en Suisse en temps de crise

  • Passionné des sciences des données et la programmation (computational social sciences)

WeData

“Des stats et du code!”

Groupe étudiant ayant une passion pour le code et les statistiques: cours et contenu!

Questions d’introduction

  • Qui êtes-vous? (nom et activité)
  • Votre expérience avec l’IA?
  • Que pensez-vous de l’IA?
  • Pourquoi avoir choisi ce cours?

Pour ce cours

Note

Pour le bon déroulement du cours, sachez que:

  1. Je suis un amateur passionné

  2. C’est la première fois que j’enseigne le sujet

  3. Ce n’est pas un cours formel

  4. Vous pouvez partir à n’importe quel moment

  5. Vous pouvez m’interrompre si vous avez une question

Objectifs du cours :

  • Acquérir un vocabulaire propre au domaine des LLMs (Large Language Models)
  • Comprendre les limitations des grands modèles comme ChatGPT et leurs alternatives
  • Comprendre les avantages des modèles locaux
  • Savoir utiliser les modèles locaux (installation, system prompt, RAG, huggingface, etc.)

Plan du cours

  • Qu’est-ce que ChatGPT ? (30 minutes)

  • Alternatives viables ? (35 minutes)

  • Ollama et compagnie (20 minutes)

  • Ollama pratique (90 minutes)

Avant de commencer, téléchargeons Ollama!

Lien vers Ollama

https://ollama.com/

Qu’est-ce que ChatGPT ? (30 minutes)

À quoi ressemble ChatGPT?

À ça?

Écran d’accueil de ChatGPT

Écran d’accueil de ChatGPT

À quoi ressemble ChatGPT?

Probablement à ça…

Illustration de serveurs

Qu’est-ce que l’intelligence artificielle (IA) ?

Qu’est-ce que l’intelligence artificielle (IA) ?

  • Définition simple : L’IA est un modèle informatique ayant pour but d’imiter l’intelligence humaine.
  • Il existe différents types d’IA, allant de l’IA étroite (spécialisée dans une tâche spécifique) à l’IA générale (capable d’effectuer n’importe quelle tâche intellectuelle humaine), bien que cette dernière reste encore théorique.

Top des companies dans l’IA generative

  1. OpenAI : ChatGPT (GPT-3.5, GPT-4, GPT-4o, o1, o3), Dall-E, Sora
  2. Google : PaLM, Bard, Gemini, Gemma, Imagen
  3. Meta : Llama (2, 3, 3.1, 3.2), codeLlama
  4. Anthropic : Claude (2, 3 haiku, 3 sonnet, 3 opus, 3.5 sonnet)
  5. Microsoft : Bing AI, Copilot, GitHub Copilot

Avant de continuer, installons Qwen2.5!

Ouvrez le terminal!

Tuto Widows

Tuto Mac

Tuto linux… non c’est une blague!

Installez Qwen2.5:3b

Lien: Qwen2.5:3b

Code:

ollama run qwen2.5:3b

Brève histoire de l’IA

L’IA : un vaste champ d’application

<-- IA rectangle --> <-- Machine Learning rectnagle --> <-- Deep Learning rectnagle --> <-- IA générative rectangle --> <-- IA label --> Intelligence Artificielle <-- Machine learning label --> Machine Learning <-- Deep learning label --> Deep Learning <-- générative IA label --> IA Générative
  • L’intelligence artificielle (IA) est le domaine général de la création de machines capables d’effectuer des tâches qui requièrent généralement l’intelligence humaine.
  • L’IA comporte plusieurs sous-domaines, dont l’apprentissage machine (Machine Learning ou ML) et l’apprentissage profond (Deep Learning ou DL).

L’écosystème de l’IA : Composants clés

\<-- IA rectangle --\> \<-- IA label --\> Intelligence Artificielle
  1. Intelligence artificielle (IA) : Le vaste domaine qui englobe toutes les capacités des “machines intelligentes”.
    • Tâches : Résolution de problèmes, perception, prise de décision.

L’écosystème de l’IA : Composants clés

\<-- IA rectangle --\> \<-- Machine Learning rectnagle --\> \<-- IA label --\> Intelligence Artificielle \<-- Machine learning label --\> Machine Learning
  1. Apprentissage machine (ML) : Sous-domaine de l’IA dans lequel les machines apprennent à partir de données et améliorent leurs performances au fil du temps.
    • Exemple : Filtres anti-spam, prédiction financière ou actuarielle

L’écosystème de l’IA : Composants clés

\<-- IA rectangle --\> \<-- Machine Learning rectnagle --\> \<-- Deep Learning rectnagle --\> \<-- IA label --\> Intelligence Artificielle \<-- Machine learning label --\> Machine Learning \<-- Deep learning label --\> Deep Learning
  1. Apprentissage en profondeur (DL) : Un sous-ensemble spécialisé de l’intelligence artificielle utilisant des réseaux neuronaux avec de nombreuses couches pour traiter des données complexes.
    • Exemple : systèmes de reconnaissance d’images

L’écosystème de l’IA : Composants clés

\<-- IA rectangle --\> \<-- Machine Learning rectnagle --\> \<-- Deep Learning rectnagle --\> \<-- IA générative rectangle --\> \<-- IA label --\> Intelligence Artificielle \<-- Machine learning label --\> Machine Learning \<-- Deep learning label --\> Deep Learning \<-- générative IA label --\> IA Générative
  1. Intelligence artificielle générative (Gen AI ou GAI) : Les systèmes d’intelligence artificielle capables de créer un contenu original tel que du texte, des images, du son, de la vidéo ou du code en réponse à des invites ou à des demandes.
    • Exemple : Dall-E (image), Sora (Vidéo) ou ChatGPT (Texte)

L’écosystème de l’IA : Composants clés

\<-- IA rectangle --\> \<-- Machine Learning rectnagle --\> \<-- Deep Learning rectnagle --\> \<-- IA générative rectangle --\> \<-- IA label --\> Intelligence Artificielle \<-- Machine learning label --\> Machine Learning \<-- Deep learning label --\> Deep Learning \<-- générative IA label --\> IA Générative
  1. Large language model (LLM) : un sous-domaine de l’IA générative axé sur les tâches liées au langage naturel (texte).
    • Tâches: Résumé, production, classification, traduction et correction de texte
    • Exemple : Modèles GPT comme ChatGPT.

Pour plus de détails sur l’histoire de l’intelligence artificielle

IA assistant: méthode, pratique et éthique

ChatGPT c’est…

Un ensemble de modèles de OpenAI qui peut:

  1. Créer et traiter du texte

  2. Faire de la programmation

  3. Créer et traiter des images

  4. Créer et traiter du son

En bref, très puissants

Mais il a des limites:

  • Il est parfois incorrect

  • Il est imprécis

  • Il est consensuel

  • Il est biaisé

Mais ce ne sont pas les plus grandes limites!

Les problèmes importants de ChatGPT

  1. Ne respecte pas la vie privée

  2. Cause des nouveaux défis environnementaux

  3. Pose de sérieux problèmes éthiques

Problème de vie privée

  • Nous vivons dans une période de bigdata

  • Les grandes compagnies collectent énormément de données sur nous

  • OpenAi collecte les données de conversation pour entraîner ses modèles

Exemple de Google

Comment google track nos données?

  1. Historique de recherche

  2. Google analytics

Transparence de la recherche:

Nos historiques de recherches sont plus transparents qu’on le croit

Un petit jeu: historique de recherche (1)

opticien neuchâtel

unil inscription

coloc lausanne

job étudiant

bourse étude

Un petit jeu: historique de recherche (2)

tourisme suisse été

notaire liège

hotel nyon

davis cup

randonnées suisse

dépression symptômes

Avoir des conversations complètes c’est encore pire…

Solution pour les moteurs de recherche

Utiliser des moteurs de recherche qui garantissent la vie privée

duckduckgo

brave

Pour ChatGPT nous présenterons des alternatives plus tard dans le cours

Problème environnemental

Consommation d’énergie et émissions de carbone :

  • Utilisation massive d’énergie : Les modèles d’IA, en particulier les large language models (LLM), nécessitent une puissance de calcul importante et consomment de grandes quantités d’électricité.
  • Empreinte carbone : La formation de grands modèles d’IA peut émettre des centaines de tonnes de CO2. Par exemple, la formation du GPT-3 d’OpenAI a émis environ 500 tonnes de CO2​.
  • Croissance exponentielle : À mesure que les modèles d’IA deviennent plus avancés, leurs besoins en énergie doublent environ tous les 3 - 4 mois​.

Eau et déchets électroniques:

  • Centres de données : Les modèles d’IA nécessitent un refroidissement important, ce qui entraîne une consommation d’eau considérable.
  • D’ici 2027, les centres de données liés à l’IA pourraient consommer quatre fois l’utilisation annuelle d’eau du Danemark pour le refroidissement.
  • La dépendance de l’IA à l’égard du matériel informatique contribue aux déchets électroniques, qui peuvent nuire à l’environnement.

Projet Stargate

Problème éthique

  • Monopole

  • Bulle financière

L’IA et le monopole des entreprises

Monopole du pouvoir de l’IA :

  • Le développement de l’IA est dominé par quelques géants de la technologie tels que OpenAI, Google, Microsoft et Amazon. Et Nvidia!
    • Trop cher pour n’importe qui d’autre (infrastructure et énergie)
  • Ces entreprises contrôlent les données, les ressources et l’infrastructure nécessaires au développement de modèles d’IA avancés, ce qui leur confère un contrôle monopolistique.
  • Ce monopole rend la concurrence difficile pour les petites entreprises ou les initiatives open-source, étouffant ainsi l’innovation et la diversité dans ce domaine.
    • Ces initiatives existent tout de même grâce au modèle open source de Facebook (Llama)

La bulle financière de l’IA

Surinvestissement dans l’IA :

  • L’afflux rapide des investissements dans l’IA a fait craindre une bulle financière.
  • Les institutions financières investissent massivement dans les technologies de l’IA pour gagner en efficacité, mais il existe des risques.

Risque de bulle :

  • À l’instar de la bulle Internet du début des années 2000, de nombreux projets d’IA sont surestimés et ne s’appuient pas sur des modèles commerciaux réels et durables.
  • Les gains à court terme de l’IA pourraient conduire à un effondrement si la technologie ne donne pas les résultats escomptés, ce qui aurait un impact sur les marchés financiers et les économies.

Autres limites

  • Coût
  • Développement
  • Hallucination
  • Sécurité
  • Mise à jour

Limites des LLM

  • Coûts : Ces modèles ont besoin d’une grande puissance de calcul pour les entraîner et les utiliser. Seules des grandes entreprises peuvent se lancer dans leur création.

    • Cependant, il existe des projets open-source et locaux mais qui ne sont pas aussi puissants que des modèles comme ChatGPT ou Claud (Llama, Mixtral, Phi, etc.)
  • Développement : Jusqu’à présent, la principale stratégie employée a simplement consisté à augmenter la taille des modèles, des données et des infrastructures, sans apporter de changements majeurs au modèle lui-même.

Limites des LLM

  • Hallucination et précision : Ces modèles ont également tendance à répondre avec beaucoup d’assurance des choses fausses ou qui n’ont rien à voir avec le sujet. Bien que cela puisse sembler être un bug ou quelque chose d’inattendu, ce n’est en fait pas surprenant : ces modèles ont été entraînés à prédire le mot suivant, et non à répondre correctement.

    • Il existe également un biais de confiance, car lors de la phase d’annotation humaine, les réponses plus sûres ont tendance à être plus appréciées (biais cognitif).

Limites des LLM

  • Sécurité : Comme les modèles ne sont pas codés à la main avec des règles leur comportement ne peut être prédit, d’où la nécessité d’une validation humaine pour réduire les réponses problématiques (censure). Cependant, il est impossible de prévoir tous les cas et, très souvent, des personnes trouvent un moyen de détourner les modèles.

    • Solution: données de meilleure qualité (garbage-in, garbage-out)

Limites des LLM

  • Mise à jour : Leurs connaissances sont figées dans le temps après la formation. Il existe cependant des moyens de les mettre à jour en les connectant à Internet ou en basant leurs réponses sur des documents spécifiques (RAG).

Limites des LLM

Autres :

  • Copyright (contenu volé)

  • Manque de mémoire à long terme (basé sur leur “token window”)

  • Biais culturels

  • Risque de confidentialité (OpenAI stock et utilise les conversations)

Alternatives viables ? (35 minutes)

Introduction : Pourquoi explorer les alternatives à ChatGPT?

  • Bien que ChatGPT soit un modèle d’IA populaire, plusieurs autres alternatives offrent des caractéristiques et des améliorations uniques. De plus, les problèmes suivants doivent être mentionnés:
    • Confidentialité : Stocke les conversations et les utilise pour former le modèle.
    • Utilisation : Généraliste, ne conviens pas à toutes les utilisations
    • Droit d’auteur : a volé de nombreux contenus en ligne

L’univers des options

  • Copilot
  • Gemini
  • Claude
  • DeepSeek
  • Perplexity AI

1) Copilot (anciennement Bing AI)

https://www.bing.com/chat

  1. Information en temps réel : Contrairement à ChatGPT, Copilot est connecté à Internet, fournissant des données à jour et des événements actuels.
  2. Intégration de la recherche sur le web : Copilot peut effectuer des recherches sur le web et résumer les résultats.
  3. Génération d’images : alimenté par DALL-E, il peut générer des images à partir d’invites textuelles.
  4. Traitement des données visuelles : Les utilisateurs peuvent télécharger des images et recevoir des informations ou des analyses à leur sujet.

2) Gemini

https://gemini.google.com/app

  1. Capacités multimodales : Gemini gèrent le texte, les images, l’audio et la vidéo​.
  2. Meilleures performances : Surpasse le GPT-4 dans les tests de référence liés à la compréhension et au raisonnement linguistiques multitâches.
  3. Capacités de codage avancées : Excelle dans les tâches liées au code, fournissant des résultats plus précis.

3) Claude

https://claude.ai/login?returnTo=%2F%3F

  1. Fenêtre contextuelle plus longue : Claude peut mémoriser et traiter des conversations beaucoup plus longues (jusqu’à 100 000 mots).
  2. Forme formation éthique : conçu pour gérer les problèmes éthiques et refuser les demandes inappropriées.
  3. Persistance à la tâche : meilleure capacité à suivre des instructions complexes en plusieurs étapes.

4) DeepSeek

https://www.deepseek.com/

  1. Coût réduit : Le développement de DeepSeek a coûté environ 5,58 millions de dollars, soit 20 à 40 fois moins que ChatGPT15. Cette efficacité économique se traduit par des tarifs plus abordables pour les utilisateurs.
  2. Efficacité énergétique : DeepSeek nécessite 10 fois moins de puissance de calcul que ChatGPT, ce qui réduit considérablement son empreinte écologique
  3. Performances comparables : Malgré son coût réduit, DeepSeek rivalise avec les modèles propriétaires les plus performants en termes de capacités de traitement du langage naturel

5) Perplexity AI

https://www.perplexity.ai/

  1. Information en temps réel : Fournis des données en temps réel en effectuant des recherches sur le web.
  2. Multiples modèles : Utilise GPT-4, Claude 3 et Gemini Pro, ce qui permet aux utilisateurs de sélectionner différents modèles pour diverses tâches.
  3. Citations de sources : Fournis des citations pour toutes ses informations, améliorant ainsi la transparence.

Bonus (1)

Il y a une IA pour ça:

There is an AI for that

  • liste de nombreuses IA
  • possibilité de filtrer
  • À jour

Bonus (2)

Autres que j’utilise:

Pour la vie privée

  • Duckduckgo AI
  • Huggingface space
  • LMStudio
  • Ollama

duckduckgo AI

https://duckduckgo.com/

  1. Accessible: Gratuit et il suffit d’aller sur le lien
  2. Privé: Pas besoin de compte
  3. Puissant: Les modèles disponibles sont GPT-4o mini, Lama3.3 70B, Claude 3 Haiku, o3-mini, Mistral 8x7B

Huggingface space

https://huggingface.co/spaces

  1. Déploiement facile : Permet aux utilisateurs de créer et de partager rapidement des démos d’IA.
  2. Intégration : Accès direct à l’écosystème du modèle Hugging Face.
  3. Collaboration : Offre des outils de contrôle de version et de collaboration pour les équipes.

LMStudio :

https://lmstudio.ai/

  • Exécution locale de modèles : Permet aux utilisateurs d’exécuter des modèles d’IA localement sans dépendre de services en ligne.
  • Convivialité : Fournit une interface graphique pour la gestion des modèles.
  • Confidentialité : Toutes les données sont conservées au niveau local, ce qui garantit une sécurité et une confidentialité accrues.

Ollama :

https://ollama.com/

  • Exécution locale de modèles : Permet aux utilisateurs d’exécuter des modèles d’IA localement sans dépendre de services en ligne.
  • Confidentialité : Toutes les données sont conservées au niveau local, ce qui garantit une sécurité et une confidentialité accrues.
  • Interface de ligne de commande : Fournit un outil simple et léger pour exécuter des modèles localement​.
  • Personnalisation : Permet aux utilisateurs de créer et de modifier des modèles personnalisés pour des besoins spécifiques.

Résumé : choisir la bonne alternative

  • Copilot excelle dans l’information en temps réel et l’intégration web.
  • Gemini offre de solides capacités multimodales et une expertise en matière de codage.
  • Claude offre des considérations éthiques et une mémoire plus longue.
  • Perplexité associe des informations en temps réel à des citations de sources.
  • Hugging Face Spaces, Duckduckgo AI, LMStudio, et Ollama offrent des solutions d’IA flexibles et locales pour les utilisateurs soucieux de leur vie privée.

Modèles locaux solution parfaite?

Avantages:

  • Confidentialité
  • Impact environmental marginal

Désavantages:

  • Moins performant que les plus gros modèles (OpenAI, Anthropic, etc.)
  • Demande plus d’apprentissages

La puissance des SLM

SLM: Small Language Models = modèles locaux

La puissance des SLM

Modèles de plus en plus gros…

Les petits modèles deviennent de plus en plus intelligents

  • Les modèles modernes de la taille de GPT2 (1.5B) sont beaucoup plus intelligents
  • On fait plus avec moins (ex. DeepSeek)

Comparaison

Ollama et compagnie (20 minutes)

Comment marche un modèle local?

Comme un grand modèle…

Que sont les large language models (LLM) ?

  • Les LLM sont un type d’intelligence artificielle (IA) capable de comprendre et de générer du texte.
  • Ils permettent à des outils comme ChatGPT de créer des réponses, de compléter des phrases et même de tenir des conversations.

Comment les LLMs génèrent du texte ? :

  1. Les LLM prédisent la suite d’une phrase.
  2. Ils sont formés en utilisant de vastes quantités de données textuelles provenant de livres, de sites Web, etc.
  3. Ils fonctionnent en générant un mot à la fois, sur la base des mots précédents.

Comment fonctionnent les LLM?

Les LLM sont basés sur le modèle de transformer, qui se compose de :

  • Encoder : Apprend à partir du texte d’entrée.

  • Décodeur : Prédit le mot suivant en utilisant les données encodées.

Création du premier GPT (Generative Pre-trained Transformer)

  • Ces modèles transformer servaient de base à la traduction mais ont vu leur usage s’élargir à la génération de texte

  • Au lieu de leur donner un texte d’une langue A à traduire dans la langue B, on utilise uniquement le décodeur pour prédire le prochain mot

Comment un LLM apprend-il ?

En tant que modèle de machine learning, le modèle a besoin d’apprendre en premier lieu.

1 - Phase d’entraînement (avant la sortie du modèle) :

  • Le modèle lit et analyse de grandes quantités de texte.
  • Il apprend des données la façon dont les mots sont utilisés ensemble, tout comme les humains apprennent en lisant des livres ou en écoutant des conversations.

2 - Phase d’annotation/censure:

  • Comme les données stockées ne sont pas filtrées, il y a du contenu problématique ou qui sont tout simplement inacceptable.
  • Pour éviter que le modèle ne produise quoi que ce soit, nous avons besoin d’humains pour valider les réponses et guider le modèle.

3 - Phase de prédiction (après l’entraînement) :

  • Après l’entraînement, le modèle prédit le mot suivant dans une phrase en se basant sur les mots qui le précèdent.

Comment les LLM génèrent-ils du texte ?

Exemple : Rédaction d’une histoire

  1. Entrée : L’utilisateur commence par une phrase : “Il était une fois…”
  2. Prédiction : Le LLM prédit le mot suivant dans l’histoire en choisissant le mot le plus probable sur la base de ce qu’il a appris.
  3. Répétition : Il continue à prédire et à ajouter des mots jusqu’à ce que l’histoire soit complète.

La tokenisation : Découpage du texte en morceaux

  • Les LLM ne traitent pas des phrases entières en une seule fois. Au lieu de cela, ils décomposent le texte en plus petits morceaux appelés tokens.
  • Les tokens peuvent être: des mots entiers des parties de mots ou des signes de ponctuation

Embedding : Comprendre le sens des nombres

  • Chaque mot est converti en vecteur, qui est une liste de nombres représentant la signification du mot.
  • Les mots ayant des significations similaires (par exemple, “chat” et “chien”) auront des vecteurs proches les uns des autres dans cet espace.
  • Ces vecteurs aident le LLM à comprendre le contexte et la relation entre les mots.

Attention : Comment les LLM comprennent le contexte

  • L’attention est le mécanisme clé qui aide les LLM à se concentrer sur les mots importants d’une phrase.
  • Par exemple, dans la phrase “Le chat s’est assis sur le tapis”, l’attention aide le modèle à savoir que “chat” et “assis” sont liés.
  • Cela permet au modèle de générer un texte plus précis et plus pertinent.

Comment un LLM utilise-t-il l’attention ?

  1. Il examine tous les tokens d’une phrase.
  2. Il décide quels mots sont les plus importants pour prédire le mot suivant.
  3. Il actualise sa compréhension de chaque mot en fonction du contexte des autres mots.

Le résultat final : Choix du mot suivant

  • Après avoir traité les tokens et appliqué l’attention, le LLM produit une liste de mots suivants possibles, chacun avec une probabilité.
  • Le mot ayant la probabilité la plus élevée est choisi, et ce processus se répète pour générer plus de texte.

Pourquoi les LLM sont-ils si puissants ?

  1. Échelle : Les LLM comme le GPT-3 ont été entraînés sur de grandes quantités de texte (livre, forums, internet, etc.), ce qui leur donne une compréhension profonde du langage.
  2. Adaptabilité : Ils peuvent gérer une grande variété de tâches, en partant de la réponse à des questions jusqu’à la rédaction d’histoires ou le codage.
  3. Créativité : En prédisant un mot à la fois, les LLM peuvent générer des réponses étonnamment cohérentes et créatives.

Ollama, LMStudio, llama.cpp, etc.

  • Ollama est idéal pour ceux qui recherchent une solution simple à utiliser avec un support multiplateforme, mais il est limité par la nécessité d’un GPU dédié.
  • LM Studio offre une excellente expérience utilisateur et fonctionne hors ligne, mais il est gourmand en ressources matérielles.
  • llama.cpp est particulièrement adapté aux systèmes légers ou sans GPU grâce à son optimisation CPU, mais il peut nécessiter des compétences techniques avancées.

Pourquoi Ollama?

  • Facile d’installation

  • Peut s’intégrer par défaut à de nombreux outils (Obsidian, Copilot, etc.)

  • A un très grand écosystème

GPU et VRAM?

  • Le GPU (ou carte graphique) et la VRAM sont indispensables pour l’utilisation des modèles de langage (LLM).

  • Caractéristiques du GPU :

    • Spécialisé pour les calculs en parallèle.
    • Adapté au traitement des réseaux neuronaux profonds.
  • Rôle et importance de la VRAM :

    • Mémoire spécifique pour le stockage rapide de données graphiques.
    • Cruciale pour stocker les poids des neurones et les données intermédiaires dans les LLM.

Pour connaître la puissance de son ordinateur pour les llms, il faut vérifier la VRAM

Vérifier sa VRAM

Ollama pratique (90 minutes)

Terminal

  • On utilise de base un terminal avec Ollama
  • Il existe des interfaces utilisateurs plus simples
  • Il est important de connaitre les commandes de base

Commandes de base

Aide

ollama help

Équivalent

ollama

Liste des modèles

ollama list

Information sur un modèle

ollama show qwen2.5:3b

Télécharger un nouveau modèle

ollama pull bge-m3

Exercice

En attendant le que le téléchargement soit fini. Vous pouvez tester les alternatives que nous avons présentées plus tôt:

Suite: lancer un modèle

ollama run qwen2.5:3b

Dans une conversation

Liste des commandes

/?

Infos sur le modèle

/show info

Effacer le contexte

/clear

Quitter la conversation

/bye

Exercice

Exemple de tâche: question de culture générale, question mathématique, synonyme, formulation, etc.

Votre avis sur l’expérience d’utilisation?

GUI: PageAssist

Utilisons une interface utilisateur: Page Assist

Le lien chrome fonctionne aussi pour: Brave, Vivaldi, Edge et Opera

Les navigateurs suivants sont aussi disponibles: LibreWolf, Zen Browser et Arc

Page Assist est très simple à installer et à utiliser

Page Assist

À faire:

  • Épingler Page Assist
  • Tester des conversations
  • Tester des modèles + Gestion des modèles (paramètres)
  • Exporter les chats
  • Naviguer dans les chats

Choisir ses modèle(s)

Taille de la VRAM

Où choisir ses modèles

ollama

huggingface

  • Task: Text generation
  • Libraries: GGUF

Quelques benchmarks

GPU Poor LLM Arena

Open LLM Leader Dashboard

System prompt

Système prompt (System Prompt) : Instruction spéciale définissant le comportement global du modèle.

Le système prompt établit les règles et le cadre de l’interaction avec le modèle, transformant GPT en chatbots spécialisés adaptés à diverses situations.

Structure d’un system prompt

Structure d’un system prompt classique:

  • Définition du rôle: Spécifie le domaine d’expertise (medecin, enseignant, etc.).
  • Établissement de règles: Définir les limites pour la protection des informations sensibles.
  • Personnalisation du ton: Style de communication (formel, amical, professionnel).
  • Contextualisation: Fournit le contexte basique pour toutes les réponses.

ChatGPT-4o system prompt

You are ChatGPT, a large language model trained by OpenAI, based on the GPT-4 architecture.
Knowledge cutoff: 2023-10
Current date: 2024-07-10

Image input capabilities: Enabled
Personality: v2

# Tools

## bio

The `bio` tool allows you to persist information across conversations. Address your message `to=bio` and write whatever information you want to remember. The information will appear in the model set context below in future conversations.

## dalle

// Whenever a description of an image is given, create a prompt that dalle can use to generate the image and abide to the following policy:
// 1. The prompt must be in English. Translate to English if needed.
// 2. DO NOT ask for permission to generate the image, just do it!
// 3. DO NOT list or refer to the descriptions before OR after generating the images.
// 4. Do not create more than 1 image, even if the user requests more.
// 5. Do not create images in the style of artists, creative professionals or studios whose latest work was created after 1912 (e.g. Picasso, Kahlo).
// - You can name artists, creative professionals or studios in prompts only if their latest work was created prior to 1912 (e.g. Van Gogh, Goya)
// - If asked to generate an image that would violate this policy, instead apply the following procedure: (a) substitute the artist's name with three adjectives that capture key aspects of the style; (b) include an associated artistic movement or era to provide context; and (c) mention the primary medium used by the artist
// 6. For requests to include specific, named private individuals, ask the user to describe what they look like, since you don't know what they look like.
// 7. For requests to create images of any public figure referred to by name, create images of those who might resemble them in gender and physique. But they shouldn't look like them. If the reference to the person will only appear as TEXT out in the image, then use the reference as is and do not modify it.
// 8. Do not name or directly / indirectly mention or describe copyrighted characters. Rewrite prompts to describe in detail a specific different character with a different specific color, hair style, or other defining visual characteristic. Do not discuss copyright policies in responses.
// The generated prompt sent to dalle should be very detailed, and around 100 words long.
// Example dalle invocation:
// ```
// {
// "prompt": "<insert prompt here>"
// }
// ```
namespace dalle {

// Create images from a text-only prompt.
type text2im = (_: {
// The size of the requested image. Use 1024x1024 (square) as the default, 1792x1024 if the user requests a wide image, and 1024x1792 for full-body portraits. Always include this parameter in the request.
size?: ("1792x1024" | "1024x1024" | "1024x1792"),
// The number of images to generate. If the user does not specify a number, generate 1 image.
n?: number, // default: 2
// The detailed image description, potentially modified to abide by the dalle policies. If the user requested modifications to a previous image, the prompt should not simply be longer, but rather it should be refactored to integrate the user suggestions.
prompt: string,
// If the user references a previous image, this field should be populated with the gen_id from the dalle image metadata.
referenced_image_ids?: string[],
}) => any;

} // namespace dalle

## browser

You have the tool `browser`. Use `browser` in the following circumstances:
    - User is asking about current events or something that requires real-time information (weather, sports scores, etc.)
    - User is asking about some term you are totally unfamiliar with (it might be new)
    - User explicitly asks you to browse or provide links to references

Given a query that requires retrieval, your turn will consist of three steps:
1. Call the search function to get a list of results.
2. Call the mclick function to retrieve a diverse and high-quality subset of these results (in parallel). Remember to SELECT AT LEAST 3 sources when using `mclick`.
3. Write a response to the user based on these results. In your response, cite sources using the citation format below.

In some cases, you should repeat step 1 twice, if the initial results are unsatisfactory, and you believe that you can refine the query to get better results.

You can also open a url directly if one is provided by the user. Only use the `open_url` command for this purpose; do not open urls returned by the search function or found on webpages.

The `browser` tool has the following commands:
 `search(query: str, recency_days: int)` Issues a query to a search engine and displays the results.
 `mclick(ids: list[str])`. Retrieves the contents of the webpages with provided IDs (indices). You should ALWAYS SELECT AT LEAST 3 and at most 10 pages. Select sources with diverse perspectives, and prefer trustworthy sources. Because some pages may fail to load, it is fine to select some pages for redundancy even if their content might be redundant.
 `open_url(url: str)` Opens the given URL and displays it.

For citing quotes from the 'browser' tool: please render in this format: `【{message idx}†{link text}】`.
For long citations: please render in this format: `[link text](message idx)`.
Otherwise do not render links.

## python

When you send a message containing Python code to python, it will be executed in a
stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 60.0
seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is disabled. Do not make external web requests or API calls as they will fail.
Use ace_tools.display_dataframe_to_user(name: str, dataframe: pandas.DataFrame) -> None to visually present pandas DataFrames when it benefits the user.
 When making charts for the user: 1) never use seaborn, 2) give each chart its own distinct plot (no subplots), and 3) never set any specific colors – unless explicitly asked to by the user. 
 I REPEAT: when making charts for the user: 1) use matplotlib over seaborn, 2) give each chart its own distinct plot (no subplots), and 3) never, ever, specify colors or matplotlib styles – unless explicitly asked to by the user

Technique de prompt

  • Zero-shot: Instruction simple
  • One-shot: Un exemple
  • Few-shot: Plusieurs exemples
  • Chain-of-Thought (CoT): Pousser le modèle à réfléchir

Zero-shot Prompting

  • Description : Cette méthode consiste à donner une instruction ou une tâche au modèle sans fournir d’exemples spécifiques. Le modèle s’appuie uniquement sur ses connaissances préexistantes acquises lors de son entraînement pour répondre.

  • Avantages : Rapide et efficace pour des tâches simples ou générales. Aucune donnée supplémentaire n’est nécessaire.

  • Exemple :

    Traduisez le texte suivant en français : "Good morning, how are you?"

    Réponse attendue : “Bonjour, comment allez-vous ?”

One-shot Prompting

  • Description : Ici, un seul exemple est fourni avec l’instruction pour aider le modèle à mieux comprendre la tâche ou le format attendu.
  • Avantage : Utile lorsque le modèle a besoin d’un contexte minimal pour produire des réponses plus précises.
  • Exemple :
Exemple :
Anglais : I speak French
Français : Je parle français

Traduisez le texte suivant en français :
Anglais : Good morning, how are you?
Français :

Réponse attendue : “Bonjour, comment allez-vous ?”

Few-shot Prompting

  • Description : Cette méthode implique de fournir plusieurs exemples dans le prompt pour guider le modèle. Cela permet de mieux contextualiser la tâche et d’améliorer la précision des réponses.
  • Avantage : Particulièrement efficace pour les tâches complexes ou spécifiques où des exemples multiples aident à établir un schéma clair.
  • Exemple :
Exemple 1 :
Anglais : I speak French
Français : Je parle français

Exemple 2 :
Anglais : I love coffee
Français : J'aime le café

Traduisez le texte suivant en français :
Anglais : Good morning, how are you?
Français :

Réponse attendue : “Bonjour, comment allez-vous ?”

Chain-of-Thought (CoT) Prompting

  • Description : Cette technique demande au modèle de décomposer une tâche complexe en étapes logiques successives. Cela améliore la capacité du modèle à raisonner et à fournir des réponses claires et détaillées.
  • Avantage : Idéal pour les problèmes nécessitant plusieurs étapes de raisonnement ou une explication détaillée. Cela rend également les réponses plus interprétables.
  • Exemple (résolution de problème mathématique) :
Combien font (3 + 5) × 2 ?
  
Étapes :
  - Additionnez d'abord les nombres entre parenthèses.
  - Multipliez ensuite le résultat par 2.
  
Réponse finale :

Réponse attendue :

  • Étape 1 : \[3 + 5 = 8\]
  • Étape 2 : \[8 \times 2 = 16\]
  • Réponse finale : \[16\]

Des idées de prompt

Raisonnement: Pousse le modèle à réfléchir (générer du texte) avant de répondre. Cela s’appelle du Chain of thought (CoT).

Modèle faisant du raisonnement:

Créer ses applications

Pour éviter d’écrire des promptes (message) systématiquement, créer des systèmes prompts permet de se simplifier la tâche.

Nous allons faire un exemple de dictionnaire des synonymes:

  • But: Lorsque nous écrivons un mot, le modèle nous renvoie une liste de synonymes
  • Utilité: Évite de devoir réécrire le prompt à chaque fois

Astuces pour les prompts

  1. Les llms sont des acteurs: Donner un rôle aide à accomplir le travail
  2. Les llms sont des prédicteurs de tokens: Le contexte a une grande importance
  3. Les llms manquent de sens commun: Soyez précis dans votre demande
  4. Les llms savent recopier les structures: Donnez des exemples concrets
  5. Les llms modernes ont un grand contexte: N’hésitez pas à créer de longs prompts détaillés
  6. Les llms sont bons pour repérer les structures: Utilisez des caractères spéciaux comme {} pour améliorer la structure
  7. Les llms donneront toujours une réponse même lorsqu’ils ne savent pas: Donnez des instructions lorsque le modèle ne sait pas

Exercices

  • Créer une application de correction de texte et de syntaxe
  • Créer une application de traduction
  • Créer une application pour répondre aux emails (modèle)
  • Trouver d’autres idées d’applications

RAG

RAG avec Page Assist

Document local:

  • Paramètre: Gérer les connaissances

Internet:

  • Dans la conversation

  • Barre latérale (Ctrl+Maj+Y)

Dans ce cours nous avons vu…

  • Acquérir un vocabulaire propre au domaine des LLMs (Large Language Models)
  • Comprendre les limitations des grands modèles comme ChatGPT et leurs alternatives
  • Comprendre les avantages des modèles locaux
  • Savoir utiliser les modèles locaux (installation, system prompt, RAG, huggingface, etc.)

Merci pour votre attention!