Guide GPU
Quel GPU pour fine-tuner un LLM ? Mémoire, machine et coût
Mis à jour le
Réponse courte
Un fine-tuning LoRA d’un modèle de 8 milliards de paramètres tient sur une RTX A6000 de 48 Go à 0,67 $ CA/h, et un QLoRA d’un modèle de 70 milliards, avec peu de marge, sur 1 × RTX A6000 (48 Go) à 0,67 $ CA/h. Un fine-tuning complet demande environ 16 octets par paramètre, soit 128 Go pour 8 milliards de paramètres avant les activations.
Combien de mémoire GPU pour fine-tuner un LLM
| Méthode | Paramètres | Mémoire avant activations | Machine la moins chère qui suffit | Prix par heure |
|---|---|---|---|---|
| Fine-tuning complet (AdamW) | 8 milliards | 128 Go | 4 × RTX A6000 (192 Go) | 2,68 $ |
| Fine-tuning complet (AdamW) | 70 milliards | 1 120 Go | aucun serveur en ligne : sur demande | sur demande |
| LoRA (poids en 16 bits) | 8 milliards | 16 Go | 1 × RTX A6000 (48 Go) | 0,67 $ |
| LoRA (poids en 16 bits) | 70 milliards | 140 Go | 4 × RTX A6000 (192 Go) | 2,68 $ |
| QLoRA (poids en 4 bits) | 8 milliards | 4 Go | 1 × RTX A6000 (48 Go) | 0,67 $ |
| QLoRA (poids en 4 bits) | 70 milliards | 35 Go | 1 × RTX A6000 (48 Go) | 0,67 $ |
Estimations courantes : 16 octets par paramètre en fine-tuning complet (poids, gradients, copie en 32 bits et états d’Adam), 2 en LoRA, 0,5 en QLoRA. La machine est choisie avec 25 % de marge pour les activations ; la longueur des séquences et la taille de lot peuvent demander plus. Prix en dollars canadiens, taxes en sus.
Pourquoi un tel écart : en fine-tuning complet, chaque paramètre garde ses gradients et les états de l’optimiseur. En LoRA, le modèle est gelé et seuls de petits adaptateurs s’entraînent ; en QLoRA, le modèle gelé est en plus chargé en 4 bits. Le guide CUDA out of memory explique comment réduire les activations.
Les machines à louer, avec leur disponibilité
| GPU | GPU par serveur | Mémoire GPU du serveur | À la demande, par heure | Disponibilité |
|---|---|---|---|---|
| NVIDIA RTX A6000 | 1 | 48 Go | 0,67 $ | |
| NVIDIA RTX A6000 | 4 | 192 Go | 2,68 $ |
Prix en dollars canadiens, taxes en sus, lus dans le catalogue à la publication de la page. La disponibilité est lue en direct ; une machine en rupture affiche la machine équivalente la plus proche qui est en stock.
Combien coûte un fine-tuning
| Travail | Machine | Durée supposée | Coût à la demande |
|---|---|---|---|
| Llama 3.1 8B, LoRA (poids en 16 bits) | 1 × RTX A6000 (48 Go) | 3 h | 2,01 $ |
| Llama 3.1 8B, QLoRA (poids en 4 bits) | 1 × RTX A6000 (48 Go) | 4 h | 2,68 $ |
| Llama 3.1 8B, Fine-tuning complet (AdamW) | 4 × RTX A6000 (192 Go) | 10 h | 26,80 $ |
| Llama 3.1 70B, QLoRA (poids en 4 bits) | 1 × RTX A6000 (48 Go) | 24 h | 16,08 $ |
Les durées sont des hypothèses pour montrer le calcul, pas des mesures : elles dépendent du jeu de données, du nombre d’époques, de la longueur des séquences et du code. Calcul : tarif horaire × heures, arrondi au cent, taxes en sus.
Par exemple, un LoRA de Llama 3.1 8B qui dure 3 heures sur une RTX A6000 coûte 2,01 $ CA. Pour connaître ta vraie durée, lance une courte passe (quelques centaines de pas) et multiplie.
Démarrer un fine-tuning LoRA
Déploie le modèle PyTorch (CUDA) : PyTorch et CUDA sont prêts dans /opt/pytorch. Installe ensuite les bibliothèques de fine-tuning et charge le modèle avec ses adaptateurs LoRA.
import torch
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
# Modèle à accès restreint : accepte sa licence sur Hugging Face, puis `huggingface-cli login`
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B", torch_dtype=torch.bfloat16, device_map="auto"
)
model.gradient_checkpointing_enable()
config = LoraConfig(
r=16, lora_alpha=32, lora_dropout=0.05, task_type="CAUSAL_LM",
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
model = get_peft_model(model, config)
model.print_trainable_parameters()Pour un fine-tuning complet sur plusieurs GPU (par exemple 4 × RTX A6000, 192 Go), répartis les états de l’optimiseur entre les GPU avec FSDP ou DeepSpeed ZeRO. Un fine-tuning complet d’un modèle de 70 milliards de paramètres (environ 1 120 Go avant activations) dépasse un serveur vendu en ligne : réserve des GPU pour en parler.
Servir le modèle affiné
Une fois les adaptateurs fusionnés au modèle, le modèle en un clic vLLM le sert par une API compatible OpenAI, dès 0,67 $ CA/h. Le guide héberger son LLM sur un GPU compare ce coût à une API au jeton.
Ce qu’il faut savoir avant de lancer
- La facturation se fait à l’heure, au tarif horaire du serveur, à partir d’un crédit prépayé. Il n’y a pas de facturation à la minute, et la première heure est prélevée au déploiement.
- Un serveur arrêté reste facturé au plein tarif horaire. Pour payer moins, hiberne-le (0,02 $ par heure (environ 14,60 $ par mois), disque conservé) ou supprime-le. Une machine Spot ne s’hiberne pas : supprime-la quand tu as fini.
- La recharge minimale est de 25,00 $ CA, payée par carte de crédit.
- Les serveurs et leurs disques restent au Canada (région canada-montreal, à Montréal). Les renseignements du compte (identité, facturation, courriels) peuvent être traités hors du Québec, comme l’explique la politique de confidentialité.
Questions fréquentes
Quel GPU pour fine-tuner Llama 3.1 8B ?
En LoRA, une RTX A6000 de 48 Go (0,67 $ CA/h) suffit : les poids en 16 bits prennent environ 16 Go. En fine-tuning complet, il faut environ 128 Go avant activations, soit 4 × RTX A6000.
Peut-on fine-tuner un modèle de 70 milliards de paramètres sur un seul serveur ?
Oui en QLoRA : le modèle en 4 bits prend environ 35 Go, ce qui tient sur 1 × RTX A6000 (48 Go). C’est serré : ça passe en 4 bits avec un petit lot, des séquences courtes et le gradient checkpointing ; pour plus de marge, prends 2 × RTX A6000 ou un GPU de 80 Go. Un fine-tuning complet demande environ 1 120 Go avant activations, plus qu’un serveur vendu en ligne.
LoRA ou fine-tuning complet ?
LoRA d’abord : il demande beaucoup moins de mémoire et de temps, et suffit souvent pour adapter un modèle à un domaine ou à un format de réponse. Le fine-tuning complet se justifie quand LoRA ne suffit pas.
Combien de temps dure un fine-tuning ?
Cela dépend du jeu de données, du nombre d’époques et de la longueur des séquences. Mesure une courte passe, puis multiplie : le coût est le tarif horaire multiplié par les heures.
Mes données d’entraînement restent-elles au Canada ?
Oui. Les serveurs et leurs disques restent au Canada, à Montréal. Supprime le serveur à la fin pour effacer ses disques.
Tu veux du GPU ? On est là.
Lance un serveur GPU NVIDIA à l’heure au Canada, payé en dollars canadiens par carte de crédit, ou réserve un GPU pour une date précise.
Autres guides
- Ton IA te dit qu’il te faut un GPU ? Lance ton script Python sur un GPU en quelques minutes
- CUDA out of memory : causes, correctifs, et quand passer à un GPU avec plus de VRAM
- torch.cuda.is_available() renvoie False : causes et correctifs (Mac, PC sans NVIDIA, Docker)
- Combien coûte un GPU à l’heure au Canada, en dollars canadiens ?
- API OpenAI trop chère ? Héberge ton LLM sur un GPU à l’heure, au Canada
- Louer un GPU à l’heure au Canada : prix, étapes et facturation
- GPU cloud à Montréal, au Canada : serveurs GPU NVIDIA hébergés au pays
- Louer une H100 au Canada : PCIe, NVLink ou SXM, à l’heure
- GPU cloud pas cher : comment payer le moins possible pour un GPU