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à.
Effettua il benchmark dei LLM con vLLM e lm-evaluation-harness
Questo tutorial illustra la valutazione di più modelli linguistici di grandi dimensioni (LLM) rispetto a più benchmark in un unico lavoro di Deadline Cloud. Ogni modello diventa un'attività in uno sweep di 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 su.
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
Per completare questo tutorial, segui questi passaggi:
-
Completare i prerequisiti .
-
Configura 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 Deadline Cloud farm con una flotta di GPU NVIDIA gestita dai servizi (A10G o L4, almeno 32 GB di RAM, almeno 4 vCPU).
-
Una coda con un ambiente di coda conda collegato che legge e parametri di lavoro.
CondaPackagesCondaChannels -
La CLI Deadline Cloud
installata sulla tua workstation. -
Quota di servizio vCPU Amazon Elastic Compute Cloud (Amazon EC2) sufficiente per le istanze GPU. L'esecuzione predefinita su 3 modelli
g5.xlarge(4 vCPU ciascuno) richiede almeno 12 vCPU nelle istanze Running G e VT. On-Demand
Nota
Un token Hugging Face è richiesto solo per i modelli con cancello (come Llama). L'elenco di modelli predefinito utilizza modelli non datati.
Configura la tua fattoria
Il modo più veloce per ottenere una farm compatibile è implementare il modello di farm CloudFormation 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 disponi già di 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 e modifica i parametri di lavoro.
CondaPackagesCondaChannels
Invia il lavoro di valutazione
Per inviare il lavoro di valutazione
-
Clona il repository degli esempi e vai 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 dei modelli di default valuta tre modelli piccoli e non datati:
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 nel EvalModels passaggio 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 di Deadline Cloud. Gli ID dei modelli devono essere supportati da vLLm (vedi l'elenco dei modelli supportati da VLLm
Scelta dei benchmark
Il parametro Benchmarks job è un elenco separato da virgole di nomi di attività di 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
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 il risultato 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, ripulisci 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 console. CloudFormation
-
Se hai utilizzato una farm esistente, interrompi o elimina la flotta di GPU che hai usato 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 servizio vCPU di Amazon EC2. Apri la console Service Quotas
Risorse correlate
Le seguenti risorse forniscono informazioni aggiuntive: