Exigences : J’ai déjà déployé le modèle deepseek-r1:32b avec Ollama, qui est très pratique et rapide, adapté à un déploiement rapide et personnel. Si c’est un environnement de production d’entreprise, comment devrait-il être déployé ? En général, vllm et sglang sont utilisés pour le déploiement, et cet article utilise vLLM pour déployer le modèle DeepSeek-R1.
Ollama vs. vLLM
Les différences sont les suivantes :
| Dimensions de contraste | Ollama | vLLM | | Positionnement du cœur | Outils de localisation légers pour les développeurs individuels et les expériences à petite échelle | Cadre d’inférence au niveau production, axé sur des scénarios d’entreprise avec une forte concurrence et une faible latence | | Exigences matérielles | Prend en charge le processeur et le GPU, faible empreinte mémoire (utilise par défaut le modèle de quantification) | Il faut compter sur les GPU NVIDIA, qui consomment beaucoup de mémoire | | Support des modèles | Bibliothèque de modèles pré-entraînée intégrée (prise en charge de 1700+ modèles), téléchargement automatique des versions quantitatives (principalement int4) | Le téléchargement manuel du fichier modèle original (par exemple le format HuggingFace) prend en charge une gamme plus large de modèles | | Difficulté de déploiement | Installation en un seul bouton et utilisation prête à l’emploi, sans base de programmation requise | Un environnement Python et un pilote CUDA sont requis, et une expérience technique est requise | | Caractéristiques de performance | La vitesse d’inférence unique est rapide, mais la capacité de traitement de la concurrence est faible | Haut débit, prise en charge du traitement dynamique par lots et milliers de requêtes simultanées | | gestion des ressources | Ajustez l’utilisation des ressources de manière flexible et libérez automatiquement la mémoire vidéo lorsqu’elle est inactive | L’occupation de la mémoire vidéo est fixe, et les ressources doivent être réservées pour faire face aux charges de pointe |
Une brève introduction aux vLLM
vLLM est une bibliothèque rapide et facile à utiliser d’inférence et de services LLM.
vLLM avec de nouveaux algorithmes redéfinit le niveau technologique le plus récent des services LLM : . Comparé à HuggingFace Transformers, il offre jusqu’à 24 fois plus de débit sans aucun changement d’architecture de modèle. En réduisant de moitié le taux de hachage et en multipliant le débit, l’étude a comparé le débit du vLLM avec la bibliothèque LLM la plus populaire, HuggingFace Transformers (HF), ainsi qu’avec l’ancienne HuggingFace Text Generation Inference (TGI) avec le débit SOTA. De plus, l’étude a divisé la configuration expérimentale en deux types : LLaMA-7B avec GPU NVIDIA A10G comme matériel ; L’autre est LLaMA-13B, avec un GPU NVIDIA A100 (40 Go) sur le matériel. Ils ont échantillonné les longueurs d’entrée/sortie à partir du jeu de données ShareGPT. Les résultats ont montré que le débit de vLLM était 24 fois supérieur à celui de HF et 3,5 fois supérieur à TGI.
Documentation vLLM :La connexion hyperlientérée est visible. Adresse du code source :La connexion hyperlientérée est visible. Tests de performance :La connexion hyperlientérée est visible.
Tu n’as pas besoin de comprendre le tableau, la vache est terminée !
Préparation environnementale
J’ai acheté les services d’applications haute performance Tencent Cloud et les ai configurés comme suit :
Ubuntu 20.04 Configuration de l’environnement : Ubuntu 20.04, pilote 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8 Type de puissance de calcul : GPU à deux cartes de base - 2*16GB+ | 16+TFlops SP | CPU - 16 cœurs | RAM - 64 Go
Installer Conda
Créez un environnement Python avec Conda, collez le script directement :
Déploie DeepSeek-R1 à l’aide d’un vLLM
Créez un environnement Python avec Conda avec la commande suivante :
Installez vllm et modelscope avec les commandes suivantes :
Téléchargez le modèle DeepSeek-R1 à l’aide de modelscope avec la commande suivante :
Référence:La connexion hyperlientérée est visible.
Démarrez le modèle deepseek en utilisant le vllm avec la commande suivante :
Si vous rencontrez « Bfloat16 n’est pris en charge que sur les GPU avec une capacité de calcul d’au moins 8.0. Votre GPU Tesla T4 a une capacité de calcul de 7,5. Vous pouvez utiliser float16 en définissant explicitement le drapeau 'dtype' dans l’interface de cli, par exemple : --dtype=half. » Attention, il suffit d’ajouter des paramètres selon l’avertissement.
Remarque:
- --paramètres de taille parallèle tenseur et de nombre de GPU
- --gpu-memory-utilization contrôle le pourcentage de mémoire utilisée
- --nom-de-modèle-servi Le nom du modèle utilisé dans l’API
- --disable-log-requests désactive les requêtes de journalisation
Documentation d’installation du GPU vLLM Linux :La connexion hyperlientérée est visible. Paramètres du moteur :La connexion hyperlientérée est visible.
Consultez le statut du GPU ci-dessous :
Utilisez les tests Postman
Ouverture du navigateur :http://ip:8000/ Documentation de l’interface :http://ip:8000/docs
Appel du facteur, comme montré sur l’image suivante :
Étalonnage des performances
Téléchargez le code de test avec la commande suivante :
La commande s’exécute comme suit :
Résultat : Débit : 2,45 requêtes/s, 1569,60 tokens/s au total, 1255,68 tokens de sortie/s
(Fin) |