Les trois méthodes essentielles pour évaluer un nouveau modèle de langage
The three essential methods for evaluating a new language model.
Comment vérifier si le dernier et le plus populaire Modèle de Langage Géant (LLM) correspond à vos besoins

De quoi s’agit-il ?
De nouveaux LLM sont publiés chaque semaine, et si vous êtes comme moi, vous vous demandez peut-être : Est-ce que celui-ci correspond enfin à tous les cas d’utilisation pour lesquels je veux utiliser un LLM ? Dans ce tutoriel, je partagerai les techniques que j’utilise pour évaluer les nouveaux LLM. Je présenterai trois techniques que j’utilise régulièrement – aucune d’entre elles n’est nouvelle (en fait, je ferai référence à des articles de blog que j’ai déjà écrits), mais en les regroupant toutes, je gagne un temps considérable chaque fois qu’un nouveau LLM est publié. Je présenterai des exemples de tests sur le nouveau modèle OpenChat.
Pourquoi est-ce important ?
En ce qui concerne les nouveaux LLM, il est important de comprendre leurs capacités et leurs limites. Malheureusement, il peut être un peu fastidieux de comprendre comment déployer le modèle et de le tester systématiquement. Ce processus est souvent manuel et peut prendre beaucoup de temps. Cependant, avec une approche standardisée, nous pouvons itérer beaucoup plus rapidement et déterminer rapidement si un modèle vaut la peine d’investir plus de temps, ou s’il faut l’abandonner. Alors, commençons.
Premiers Pas
Il existe de nombreuses façons d’utiliser un LLM, mais lorsque nous réduisons les utilisations les plus courantes, elles sont souvent liées à des tâches ouvertes (par exemple, générer du texte pour une publicité), des applications de chatbot et la génération améliorée par la récupération (RAG). En conséquence, j’utilise des méthodes pertinentes pour tester ces capacités dans un LLM.
0. Déploiement du modèle
Avant de commencer l’évaluation, nous devons d’abord déployer le modèle. J’ai du code prêt à l’emploi pour cela, où nous pouvons simplement remplacer l’ID du modèle et l’instance sur laquelle le déployer (dans cet exemple, j’utilise Amazon SageMaker pour l’hébergement du modèle) et nous sommes prêts à partir :
- IA vs. Analyse prédictive Une analyse complète
- Que se passe-t-il si vous exécutez un modèle de transformer avec un réseau neuronal optique ?
- Cet outil d’IA explique comment l’IA voit les images et pourquoi elle pourrait confondre un astronaute avec une pelle.
import jsonimport sagemakerimport boto3from sagemaker.huggingface import HuggingFaceModel, get_huggingface_llm_image_uritry: role = sagemaker.get_execution_role()except ValueError: iam = boto3.client('iam') role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']model_id = "openchat/openchat_8192"instance_type = "ml.g5.12xlarge" # 4 x 24GB VRAMnumber_of_gpu = 4health_check_timeout = 600 # how much time do we allow for model download# Hub Model configuration. https://huggingface.co/modelshub = { 'HF_MODEL_ID': model_id, 'SM_NUM_GPUS': json.dumps(number_of_gpu), 'MAX_INPUT_LENGTH': json.dumps(7000), # Max length of input text 'MAX_TOTAL_TOKENS': json.dumps(8192), # Max length of the generation (including input text)}# create Hugging Face Model Classhuggingface_model = HuggingFaceModel( image_uri=get_huggingface_llm_image_uri("huggingface",version="0.8.2"), env=hub, role=role, )model_name = hf_model_id.split("/")[-1].replace(".", "-")endpoint_name = model_name.replace("_", "-")# deploy model to SageMaker Inferencepredictor = huggingface_model.deploy( initial_instance_count=1, instance_type=instance_type, container_startup_health_check_timeout=health_check_timeout, endpoint_name=endpoint_name,) # send requestpredictor.predict({ "inputs": "Salut, je m'appelle Heiko.",})
Il est bon de noter que nous pouvons utiliser le nouveau Conteneur d’Inférence Hugging Face LLM pour SageMaker, car le nouveau modèle OpenChat est basé sur l’architecture LLAMA, qui est prise en charge dans ce conteneur.
1. Terrain de jeu
Utiliser le notebook pour tester quelques prompts peut être fastidieux, et cela peut aussi décourager les utilisateurs non techniques d’expérimenter avec le modèle. Une façon beaucoup plus efficace de vous familiariser avec le modèle, et d’encourager les autres à faire de même, consiste à construire un terrain de jeu. J’ai déjà expliqué comment créer facilement un tel terrain de jeu dans cet article de blog . Avec le code de cet article de blog, nous pouvons mettre en place rapidement un terrain de jeu.
Une fois que l’aire de jeu est établie, nous pouvons introduire quelques stimuli pour évaluer les réponses du modèle. Je préfère utiliser des stimuli ouverts, où je pose une question qui nécessite un certain degré de bon sens pour y répondre :
Comment puis-je améliorer mes compétences en gestion du temps ?

Et si le canal de Suez n’avait jamais été construit ?

Les deux réponses semblent prometteuses, suggérant qu’il pourrait être intéressant d’investir davantage de temps et de ressources dans les tests du modèle OpenChat.
2. Chatbot
La deuxième chose que nous voulons explorer est la capacité du modèle à être utilisé comme un chatbot. Contrairement à l’aire de jeu, où le modèle est toujours sans état, nous voulons comprendre sa capacité à “se souvenir” du contexte dans une conversation. Dans cet article de blog, j’ai décrit comment configurer un chatbot en utilisant le modèle Falcon. C’est une opération simple, et en changeant le point de terminaison SageMaker, nous pouvons le diriger vers le nouveau modèle OpenChat.
Voyons comment ça se passe :

Les performances en tant que chatbot sont assez impressionnantes. Il y a eu une instance, cependant, où OpenChat a tenté de mettre fin brusquement à la conversation, coupant en plein milieu d’une phrase. Cet incident n’est pas rare, en fait. Nous n’observons généralement pas cela avec d’autres chatbots car ils utilisent des mots d’arrêt spécifiques pour obliger l’IA à cesser de générer du texte. L’apparition de ce problème dans mon application est probablement due à la mise en œuvre de mots d’arrêt dans mon application.
En dehors de cela, OpenChat a la capacité de maintenir le contexte tout au long d’une conversation, ainsi que d’extraire des informations cruciales à partir d’un document. Impressionnant. 😊
3. Récupération augmentée par génération (RAG)
La dernière tâche que nous voulons tester consiste à utiliser LangChain pour certaines tâches de RAG. J’ai constaté que les tâches de RAG peuvent être assez difficiles pour les modèles open source, nécessitant souvent que j’écrive mes propres stimuli et analyseurs de réponses personnalisés pour obtenir les fonctionnalités souhaitées. Cependant, ce que j’aimerais voir, c’est un modèle qui fonctionne de manière optimale “prêt à l’emploi” pour les tâches de RAG standard. Cet article de blog fournit quelques exemples de telles tâches. Voyons à quel point il se comporte bien. La question que nous poserons est :
Qui est le Premier ministre du Royaume-Uni ? Où est-il ou elle né(e) ? À quelle distance se trouve son lieu de naissance de Londres ?

C’est sans aucun doute la meilleure performance que j’ai vue d’un modèle open source en utilisant le stimulus standard de LangChain. Cela n’est probablement pas surprenant, étant donné qu’OpenChat a été affiné pour les conversations de ChatGPT, et que LangChain est adapté aux modèles OpenAI, en particulier ChatGPT. Néanmoins, le modèle a été capable de retrouver avec précision les trois faits en utilisant les outils à sa disposition. Le seul inconvénient était que, finalement, le modèle n’a pas reconnu qu’il possédait toutes les informations nécessaires et qu’il pouvait répondre à la question de l’utilisateur. Idéalement, il aurait dû déclarer : “J’ai maintenant la réponse finale” et fournir à l’utilisateur les faits qu’il avait recueillis.

Conclusion
Dans cet article de blog, je vous ai présenté trois techniques d’évaluation standard que j’utilise tout le temps pour évaluer les LLM. Nous avons observé que le nouveau modèle OpenChat se comporte exceptionnellement bien dans toutes ces tâches. Étonnamment, il semble très prometteur en tant que LLM sous-jacent pour une application de RAG, nécessitant probablement simplement des stimuli personnalisés pour déterminer quand il a atteint la réponse finale.
Il est à noter que ceci n’est pas une évaluation exhaustive, ni n’a pour objectif de l’être. Au lieu de cela, cela donne une indication de savoir si un modèle particulier vaut la peine d’investir plus de temps et de mener des tests plus approfondis. Il semble qu’OpenChat vaut définitivement la peine d’y consacrer du temps 🤗
N’hésitez pas à utiliser tous les outils, à les étendre et à les personnaliser, et commencez à évaluer les LLM qui suscitent votre intérêt en quelques minutes.
Heiko Hotz
👋 Suivez-moi sur IPGirl et LinkedIn pour en savoir plus sur l’IA générative, l’apprentissage automatique et le traitement du langage naturel.
👥 Si vous êtes basé à Londres, rejoignez l’un de nos Meetups NLP London.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Qu’est-ce qu’un circuit intégré programmable sur le terrain (FPGA) FPGA vs GPU pour l’intelligence artificielle (IA)
- Google AI présente les plugins de diffusion MediaPipe qui permettent la génération de texte vers image contrôlable sur l’appareil.
- Salesforce présente XGen-7B un nouveau modèle LLM de 7B entraîné sur des séquences allant jusqu’à 8K pour 1,5T jetons.
- Transformation de l’interaction de l’IA LLaVAR surclasse dans la compréhension visuelle et textuelle, marquant une nouvelle ère dans les modèles d’instruction multimodale.
- Les LLM peuvent-ils générer des preuves mathématiques qui peuvent être rigoureusement vérifiées ? Découvrez LeanDojo un terrain de jeu d’IA open-source avec des outils, des références et des modèles pour les grands modèles de langage afin de prouver des théorèmes formels dans l’assistant de preuve Lean.
- Baidu Ernie 3.5 émerge en tant que champion de l’IA de langue chinoise mais est-il vraiment meilleur que ChatGPT ?
- Approches d’apprentissage en contexte dans les grands modèles linguistiques