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 Evaluierung 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 zwischen den 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 unter verfügbar.
Das folgende Video zeigt den vLLM LLM-Leaderboard-Workflow auf Deadline Cloud.
Geschätzte Dauer: 20—40 Minuten (abhängig von der Anzahl der Modelle und Benchmarks).
-Übersicht
Jede Aufgabe in diesem EvalModels Schritt startet einen lokalen vLLM-Server
Gehen Sie wie folgt 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 Dienst verwalteten NVIDIA-GPU-Flotte (A10G oder L4, mindestens 32 GB RAM, mindestens 4 vCPUs).
-
Eine Warteschlange, an die eine Conda-Warteschlangenumgebung angehängt ist, in der Jobparameter gelesen und ausgeführt werden.
CondaPackagesCondaChannels -
Die Deadline Cloud-CLI
ist auf Ihrer Workstation installiert. -
Ausreichendes vCPU-Servicekontingent für Amazon Elastic Compute Cloud (Amazon EC2) für GPU-Instances. Die standardmäßige Ausführung mit 3 Modellen
g5.xlarge(jeweils 4 vCPUs) erfordert mindestens 12 vCPUs unter laufenden On-Demand G- und VT-Instances.
Anmerkung
Ein Hugging Face Face-Token ist nur für geschlossene Modelle (wie Lama) erforderlich. In der Standardmodellliste werden Modelle ohne Gattungen verwendet.
Richten Sie Ihre Farm ein
Der schnellste Weg, eine kompatible Farm zu erhalten, ist die Bereitstellung der 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-Warteschlangenumgebung, in der Jobparameter gelesen und gelesen werden.
CondaPackagesCondaChannels
Reichen Sie den Evaluierungsjob ein
Um den Bewertungsjob 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 Modelle ohne Staffelung 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 im folgenden EvalModels Schritt als STRING-Parameterraum 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 (siehe Liste der von VllM unterstützten
Auswahl von Benchmarks
Der Benchmarks Job-Parameter ist eine durch Kommas getrennte Liste von lm-evaluation-harness-Aufgabennamen. Überschreiben Sie die Standard-Benchmarks beim Absenden:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
Alle Benchmarks in der Liste werden sequentiell auf den vLLM-Servern der einzelnen Modelle ausgeführt. Verwenden Sie MaxModelLen weniger als oder gleich dem Kontextfenster des kleinsten Modells. Eine vollständige Liste der verfügbaren Benchmarks finden Sie in den Aufgaben von lm-evaluation-harness
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 des Tutorials
-
Wenn Sie die CloudFormation CUDA-Farmvorlage bereitgestellt haben, löschen Sie den CloudFormation Stack aus der CloudFormation Konsole.
-
Wenn Sie eine bestehende 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
Fleet erweitert die Anzahl der Mitarbeiter nicht
Die häufigste Ursache ist ein Amazon EC2 vCPU-Servicekontingent. Öffnen Sie die Service Quotas Quotas-Konsole
Zugehörige Ressourcen
Die folgenden Ressourcen bieten zusätzliche Informationen: