Table des matières


Créé le: 2024-01-14 ; Révisé le: 2024-01-21

Intro

Normalement, lorsque nous considérons l’intelligence artificielle, nous pensons surtout à une intelligence qui permettrait de réfléchir par elle-même. Présentement, avec les ordinateurs que nous avons et l’état de la recherche, nous sommes loin d’être rendus à cette étape. Tout ce qui est publicisé comme de l’intelligence artificielle présentement, c’est plutôt de l’apprentissage machine.

L’apprentissage machine, c’est de donner des informations en entrée ainsi que des informations désirées comme sortie et à force d’entraîner le modèle avec des informations prénettoyées, cela permet que lorsqu’une personne donne des entrées spécifiques, l’algorithme va essayer de deviner quelle est la sortie la plus probable. C’est purement des statistiques mathématiques et il n’y a pas de raisonnement derrière.

Prenons un exemple simple et concret : les pourriels. Nous pourrions avoir un modèle dans lequel nous rentrons tous les mots qui se retrouvent dans un courriel et le modèle va nous dire le pourcentage de chance que ce soit du pourriel. Pour ce faire, il faut une grosse base de données avec beaucoup de courriels à l’intérieur : beaucoup qui sont légitimes et beaucoup qui sont des pourriels. Chacun de ces courriels est marqué par un humain si c’est du pourriel ou non. Ainsi durant l’apprentissage, il n’y a pas besoin de savoir exactement quels mots dans un courriel font en sorte que c’est considéré un bon ou mauvais courriel, mais à force d’en voir, le modèle va se rendre compte que ce sont des mots ou des groupes de mots qui font qu’il est bon ou non. Par exemple à l’interne, il pourrait automatiquement détecter que quand il y a beaucoup d’erreurs orthographiques et grammaticales que ce sont des courriers plus susceptibles d’être du pourriel.

L’exemple précédent est un modèle qui est très spécifique à faire une seule tâche qui est de faire de la catégorisation. Il y a présentement plusieurs types de modèle pour des tâches très spécifiques, mais il y a aussi des modèles qu’on appelle des modèles linguistiques larges (LLM en anglais) dont le plus connu est GPT qui peut lire et écrire du texte d’une manière qui semble écrite par un humain. Ce qui est important ici, c’est que ce qui va sortir comme réponse ne veut pas dire que c’est une bonne réponse. Cela dépend sur quelles données le modèle a été entraîné. Alors sur un sujet quelconque, s’il a été entraîné avec de bonnes informations, les prochains mots statistiquement probables vont être des phrases qui ont du sens et qui expliquent vraiment ce qui est le sujet initial. Par contre, s’il a été entraîné avec de fausses informations et des informations erronées dans ce cas-là cela va produire des informations qui ne sont pas utiles et qu’il ne faut pas prendre comme étant vraies, même si le texte semble très convaincant. L’important est de toujours vérifier les sources.

But

Le but de cet article est de fournir un aperçu rapide des concepts de l’apprentissage automatique sans trop approfondir les implémentations réelles. Il contient également des indications sur la façon de commencer à utiliser certains modèles existants en ligne ou localement.

Mon but est d’utiliser ceci comme référence lorsque je vais créer des vidéos sur le sujet.

Processus

Lorsque nous voulons utiliser l’apprentissage automatique, nous avons besoin de plusieurs éléments:

  • Choisir un algorithme (qui est une architecture du modèle). Voici quelques exemples:
    • Réseau de neurones convolutifs (CNN) (pour les tâches de classification d’images)
    • Réseau neuronal récurrent (RNN) pour les séquence de données comme le texte ou les séries chronologiques
    • Transformateur (pour les modèles de type GPT)
    • Diffusion stable (pour générer des images)
    • Ceux personnalisés créés avec des frameworks comme TensorFlow
  • Récupérer les données d’entraînement (un ensemble de données)
  • Entraîner un modèle en utilisant l’algorithme et les données d’entraînement. Cela nous donne un modèle qui contient tous les poids ou paramètres à utiliser.
  • Utilisez le modèle et l’algorithme pour faire des prédictions dans votre application.

Modèle

Modèle Génératif

Un modèle génératif est un modèle entraîné pour générer du contenu tel que du texte, des images, des sons, etc.

Modèle de langage

Un modèle de langage est un modèle génératif formé pour générer du texte. Il est formé sur un vaste corpus de texte et est capable de générer un texte similaire au texte sur lequel il a été formé. Certains modèles ont plus de fonctionnalités comme pouvoir raisonner un peu ou générer du code.

