Section outline

    • Présentation et objectif

      L’objectif est de découvrir les outils d’intelligence artificielle du traitement automatique du langage (TAL), ou Natural language processing (NLP) en anglais, leurs usages et leurs limites.

      Objectifs

      1. Découvrez le vocabulaire associé au traitement automatique du langage.

      2. Créez un chatbot pour des applications ludiques pour l’apprentissage d’une langue étrangère.

      3. Évaluez de façon qualitative les performances d’un modèle d’intelligence artificielle.

      Supports nécessaires

      1. Internet pour accéder aux ressources.

      Activité

      Le développement des technologies dans le domaine du traitement automatique du langage a fait parlé de lui en 2023. En particulier, les modèles du type ChatGPT ont envahi les colonnes de nos journaux. Explorons ensemble les principes de fonctionnement de ces modèles, leur usage et leur limite de façon ludique.



    • Le modèle de ChatGPT, quel fonctionnement ?

      Pour commencer, nous nous familiarisons avec le vocabulaire de l’intelligence artificielle et le fonctionnement des modèles de type ChatGPT.

      1. A l’aide de la vidéo suivante, donnez une définition simple avec vos mots et vos exemples des termes suivants : 

       

      • Phase d’apprentissage et de prédiction d’un modèle de type GPT

      • token

      • apprentissage supervisé et annotation

      • apprentissage auto–supervisé

      • fenêtre de contexte

      • Fine-tuning, ou ajustement, pour les modèles GPT 

      2. Puis répondez à la question suivante : selon vous, après le visionnage de la vidéo, quelles sont les intérêts et limites de ce type des modèles de langages de type GPT ?



    • Nous allons créer des chatbots personnalisés et jouer avec. Comme vu précédemment, les modèles réagissent différemment selon le contenu au sein de la fenêtre de contexte. Certaines applications sur internet permettent de modifier ou de personnaliser le contenu de ce contexte. Une plateforme comme Character.ai permet de créer et de personnaliser des chatbots.

      Suivez les étapes suivantes : 

      1. rendez vous sur character.ai et créez un compte.

      2. Créez un personnage / character à l’aide du menu à gauche “+”. Une fenêtre pour la création du personnage s’ouvre. Regardez alors la documentation “character book” pour affiner la création de votre personnage. Celui-ci devra être un assistant de votre choix et avoir une anecdote à raconter si on le lui demande.

      Remarque :
      il est possible de suggérer des scénarios de discussion avec character.ai. Si un utilisateur utilise une phrase proche de celle que vous avez proposée, le chatbot suivra votre script. La façon d’écrire un “scrip” est codifié. Regardez bien la documentation et appuyez sur l’exemple suivant. Exemple de script où char représente votre personnage, et random_user_1 un utilisateur : 

              {{char}}: Ich bin Peter Bauer.
      {{random_user_1}}: Hallo, ich heisse Maria. Und du?
      {{char}}: Hallo, Maria. Mein Name ist Peter. Wo wohnst du?
      {{random_user_1}}: Ich wohne in Belgien. Wo wohnst du?
      {{char}}: Ich wohne in Deutschland. Wie ist dein Familienname?
      {{random_user_1}}: Mein Familienname ist Dupont. Und wie ist dein Familienname?
      {{char}}: Bauer. Was sind deine Hobbys?
      {{random_user_1}}: Fussballspielen und Wandern. Und was sind deine Hobbys?
      {{char}}: Schwimmen und Lesen
      END_OF_DIALOG

      Ce type de dialogue est à renseigner dans les paramètres de définition du personnage.

      1. Une fois créé, rendez votre personnage public, puis partagez le nom de votre personnage avec un autre groupe.

      2. Discutez avec le chatbot de l’autre groupe. A l’aide de questions ou d’échanges avec le chatbot, essayez de déterminer la description du personnage.

      3. Une fois que vous avez une description du personnage, échangez avec l’autre groupe sur la description du personnage. En particulier, comparez les productions du ChatBot avec la description.

      4. Sur la base de vos échanges, réalisez une critique sur les performances et les limites de ce genre de solution.


    • Huggingface est un des leaders des solutions de machine learning dédiées aux traitements automatiques du langage. Les entrepreneurs, français, à l’origine de cette entreprise sont des fervents croyants dans l'open source. A ce titre, ils ont créé une plateforme où ils fournissent des ressources logiciels et matérielles accessibles en ligne pour réaliser des prototypes et des démonstrations. C’est aussi une bonne façon d’attirer de nouveaux clients ou encore de collecter des données sur des nouveaux usages.

      Pour découvrir les dernières technologies concernant les grands modèles de langage, ou Large Language Model (LLM), nous allons créer un compte gratuit sur huggingface et créer un assistant.

      Aujourd’hui, les modèles LLM font l’émerveillement de certains, et à contrario, sont l’objet de nombreuses critiques sur leurs pauvres performances. il n’est pas possible à notre stade de savoir au préalable si ces outils répondent vraiment à nos besoins. Pour cela, il faut les utiliser selon des scénarios d’usage et les évaluer.

      Remarque : les consignes ci-dessous s’accompagnent parfois de chiffre (1) ou (2). Ces chiffres renvoient à des descriptions sur des prises d’écran pour vous guider. Par exemple, si vous voyez un chiffre (2), regardez la prochaine image qui se situe sous la consigne et regardez l’information n°2.

      Suivez les étapes suivantes : 

      1. Rendez vous sur https://huggingface.co/ et créer vous un compte en cliquant sur “Sign Up” en haut à droite.

      2. Une fois le compte créé et connecté, rendez vous sur https://huggingface.co/chat/ .

        1. S’il vous demande de connecter votre compte huggingface à celui de huggingface chat, cliquez pour valider la connexion.

        2. Vous arriverez sur une fenêtre de chat (voir les images ci-dessous pour vous aider). Cliquez sur le logo pour définir un modèle.

      1. Afin de s’assurer que le modèle puisse prendre en charge une autre langue que l’anglais, nous allons choisir un modèle dit “performant”. A la date de février 2024, nous vous recommandons le modèle suivant : NousResearch/Nous-Hermers-2-Mixtral-8-7B-DPO

      1. Une fois le modèle sélectionné (1), vous réaliserez un “system prompt” (2). Un system prompt est un ensemble de commandes que vous fournissez au modèle. Imaginez le system prompt comme un texte qui sera toujours ajouté, de façon invisible, au-dessus de chacun de vos échanges avec le chatbot. Celui-ci tentera de suivre ces commandes à chaque interaction. Par exemple, vous pouvez spécifier le ton du chatbot, ou encore s' il doit agir d’une certaine façon, comme un enfant de 10 ans ou un expert en linguistique. Pour des exemples plus concrets, regardez les annexes à la fin de ce document.

        1. Créez le “system prompt” de votre choix, soyez clair, simple, spécifique et exhaustif. Ecrivez le dans la langue avec laquelle vous souhaitez interagir avec le chatbot.



      Remarque 1 : Vos consignes doivent rester simples et ne pas souffrir d'ambiguïté. Pour cela, appuyez-vous sur les ressources ci-dessous. Dans ces ressources, il n’est pas spécifié de “system prompt” mais comment faire un prompt en général. Dites vous que le “system prompt” est la partie du prompt, c'est -à -dire les consignes, que vous souhaitez préciser à chaque fois que vous interagissez avec le chatbot.

      1. https://docs.mistral.ai/guides/prompting-capabilities/ 

      2. https://platform.openai.com/docs/guides/prompt-engineering/strategy-write-clear-instructions 

      Remarque 2 : Vous pouvez aussi vous inspirer d'exemples déjà réalisés. Rendez vous dans les annexes “accéder aux paramètres d’un assistant préexistant” en bas de ce document pour accéder à ces exemples.

      1. Une fois l’assistant créé, assurez vous bien que vous avez activé le modèle (1). Vous pouvez réaliser des échanges et voir sa capacité à être fidèle à vos commandes, ou non.

        Voici des exemples d’intéraction : 

      • demandez lui les nouvelles sur un site de journal fiable. Attention à activer “search web” à ce moment.

      • Demandez- lui de vous corriger ou de reformuler sur un autre ton ou style votre phrase.

      • demandez lui des conseils sur comment poser des questions pour donner des indications de direction à une personne dans le besoin.

      • Voir les annexes ci-dessous pour des exemples de dialogue que vous pouvez lui suggérer.

      • Si vous avez créé des scénarios ou des exemples de dialogue, évaluer comment le modèle arrive à suivre ces scénarios ou à exploiter les informations que vous lui avez transmises.

      1. Vous avez créé et testé un chatbot. Maintenant, vous allez à partir de votre ébauche créer un assistant que vous allez partager avec un autre groupe. Suivez les instructions suivantes :

        1. Copiez le“system prompt” que vous avez créé et qui vous convient, car vous en aurez besoin pour créer votre assistant.

        2. Cliquez sur “Assistants” dans le menu à gauche du chat. (1)



      1. Une fois l'assistant de création ouverte, remplissez les champs suivant :
        - nommez de votre assistant (1)
        - collez vos instructions copiées préalablement dans le system prompt (2)
        - choisissez le modèle désiré (3)

      2. Copiez le lien vers votre chat (4) et partagez-le avec un autre groupe.



    • Exemple de system prompt avec dialogue

      Voici un exemple de format de système prompt pour constituer un dialogue.
      System prompt :

      Tu es un parisien qui connaît Paris comme sa poche. Si quelqu’un te demande des informations pour trouver son chemin, tu es aimable. Surtout, tu utilises un vocabulaire simple pour répondre aux questions. Aussi, si la question est complexe ou contient des ambiguïtés, tu n’hésites pas à proposer des reformulations de la question.


      ### exemple de dialogue pour reformuler des questions
      user: Bonjour ! Comment peut-on se rendre à la gare ?
      assistant: Bonjour ! Excusez-moi, mais j’ai besoin de plus d'informations pour vous aider. Vous voulez savoir comment se rendre à une gare qui se situe sur Paris ?
      user: Oui, ma demande est sur la gare de Paris.
      assistant: Il y a plusieurs gares à Paris. Sur quelle gare exactement voulez-vous vous rendre ? Je ne suis pas très fort en géographie, dites moi en plus où se situe votre destination finale pour trouver la gare.


      Accéder aux paramètres d’un assistant pré-existant

      Vous pouvez aussi vous inspirer de Prompt déjà créé sur d’autres assistants. Cliquez sur assistants (1) et sélectionnez un assistant de votre choix (2). Rendez vous sur le chatbot puis regardez ses paramètres (3). Vous trouverez son system prompt (4).