Chapitre 2 : Optimisation pour l'inférence
Maximiser la performance d'inférence
Techniques pour une inférence rapide et efficace en production.
Serveurs d'inférence
| Serveur | Atout | Cas d'utilisation |
|---|---|---|
| vLLM | Débit élevé | API de production |
| TGI | Intégration HF | Déploiement simple |
| llama.cpp | Efficacité CPU | Périphérie/local |
| Ollama | Facilité d'utilisation | Développement local |
Déploiement de vLLM
from vllm import LLM, SamplingParams
llm = LLM(model="./merged_model")
sampling_params = SamplingParams(temperature=0.7, max_tokens=256)
outputs = llm.generate(["Hello, how are you?"], sampling_params)
print(outputs[0].outputs[0].text)
Quantification pour l'inférence
| Niveau | Mémoire | Vitesse | Qualité |
|---|---|---|---|
| FP16 | 100% | 1x | 100% |
| INT8 | 50% | 1.5x | 99% |
| INT4 | 25% | 2x | 95-98% |
Liste de vérification pour l'optimisation
□ Fusionner l'adaptateur LoRA
□ Appliquer la quantification d'inférence (INT8/INT4)
□ Activer le cache KV
□ Utiliser une taille de lot appropriée
□ Activer Flash Attention
□ Envisager le décodage spéculatif
□ Mettre en place une surveillance adéquate