Dans cette catégorie, nous voyons l’acronyme GPT qui signifie Generative Pre-trained Transformer.

Exemples de modèles de langage:

Modèle Compagnie Peut être utilisé commercialement Site web Formé sur l’ensemble de données Comment l’utiliser
GPT-3 and GPT-4 OpenAI Oui OpenAI / ChatGPT Un service en ligne ChatGPT ou Bing
Mistral OpenOrca Mistral AI Oui Huggingface OpenOrca Logiciel gratuit GPT4All
Mistral Instruct Mistral AI Oui Huggingface Utilisation d’une variété d’ensembles de données de conversation accessibles au public Logiciel gratuit GPT4All
Mixtral 8x7B Mistral AI Oui Huggingface Téléchargez le GGUF dont vous avez besoin sur Huggingface et utilisez le logiciel gratuit LLaMA.CPP
Orca 2 Microsoft Research Non Microsoft Research Blog Logiciel gratuit GPT4All
LLaMA 2 Meta AI Oui LLaMA Logiciel gratuit GPT4All
GPT4All Falcon Nomic AI Oui Huggingface Logiciel gratuit GPT4All
Hermes Nous Research Non Huggingface Sorties GPT-4 synthétiques Logiciel gratuit GPT4All
GPT4All

Il s’agit d’un logiciel facile à utiliser avec une interface graphique. Il peut télécharger des modèles courants pour vous et commencer à les utiliser immédiatement.

  1. Télécharger le programme d’installation sur https://gpt4all.io (Windows, OSX, Ubuntu)
  2. Installer
  3. Choisir les modèles à télécharger
  4. Commencer à l’utiliser

J’ai fait une vidéo sur ce logiciel

LLaMA.CPP

Ce logiciel est un peu plus compliqué à utiliser, car il utilise uniquement la ligne de commande.

  1. Télécharger le logiciel sur https://github.com/ggerganov/llama.cpp/releases (Windows)
    • Choisir en fonction de la technologie de votre CPU
  2. Ouvrir une ligne de commande comme PowerShell
  3. Exécuter une commande d’invite comme .\main.exe -m mixtral-8x7b-v0.1.Q4_K_M.gguf -p "Générer un PDF en php en utilisant la bibliothèque TCPDF"
Format de fichier (pour partager des modèles)

Les plus courants sont:

  • GGML (langage modèle généré par GPT)
  • GGUF (format unifié du modèle généré par GPT)

Modèle d’image

Un modèle d’image est un modèle génératif formé pour générer des images.

Exemples de modèles de langage:

Modèle Compagnie Peut être utilisé commercialement Site web Comment l’utiliser
DALL-E 3 OpenAI Yes OpenAI Un service en ligne Bing dans le style créatif
Stable Diffusion Stability-AI Yes OpenAI Entrepôt GitHub a les instructions à utiliser avec Python

Paramètres

Vous avez pu constater que certains modèles ont un numéro dans leur nom comme 7B ou 13B. Ce nombre est le nombre de paramètres qui sont des variables internes que le modèle apprend grâce à l’entraînement. Lorsqu’il est indiqué qu’un modèle a 7 milliards de paramètres, cela signifie que le modèle a 7 milliards de variables internes de ce type et que ces paramètres capturent des modèles dans les données sur lesquelles le modèle a été formé. Le nombre de paramètres est souvent révélateur de la complexité et de la capacité d’apprentissage du modèle: un modèle avec plus de paramètres peut souvent capturer des modèles plus complexes, mais nécessite également plus de données pour s’entraîner efficacement et nécessite plus de calculs.

Cependant, il est important de noter qu’un plus grand nombre de paramètres ne signifie pas toujours de meilleures performances. L’efficacité d’un modèle dépend également de facteurs tels que la qualité des données de formation, l’architecture du modèle et les spécificités de la tâche à accomplir.

Quantification

Lorsqu’un modèle est entraîné, il est entraîné avec des nombres à virgule flottante (comme un flottant 32 bits). Mais lorsqu’il est utilisé, il l’est avec des entiers (comme un entier de 8 bits). Le modèle doit donc être converti de virgule flottante en nombre entier. C’est ce qu’on appelle la quantification. Si nous jetons un œil à https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/blob/main/README.md#provided-files, nous pouvons voir différentes valeurs comme “Q2”, “Q3”.", “Q4, “Q5”, “Q6” et “Q8”. Plus il y a de bits, plus le modèle est précis, mais il utilise plus d’espace disque et plus de RAM. C’est donc un compromis entre précision et vitesse.