Article

vLLM V1 Migration: Korrektheit vor Korrekturen im RL-Training

ServiceNow dokumentiert die Herausforderungen bei der Migration von vLLM V0 zu V1 für Reinforcement Learning Training.

Kurzbeschreibung

Der Wechsel von vLLM V0 auf V1 zeigte Trainingsinstabilitäten. Die Lösung: Semantische Logprob-Fixes, Runtime-Defaults und die korrekte float32 Projektion, bevor das RL-Objektiv angepasst wird.

Abstract

PipelineRL nutzt vLLM als Inference-Engine für Rollout-Generierung im RL-Training. Die Inference-Engine sampelt Tokens und liefert Logprobs; der Trainer nutzt diese für Policy-Ratios, KL, Clip-Rate und Reward. Jede Diskrepanz in der Logprob-Berechnung verändert die Trainingsdynamik – ein sogenannter Train-Inference Mismatch.

Bei der Migration von vLLM 0.8.5 auf 0.18.1 zeigten sich sofort Probleme: Die Clip-Rate driftete ab, die KL-Divergenz stieg, die Entropie kollabierte. Das Team identifizierte drei Fehlerklassen: Semantische Mismatches (Logprobs wurden ohne Temperatur-Skalierung zurückgegeben), Inference-Path-Mismatches (unterschiedliche Default-Caching-Einstellungen), und Weight-Update-Path-Probleme.

Die Lösung sequentiell: Erst logprobs-mode auf processed_logprobs setzen, dann V1-Runtime-Defaults angleichen, danach den Weight-Update-Pfad reparieren, und schliesslich die finale lm_head-Projektion auf float32 precision korrigieren. Erst nach Backend-Parität wurde das RL-Objektiv angepasst. Die Lektion: Bei RL-Training muss die Backend-Korrektheit gesichert sein, bevor man das Training-Objektiv anpasst.

Link: Hugging Face Blog