# Comment entraîner un petit modèle de langage sur un GPU loué, étape par étape?

Date: 2026-11-02 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/entrainer-petit-modele-langage-gpu-loue/

**Answer:** Louez une machine à la minute, connectez-vous par SSH, clonez nanochat de Karpathy, faites un court modèle d’essai pour environ 3 $ US, puis exécutez le script complet pour environ 64 $ US sur huit GPU H100. Gardez la tâche dans une session screen, copiez vos points de contrôle hors de la machine et supprimez l’instance dès que vous avez fini, car la facturation continue jusque-là.

Notre [guide du tout petit modèle](/fr/apprendre/entrainer-petit-modele-langage-de-zero/) reste sur votre portable. Celui-ci passe au vrai matériel. Vous allez louer un serveur à GPU, entraîner un modèle dont le seul ancêtre est une série de nombres aléatoires, puis clavarder avec lui. Il suppose seulement que vous savez ouvrir un terminal et copier des commandes.

Les étapes utilisent nanochat, le petit projet d’entraînement d’Andrej Karpathy, et le nuage à la demande de Lambda comme exemple, puisque l’auteur de nanochat s’en sert. Les prix ont été relevés le 2 novembre 2026; tout fournisseur offrant des machines Ubuntu et SSH fonctionne à peu près de la même façon.

## Choisissez votre exécution

| Exécution | Machine | Durée | Facture | Résultat |
|---|---|---|---|---|
| Essai, 12 couches | 1 H100 (4,29 $ US/h) | Environ 40 min d’entraînement | Environ 3 $ US, plus l’installation | Un texte qui montre que la méthode fonctionne |
| Complète, 24 couches | 8 H100 (31,92 $ US/h) | Environ 2 h | Environ 64 $ US | Un modèle de clavardage de niveau GPT-2 |
| Complète, sur un GPU | 1 H100 | Environ 8 fois plus long | Total semblable, environ 57 $ US pour l’entraînement | Le même modèle, pendant la nuit |

Faites toujours l’essai d’abord. Les 40 minutes sont une estimation tirée de la note du projet : une exécution à 12 couches prend environ 5 minutes sur huit GPU, et un GPU seul est environ huit fois plus lent. Votre première exécution montre combien de temps vous prend l’installation, et chaque minute compte.

## Étape 1 : louer la machine

Créez un compte chez le fournisseur et ajoutez un mode de paiement et une clé SSH, le fichier qui permet à votre ordinateur de se connecter sans mot de passe. Dans la console de Lambda, lancez une instance avec le nombre de GPU choisi. La facturation commence dès qu’elle réussit ses vérifications d’état. Copiez l’adresse IP affichée, puis connectez-vous :

```bash
ssh ubuntu@YOUR_IP
nvidia-smi
```

`nvidia-smi` énumère les GPU et leur mémoire. Vérifiez que vous avez bien ce que vous payez. Les réglages par défaut de nanochat supposent 80 Go par GPU.

## Étape 2 : installer

```bash
git clone https://github.com/karpathy/nanochat.git
cd nanochat
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv sync --extra gpu
source .venv/bin/activate
```

`uv` est l’outil qui installe les paquets Python dont le projet a besoin, dont PyTorch, la bibliothèque qui fait l’entraînement. Avant d’exécuter la ligne `curl`, vous pouvez lire le script à cette adresse si vous le souhaitez; il provient du projet officiel uv.

## Étape 3 : l’exécution d’essai

Lancez d’abord une session **screen**. Elle garde la tâche active sur le serveur si votre portable se met en veille ou si la connexion tombe.

```bash
screen -S test
python -m nanochat.dataset -n 32
python -m scripts.tok_train
python -m scripts.base_train --depth=12 --model-tag=d12 --save-every=1000
```

La première ligne télécharge 32 fichiers de données d’environ 100 Mo chacun. La deuxième entraîne le découpeur en jetons (*tokenizer*). La troisième entraîne un modèle à 12 couches et enregistre un point de contrôle, un instantané du modèle, toutes les 1 000 étapes. Appuyez sur `Ctrl-a` puis `d` pour vous détacher; `screen -r test` ramène la session.

Surveillez deux choses dans le journal. Les **bits par octet de validation** devraient continuer de baisser; ils sont expliqués dans [comment évaluer votre modèle](/fr/apprendre/evaluer-modele-langage-entraine-soi-meme/). Les **échantillons de texte**, imprimés toutes les 2 000 étapes, devraient devenir moins farfelus. Si vous manquez de mémoire graphique, réduisez `--device-batch-size` de moitié, de 32 à 16 et ainsi de suite, jusqu’à ce que ça entre.

## Étape 4 : l’exécution complète

Sur une machine à huit GPU, tout le pipeline tient en une ligne :

```bash
screen -L -Logfile runs/speedrun.log -S speedrun bash runs/speedrun.sh
```

