Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comparez les LLM avec vLLM et lm-evaluation-harness
Ce didacticiel vous explique comment évaluer plusieurs grands modèles linguistiques (LLM) par rapport à plusieurs points de référence dans le cadre d'une seule tâche Deadline Cloud. Chaque modèle devient une tâche lors d'un balayage de paramètres, et les tâches sont exécutées en parallèle entre les travailleurs. Une dernière étape regroupe les résultats par modèle dans un classement classé au format CSV et Markdown.
Le code source de ce didacticiel est disponible dans le référentiel deadline-cloud-samples sur
La vidéo suivante montre le flux de travail du classement vLLM LLM sur Deadline Cloud.
Durée estimée : 20 à 40 minutes (selon le nombre de modèles et de benchmarks).
Présentation de
Chaque tâche de cette EvalModels étape démarre un serveur vLLM
Pour terminer ce didacticiel, procédez comme suit :
-
Respectez les conditions préalables de .
-
Configurez votre ferme.
-
Soumettez le travail d'évaluation.
-
Téléchargez et examinez les résultats.
-
nettoyer les ressources.
Conditions préalables
Avant de commencer, la configuration suivante est recommandée :
-
Un parc Deadline Cloud doté d'un parc géré par le service GPU NVIDIA (A10G ou L4, au moins 32 Go de RAM, au moins 4 vCPU).
-
Une file d'attente associée à un environnement de file d'attente conda qui lit les paramètres de la
CondaChannelstâcheCondaPackageset de la tâche. -
La CLI Deadline Cloud
installée sur votre poste de travail. -
Quota de service vCPU Amazon Elastic Compute Cloud (Amazon EC2) suffisant pour les instances de GPU. Le modèle 3 par défaut exécuté sur
g5.xlarge(4 vCPU chacun) nécessite au moins 12 vCPU sous des instances G et VT en On-Demand cours d'exécution.
Note
Un jeton Hugging Face n'est requis que pour les modèles sécurisés (tels que Llama). La liste des modèles par défaut utilise des modèles non datés.
Configurez votre ferme
Le moyen le plus rapide d'obtenir une ferme compatible consiste à déployer le CloudFormation modèle de ferme CUDA
Pour configurer la CLI pour votre ferme
-
Une fois la CloudFormation pile atteinte
CREATE_COMPLETE, configurez la CLI de Deadline Cloud pour utiliser le nouveau parc de serveurs :deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
Si vous possédez déjà un parc de serveurs, la configuration suivante est recommandée :
-
Un parc SMF doté de GPU NVIDIA, d'au moins 32 Go de RAM et d'au moins 4 vCPU.
-
Une file d'attente avec un environnement de file d'attente conda qui lit les paramètres de la
CondaChannelstâcheCondaPackageset de la tâche.
Soumettre le travail d'évaluation
Pour soumettre le travail d'évaluation
-
Clonez le référentiel d'échantillons et accédez au répertoire des lots de tâches :
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard -
Soumettez la tâche avec les modèles et les benchmarks par défaut :
deadline bundle submit . \ --parameter MaxModelLen=2048La liste des modèles par défaut évalue trois petits modèles non datés :
Qwen/Qwen2.5-0.5BQwen/Qwen2.5-1.5B, et.EleutherAI/pythia-1.4bLes benchmarks par défaut sont une suite de raisonnement sensée :hellaswag,arc_easy,arc_challenge,winogrande. -
Surveillez l'état de la tâche dans la console Deadline Cloud ou à l'aide de la
deadline job getcommande.
Modification de la liste des modèles
Les modèles sont définis sous la forme d'un espace de paramètres STRING sur l'EvalModelsétape suivante template.yaml :
parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"
Pour ajouter ou supprimer des modèles, modifiez la range liste. Chaque entrée devient une tâche visible dans le moniteur Deadline Cloud. Les ID de modèle doivent être pris en charge par vLLM (voir la liste des modèles pris en charge par vLLM
Choisir des points de référence
Le paramètre Benchmarks job est une liste de noms de tâches lm-evaluation-harness séparés par des virgules. Remplacez les benchmarks par défaut au moment de la soumission :
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
Tous les benchmarks de la liste s'exécutent de manière séquentielle par rapport au serveur vLLM de chaque modèle. Conservez une valeur MaxModelLen inférieure ou égale à la fenêtre contextuelle du plus petit modèle. Pour une liste complète des benchmarks disponibles, consultez les tâches lm-evaluation-harness
Téléchargez et consultez les résultats
Pour télécharger les résultats du classement
-
Une fois le travail terminé, téléchargez le résultat :
deadline job download-output --job-idjob-id -
Consultez le classement :
cat leaderboard_results/leaderboard.md
L'exemple suivant montre un résultat typique du classement :
# LLM Leaderboard Models: 3 | Benchmarks: arc_challenge, arc_easy, hellaswag, winogrande | Rank | Model | arc_challenge | arc_easy | hellaswag | winogrande | Mean | |------|------------------------|---------------|----------|-----------|------------|--------| | 1 | Qwen/Qwen2.5-1.5B | 0.4497 | 0.7176 | 0.6775 | 0.6322 | 0.6192 | | 2 | Qwen/Qwen2.5-0.5B | 0.3200 | 0.5816 | 0.5223 | 0.5691 | 0.4982 | | 3 | EleutherAI/pythia-1.4b | 0.2833 | 0.5387 | 0.5201 | 0.5730 | 0.4788 |
Nettoyage
Pour éviter des frais récurrents, nettoyez les ressources que vous avez créées pour ce didacticiel :
Pour nettoyer les ressources du didacticiel
-
Si vous avez déployé le CloudFormation modèle de ferme CUDA, supprimez la CloudFormation pile de la CloudFormation console.
-
Si vous avez utilisé une batterie de serveurs existante, arrêtez ou supprimez le parc de processeurs graphiques que vous avez utilisé pour ce didacticiel.
-
Supprimez les fichiers de sortie locaux s'ils ne sont plus nécessaires :
rm -rf leaderboard_results/
Résolution des problèmes
La flotte n'augmente pas le nombre de travailleurs
La cause la plus courante est un quota de service vCPU Amazon EC2. Ouvrez la console Service Quotas
Ressources connexes
Les ressources suivantes fournissent des informations supplémentaires :