1. Livres & vidéos
  2. Intelligence Artificielle
  3. Utiliser des LLM locaux
Extrait - Intelligence Artificielle Premiers pas vers le Deep Learning avec JavaScript
Extraits du livre
Intelligence Artificielle Premiers pas vers le Deep Learning avec JavaScript Revenir à la page d'achat du livre

Utiliser des LLM locaux

Introduction

1. Définitions

Les LLM (Large Language Model) sont des modèles de langage, ils sont capables d’interpréter une requête en langage naturel (un prompt) et déterminent statistiquement une réponse. Ils s’appuient sur les réseaux de neurones que nous avons abordés mais avec souvent des centaines de milliards de paramètres. On peut les utiliser sur le cloud ou bien en local.

Les SLM (Small Language Model) sont des versions plus petites des LLM (quelques centaines de millions ou milliards de paramètres) que l’on va davantage utiliser dans un contexte local. Le fonctionnement d’un SLM est identique à un LLM. Par la suite, nous utiliserons le terme LLM plus couramment employé que SLM.

Les unités d’information qui servent à la fois aux entrées des LLM et à leur sortie sont des tokens. On peut les représenter comme des morceaux de texte. Pour des LLM massifs comme ChatGPT, on estime à plus de 10 000 milliards (cette information n’est pas publiée par OpenAI) le nombre de tokens pour son entraînement. On a donc une première étape de « digestion » de tous les textes possibles dans laquelle, le modèle du LLM doit être capable de faire de la prédiction du prochain token probable pour chaque ensemble de tokens en entrée.

Comme ces LLM sont en relation avec différents publics, on s’assure que les réponses créent le moins de problèmes possible avec une technique d’apprentissage par renforcement souvent à la fin, c’est-à-dire qu’on fait une évaluation humaine positive de réponses semblant satisfaisantes et on écarte par un score négatif toutes les autres réponses. Cela évite par exemple les tournures agressives, trop familières…

Mistral 3 utilise 675 milliards de paramètres, ChatGPT quant à lui peut être estimé (chiffres non publiés ici) entre 100 et 1000 milliards de paramètres selon l’usage effectué (il procède à un switch de modèle selon différents critères : coût, nature de requête...). L’entraînement de ces modèles nécessite des coûts colossaux qui peuvent...

LM Studio

1. Installation

LM Studio (https://lmstudio.ai/) est un outil développé et mis à disposition par Element Labs. Il a l’avantage d’être simple à installer et multiplateforme (Windows, Linux, macOS), de pouvoir fonctionner en arrière-plan et de donner un accès facilité à un grand nombre de LLM/SLM. Il dispose d’une interface graphique conviviale. Il est aussi gratuit pour un usage personnel, cependant, il n’est pas open source au moment de la rédaction de cet ouvrage. Il repose lui-même sur différentes bibliothèques open source dont llama.cpp (https://github.com/ggml-org/llama.cpp) pour l’inférence de modèles.

Il dispose de plus d’une API d’accès fonctionnant en JavaScript comme nous allons le découvrir.

Une fois l’installation effectuée, une interface avec différentes icônes est visible sur le côté gauche (voir figure ci-dessous). Si vous ne les voyez pas, vérifiez si vous avez bien choisi le mode Developer tout en bas de l’interface.

images/06EI02.png

Figure 1 - Icônes de LM Studio

  • La première icône (en jaune) désigne l’espace d’utilisation dans lequel vous pouvez tester le modèle courant avec différents prompts et visualiser la réponse. Vous avez également la possibilité d’associer un document à votre prompt.

  • La deuxième icône (en vert) est réservée au développement. À l’intérieur, vous disposez de logs concernant l’activité de LM Studio mais également de tous les points d’accès par programmation à l’outil sous la forme d’URL.

  • La troisième icône (en rouge) désigne tous les modèles que vous avez téléchargés sur votre machine. Comme ces modèles peuvent être coûteux en espace disque, vous avez la possibilité de choisir un autre répertoire d’installation.

  • La dernière icône (en violet) représente l’espace de recherche d’un modèle. Cette recherche est effectuée via la plateforme Hugging Face (https://huggingface.co/). Vous avez associé au nom du modèle sa taille en nombre de paramètres, par exemple 8B signifie 8 milliards...

Ollama

1. Installation

Ollama est un projet open source (https://ollama.com/), il vous sert également à exécuter des LLM/SLM sur votre machine. Il est disponible pour Windows, Linux et macOS.

L’installation est très simple avec Windows/macOS, sous Linux vous aurez l’instruction en ligne de commande suivante :

curl -fsSL https://ollama.com/install.sh | sh 

Ollama gère moins de types de format que LM Studio et a besoin de modèles au format GGUF (le nouveau format remplaçant le format GGML). L’installation ne pose pas de difficulté. L’interface de base est aussi plus rudimentaire (voir figure 11).

Si vous allez dans le paramétrage (Settings), vous aurez éventuellement à changer la localisation de vos modèles.

images/06EI12.png

Figure 11 - Interface OLLAMA

Vous n’avez qu’à choisir un modèle en prenant en compte les capacités de votre machine (avec ou sans GPU…) et la taille du modèle (en milliards de paramètres), par exemple gpt-oss:20b (20 milliards de paramètres). À l’exécution de votre premier prompt, Ollama va alors télécharger le modèle.

Si vous avez besoin d’exécuter un gros modèle mais que votre machine n’a pas les ressources pour cela, Ollama propose un mode turbo qui alloue des ressources machines sur le Cloud pour faire l’exécution, cependant, vous aurez alors à payer un abonnement.

Nous n’êtes pas obligé de télécharger les modèles à partir du serveur Ollama et pouvez installer n’importe quel modèle au format GGUF de la plateforme Hugging face, y compris les modèles que propose déjà en téléchargement LM Studio.

2. En ligne de commande

a. Commandes de base

L’usage en ligne de commande est disponible avec la commande ollama. Nous allons faire nos tests avec le modèle gpt-oss:20b avec un PC et une carte graphique de base NVidia RTX 3060/12Go.

Pour connaître les modèles disponibles :

ollama list 
gpt-oss:20b    aa4295ac10c3    13 GB    15 minutes ago 

Pour obtenir des informations sur un modèle :

ollama show gpt-oss:20b 
  Model 
    architecture        gptoss 
    parameters...