Le script télécharge les données, entraîne le découpeur, préentraîne un modèle à 24 couches, l’évalue, fait son ajustement fin pour la conversation et l’évalue encore. À l’intérieur, il utilise `torchrun`, le lanceur de PyTorch, qui démarre un processus d’entraînement par GPU pour que les huit se partagent le travail. Pour suivre depuis une autre connexion, exécutez `tail -f runs/speedrun.log`.

Une fois terminé :

```bash
source .venv/bin/activate
python -m scripts.chat_cli
```

Essayez une histoire, un poème et une question à votre sujet. Attendez-vous à de l’invention fluide pour la dernière, car ce modèle sait très peu de choses. Son auteur compare l’expérience à une conversation avec un enfant de maternelle.

## Étape 5 : sauvegarder, puis cesser de payer

À partir de votre ordinateur, copiez les résultats, puis supprimez l’instance :

```bash
scp -r ubuntu@YOUR_IP:~/.cache/nanochat/chatsft_checkpoints ./nanochat-model/
scp -r ubuntu@YOUR_IP:~/.cache/nanochat/tokenizer ./nanochat-model/
```

Les points de contrôle du préentraînement se trouvent juste à côté, dans `base_checkpoints`, si vous les voulez aussi. Ouvrez un dossier de points de contrôle pour confirmer que les fichiers sont arrivés, puis supprimez l’instance dans la console. Lambda ne facture rien pour les données sortantes, mais d’autres fournisseurs peuvent le faire. Notez que le jeu de données par défaut de nanochat est sous licence d’usage non commercial, ce qui importe si vous comptez [publier le modèle](/fr/apprendre/publier-modele-langage-licence/).

> **À essayer :** faites l’exécution d’essai avec `--depth=12`, notez le résultat final de validation, puis recommencez avec `--depth=8`. Comparez les deux résultats, la durée et le coût. Vous aurez mesuré comment la taille achète la qualité.

## Qu’est-ce qui tourne mal le plus souvent, et comment éviter d’en payer le prix?

**La machine continue de facturer après l’entraînement.** Lambda facture à la minute, du lancement jusqu’à la suppression, que la machine serve ou non, et d’autres fournisseurs fonctionnent de façon semblable. Notez l’heure de fin prévue et réglez une alarme sur votre téléphone. Un nœud à huit GPU oublié coûte environ 766 $ US par jour. Vérifiez la règle du fournisseur sur le sens d’« arrêter », car elle peut différer de « supprimer ».

**Le stockage survit à la machine.** Un système de fichiers réseau continue d’être facturé jusqu’à sa suppression, même sans instance attachée. Chez Lambda, il faut l’attacher à la création de l’instance; sinon, passez-vous-en et copiez vos résultats avant la suppression.

**Une panne fait perdre des heures de travail.** Par défaut, nanochat n’enregistre qu’à la fin du préentraînement (`--save-every` vaut -1). Pour toute exécution longue, donnez une valeur et utilisez `--resume-from-step` pour reprendre à l’étape enregistrée. Le script complet ne règle pas cette option : ajoutez-la à sa ligne d’entraînement si vous voulez cette assurance.

**Une connexion perdue tue la tâche.** Sans `screen` ou un outil semblable, fermer le terminal peut mettre fin à l’exécution. Lancez la session avant la tâche, chaque fois.

**Les erreurs de manque de mémoire.** Votre GPU a moins de mémoire que ce que supposent les réglages. Baissez `--device-batch-size`. nanochat compense automatiquement pour que l’entraînement se comporte de la même façon, seulement plus lentement.

**Les instances ponctuelles disparaissent.** Elles mènent au faible chiffre d’environ 15 $ US que mentionne le projet, mais les fournisseurs peuvent les reprendre. Ne les utilisez qu’avec des points de contrôle réguliers copiés ailleurs, et considérez l’économie comme incertaine.

**Les erreurs de précision mixte.** Le réglage `--fp8` du *speedrun* exige un H100 ou un GPU plus récent. Sur les cartes plus anciennes, retirez l’option : l’exécution utilise alors bf16, un format de plus grande précision.

## Sources

- nanochat README, speedrun script, CPU script and leaderboard notes: https://github.com/karpathy/nanochat
- Billing: https://docs.lambda.ai/public-cloud/billing/
- torchrun (Elastic Launch): https://docs.pytorch.org/docs/2.15/elastic/run.html

---

Tiré du Guide de l’intelligence artificielle, par Robert Scales, publié par Holistic Hybrid inc. Partage et adaptation permis selon la licence CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/) : citez le guide, mettez un lien vers https://guidetoartificialintelligence.com/fr/apprendre/entrainer-petit-modele-langage-gpu-loue/, pas d’usage commercial sans permission, et gardez la même licence.
