Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Benchmark-LLMs mit vLLM und lm-evaluation-harness
Dieses Tutorial führt Sie durch die Bewertung mehrerer großer Sprachmodelle (LLMs) anhand mehrerer Benchmarks in einem einzigen Deadline Cloud-Job. Jedes Modell wird in einem Parameter-Sweep zu einer Aufgabe, und die Aufgaben werden parallel von allen Workern ausgeführt. In einem letzten Schritt werden die Ergebnisse pro Modell zu einer Rangliste im CSV- und Markdown-Format zusammengefasst.
Der Quellcode für dieses Tutorial ist im Deadline-Cloud-Samples-Repository auf der Website
Das folgende Video zeigt den vLLM LLM-Leaderboard-Workflow auf Deadline Cloud.
Geschätzte Zeit: 20—40 Minuten (abhängig von der Anzahl der Modelle und Benchmarks).
-Übersicht
Jede Aufgabe in diesem EvalModels Schritt startet einen lokalen vLLM-Server, führt jeden Benchmark mit EleutherAis lm-evaluation-harness gegen den lokalen Endpunkt aus und stoppt dann vLLM. Weitere Informationen finden Sie unter vLLM und lm-evaluation-harness auf der Website. https://github.com/vllm-project/vllm
Gehen Sie folgendermaßen vor, um dieses Tutorial abzuschließen:
-
Sorgen Sie dafür, dass die -Voraussetzungen erfüllt sind.
-
Richten Sie Ihre Farm ein.
-
Reichen Sie den Bewertungsauftrag ein.
-
Laden Sie die Ergebnisse herunter und überprüfen Sie sie.
-
Bereinigen Sie die Ressourcen.
Voraussetzungen
Bevor Sie beginnen, wird die folgende Einrichtung empfohlen:
-
Eine Deadline Cloud-Farm mit einer vom NVIDIA-GPU-Service verwalteten Flotte (A10G oder L4, mindestens 32 GB RAM, mindestens 4 vCPUs).
-
Eine Warteschlange mit einer angehängten Conda-Queue-Umgebung, die Lese- und Jobparameter liest.
CondaPackagesCondaChannels -
Die Deadline Cloud-CLI ist auf Ihrer Workstation installiert. Anweisungen zur Installation finden Sie im https://github.com/aws-deadline/deadline-cloud
Deadline-Cloud-Repository auf der GitHub Website. -
Ausreichendes Deadline Cloud-Dienstkontingent für GPU-Instanzen. Das Standardmodell mit 3 Modellen
g5.xlarge(4 vCPUs und jeweils 1 GPU) erfordert mindestens 3 GPUs unter OnDemand G-Instanz-GPUs pro Region und 12 vCPUs unter vCPUs pro Region. OnDemand
Anmerkung
Ein Hugging Face-Token ist nur für geschlossene Modelle (wie Llama) erforderlich. In der Standardmodellliste werden Modelle ohne Gitter verwendet.
Richten Sie Ihre Farm ein
Der schnellste Weg, eine kompatible Farm zu erhalten, besteht darin, die CloudFormation CUDA-Farmvorlage
So konfigurieren Sie die CLI für Ihre Farm
-
Wenn der CloudFormation Stack erreicht ist
CREATE_COMPLETE, konfigurieren Sie die Deadline Cloud-CLI so, dass sie die neue Farm verwendet:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
Wenn Sie bereits eine Farm haben, wird die folgende Konfiguration empfohlen:
-
Eine SMF-Flotte mit NVIDIA-GPUs, mindestens 32 GB RAM und mindestens 4 vCPUs.
-
Eine Warteschlange mit einer Conda-Queue-Umgebung, die Lese- und Job-Parameter liest.
CondaPackagesCondaChannels
Reichen Sie den Evaluierungsauftrag ein
Um den Bewertungsauftrag einzureichen
-
Klonen Sie das Beispiel-Repository und navigieren Sie zum Job-Bundle-Verzeichnis:
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard -
Reichen Sie den Job mit den Standardmodellen und Benchmarks ein:
deadline bundle submit . \ --parameter MaxModelLen=2048In der Standardmodellliste werden drei kleine, ungatierte Modelle bewertet:
Qwen/Qwen2.5-0.5B, undQwen/Qwen2.5-1.5B.EleutherAI/pythia-1.4bDie Standard-Benchmarks basieren auf gesundem Menschenverstand:.hellaswag,arc_easy,arc_challenge,winogrande -
Überwachen Sie den Jobstatus in der Deadline Cloud-Konsole oder mithilfe des Befehls.
deadline job get
Änderung der Modellliste
Modelle werden als STRING-Parameterraum im folgenden EvalModels Schritt definierttemplate.yaml:
parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"
Bearbeiten Sie die range Liste, um Modelle hinzuzufügen oder zu entfernen. Jeder Eintrag wird zu einer Aufgabe, die im Deadline Cloud-Monitor sichtbar ist. Modell-IDs müssen von vLLM unterstützt werden. Weitere Informationen finden Sie in der Liste der unterstützten Modelle
Auswahl von Benchmarks
Der Benchmarks Jobparameter ist eine durch Kommas getrennte Liste von lm-evaluation-harness-Aufgabennamen. Überschreiben Sie die Standard-Benchmarks bei der Übermittlung:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
Alle Benchmarks in der Liste werden sequentiell auf dem vLLM-Server jedes Modells ausgeführt. Halten Sie den MaxModelLen Wert kleiner als oder gleich dem Kontextfenster des kleinsten Modells. Eine vollständige Liste der verfügbaren Benchmarks finden Sie unter den Aufgaben von lm-evaluation-harness auf der Website.
Laden Sie die Ergebnisse herunter und überprüfen Sie sie
Um die Ergebnisse der Bestenliste herunterzuladen
-
Laden Sie nach Abschluss des Jobs die Ausgabe herunter:
deadline job download-output --job-idjob-id -
Sehen Sie sich die Bestenliste an:
cat leaderboard_results/leaderboard.md
Das folgende Beispiel zeigt eine typische Ausgabe der Bestenliste:
# 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 |
Bereinigen
Um laufende Gebühren zu vermeiden, bereinigen Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben:
So bereinigen Sie die Ressourcen für das Tutorial
-
Wenn Sie die CloudFormation CUDA-Farmvorlage bereitgestellt haben, löschen Sie den CloudFormation Stack aus der CloudFormation Konsole.
-
Wenn Sie eine vorhandene Farm verwendet haben, beenden oder löschen Sie die GPU-Flotte, die Sie für dieses Tutorial verwendet haben.
-
Entfernen Sie lokale Ausgabedateien, wenn sie nicht mehr benötigt werden:
rm -rf leaderboard_results/
Fehlerbehebung
Die Flotte skaliert die Anzahl der Mitarbeiter nicht
Die häufigste Ursache ist ein Deadline Cloud-Dienstkontingent. Öffnen Sie die Service Quota-Konsole
Zugehörige Ressourcen
Die folgenden Ressourcen bieten zusätzliche Informationen auf der GitHub Website und der vLLM-Website: