Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Confronta gli LLM con vLLM e lm-evaluation-harness
Questo tutorial ti guida nella valutazione di più modelli linguistici di grandi dimensioni (LLM) rispetto a più benchmark in un unico job di Deadline Cloud. Ogni modello diventa un'unica attività in un'analisi dei parametri e le attività vengono eseguite in parallelo tra i lavoratori. Un passaggio finale aggrega i risultati per modello in una classifica classificata in formato CSV e Markdown.
Il codice sorgente di questo tutorial è disponibile nel repository deadline-cloud-samples sul sito web.
Il video seguente mostra il flusso di lavoro della classifica VLLM LLM su Deadline Cloud.
Tempo stimato: 20-40 minuti (a seconda del numero di modelli e benchmark).
Panoramica di
Ogni attività della EvalModels fase avvia un server vLLM locale, esegue ogni benchmark con lm-evaluation-harness di EleutherAI rispetto all'endpoint locale, quindi interrompe il vLLM. Per ulteriori informazioni
Per completare questo tutorial, segui questi passaggi:
-
Completare i prerequisiti .
-
Allestisci la tua fattoria.
-
Invia il lavoro di valutazione.
-
Scarica e rivedi i risultati.
-
Eliminare le risorse.
Prerequisiti
Prima di iniziare, si consiglia la seguente configurazione:
-
Una farm Deadline Cloud con una flotta di servizi gestiti da GPU NVIDIA (A10G o L4, almeno 32 GB di RAM, almeno 4 vCPU).
-
Una coda a cui è collegato un ambiente conda queue che legge i parametri del lavoro.
CondaPackagesCondaChannels -
L'interfaccia a riga di comando di Deadline Cloud installata sulla tua workstation. Per le istruzioni di installazione, consulta il repository deadline-cloud sul sito Web
. GitHub -
Quota di servizio Deadline Cloud sufficiente per le istanze GPU. L'esecuzione su 3 modelli predefiniti
g5.xlarge(4 vCPU e 1 GPU ciascuno) richiede almeno 3 GPU con istanza OnDemand G per regione e 12 vCPU con vCPU per regione. OnDemand
Nota
Il token Hugging Face è richiesto solo per i modelli gated (come Llama). L'elenco di modelli predefinito utilizza modelli non assegnati.
Configura la tua fattoria
Il modo più veloce per ottenere una farm compatibile è distribuire il CloudFormation modello di farm CUDA
Per configurare la CLI per la tua farm
-
Una volta raggiunto lo CloudFormation stack
CREATE_COMPLETE, configura la CLI di Deadline Cloud per utilizzare la nuova farm:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
Se hai già una farm, è consigliata la seguente configurazione:
-
Una flotta SMF con GPU NVIDIA, almeno 32 GB di RAM e almeno 4 vCPU.
-
Una coda con un ambiente di coda conda che legge i parametri dei processi.
CondaPackagesCondaChannels
Invia il lavoro di valutazione
Per inviare il lavoro di valutazione
-
Clona il repository degli esempi e accedi alla directory del job bundle:
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard -
Invia il lavoro con i modelli e i benchmark predefiniti:
deadline bundle submit . \ --parameter MaxModelLen=2048L'elenco di modelli predefinito valuta tre modelli piccoli e non classificati:
Qwen/Qwen2.5-0.5B,Qwen/Qwen2.5-1.5Be.EleutherAI/pythia-1.4bI benchmark predefiniti sono una suite di ragionamento basata sul buon senso:.hellaswag,arc_easy,arc_challenge,winogrande -
Monitora lo stato del lavoro nella console Deadline Cloud o utilizzando il comando.
deadline job get
Modifica dell'elenco dei modelli
I modelli sono definiti come uno spazio parametrico STRING nella EvalModels fase intemplate.yaml:
parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"
Per aggiungere o rimuovere modelli, modificate l'rangeelenco. Ogni voce diventa un'attività visibile nel monitor Deadline Cloud. Gli ID dei modelli devono essere supportati da vLLM. Per ulteriori informazioni, consulta l'elenco dei modelli supportati
Scelta dei benchmark
Il parametro Benchmarks job è un elenco separato da virgole di nomi di task lm-evaluation-harness. Sostituisci i benchmark predefiniti al momento dell'invio:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
Tutti i benchmark nell'elenco vengono eseguiti in sequenza sul server vLLM di ciascun modello. Mantieni un valore MaxModelLen inferiore o uguale alla finestra di contesto del modello più piccolo. Per un elenco completo dei benchmark disponibili, consulta le attività di lm-evaluation-harness sul sito Web.
Scarica e rivedi i risultati
Per scaricare i risultati della classifica
-
Al termine del lavoro, scarica l'output:
deadline job download-output --job-idjob-id -
Visualizza la classifica:
cat leaderboard_results/leaderboard.md
L'esempio seguente mostra l'output tipico della classifica:
# 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 |
Eliminazione
Per evitare addebiti continui, pulisci le risorse che hai creato per questo tutorial:
Per ripulire le risorse del tutorial
-
Se hai distribuito il CloudFormation modello di farm CUDA, elimina lo CloudFormation stack dalla CloudFormation console.
-
Se hai utilizzato una farm esistente, interrompi o elimina il parco GPU utilizzato per questo tutorial.
-
Rimuovi i file di output locali se non sono più necessari:
rm -rf leaderboard_results/
Risoluzione dei problemi
La flotta non aumenta il numero di lavoratori
La causa più comune è una quota di servizi Deadline Cloud. Apri la console Service Quotas
Risorse correlate
Le seguenti risorse forniscono informazioni aggiuntive sul GitHub sito Web e sul sito Web vLLM: