Model Sharding
iaDéfinition
Le Model Sharding (partage de modele) designe l'ensemble des techniques de partition d'un LLM sur plusieurs GPUs pour l'inference, permettant de depasser la limite de VRAM d'un seul GPU. C'est le terme generique englobant le Tensor Parallelism, le Pipeline Parallelism, et les techniques hybrides, appliqués specifiquement au contexte de l'inference plutot qu'a l'entrainement. Les deux approches principales de sharding pour l'inference : (1) Tensor Parallelism — partition des matrices de poids sur plusieurs GPUs (communications all-reduce frequentes, excellent avec NVLink), (2) Pipeline Parallelism — partition des couches en stages (moins de communication mais latence plus elevee). Une technique specifique a l'inference est le Sequential Sharding (aussi appele naive tensor parallel) : le premier GPU charge les couches 0-N/4, le deuxieme N/4-N/2, etc. Les activations sont passees sequentiellement entre GPUs. C'est simple a implementer mais sous-optimal pour le throughput car un seul GPU travaille a la fois. Tensor offloading est une forme extreme de sharding CPU-GPU : les couches non utilisees sont stockees en RAM CPU et chargees en VRAM GPU layer par layer lors de l'inference. llama.cpp avec --n-gpu-layers 0 (CPU seulement) ou un parametre partiel permet ce mode. Tres lent (transfers PCIe = goulot d'etranglement) mais permet de faire tourner des modeles 70B sur un laptop sans GPU. Le sharding automatique est disponible dans plusieurs frameworks : vLLM (--tensor-parallel-size N), HuggingFace Accelerate (device_map='auto' distribue intelligemment les couches entre CPU et GPU(s) disponibles selon leur VRAM), et LM Studio/Ollama qui gèrent automatiquement le sharding selon le hardware detecte.
Sharding automatique avec HuggingFace Accelerate
from transformers import AutoModelForCausalLM
import torch
# device_map='auto' : Accelerate distribue les couches automatiquement
# selon la VRAM disponible sur chaque GPU et la RAM CPU
model = AutoModelForCausalLM.from_pretrained(
'meta-llama/Meta-Llama-3.1-70B-Instruct',
torch_dtype=torch.bfloat16,
device_map='auto' # Automatique multi-GPU + CPU offload si necessaire
)
# Afficher la distribution
print(model.hf_device_map) # {'model.layers.0': 0, 'model.layers.1': 0, ... 'model.layers.60': 1, ...}
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h