LocalBackend fork_checkpoint doesn't update vLLM's initial LoRA
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- backend, machine-learning
Línea de trabajo
Comienza en LocalBackend._experimental_fork_checkpoint y sigue cómo model.register crea checkpoints/0000 y cómo PipelineTrainer configura lora_modules de vLLM al iniciar. Determina si el fork debería reemplazar 0000 o actualizar el estado del paso cargado. Se considera terminado cuando un modelo LocalBackend bifurcado inicia vLLM con los pesos LoRA bifurcados sin la solución alternativa de copia manual.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
When using LocalBackend._experimental_fork_checkpoint with PipelineTrainer, the forked LoRA weights are not loaded by the vLLM inference server at startup.
Root cause: model.register(backend) creates an empty LoRA checkpoint at checkpoints/0000. Then _experimental_fork_checkpoint copies the source checkpoint to checkpoints/{source_step} (e.g. 0686). But when vLLM starts, it loads the adapter at @0 — which is the empty 0000 checkpoint, not the forked one.
Sequence:
model.register(backend)→ createscheckpoints/0000/(empty LoRA)backend._experimental_fork_checkpoint(model, from_model="kl-000-1")→ createscheckpoints/0686/(real weights)- vLLM starts with
lora_modules=[LoRAModulePath(name='model@0', path='checkpoints/0000')] - Training begins from an empty adapter instead of the forked checkpoint
Verification:
$ md5sum checkpoints/0000/adapter_model.safetensors checkpoints/0686/adapter_model.safetensors
3fb4a12a... checkpoints/0000/adapter_model.safetensors # empty
98dd58ba... checkpoints/0686/adapter_model.safetensors # forked
Current workaround
After calling _experimental_fork_checkpoint, copy the forked checkpoint files over 0000:
await backend._experimental_fork_checkpoint(model, from_model=src, ...)
# Overwrite empty 0000 with forked weights
step0_dir = art_path / project / "models" / model.name / "checkpoints" / "0000"
forked_dir = art_path / project / "models" / model.name / "checkpoints" / f"{fork_step:04d}"
for f in forked_dir.iterdir():
shutil.copy2(f, step0_dir / f.name)
Suggested fix
_experimental_fork_checkpoint on LocalBackend should either:
- Copy the forked checkpoint to
0000(overwriting the empty one), or - Update the model's state so vLLM knows to load the forked step instead of
@0
This issue is specific to LocalBackend — ServerlessBackend handles fork differently (uploads as W&B artifact with the correct step alias).
- Lenguaje dominante
- Python
- Estrellas
- 10.8k
- Forks
- 989
- Merge medio
- 11 h 38 min
- PR fusionados (30 d)
- 104
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenPipe/ART
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
OpenPipe/ART#961 · 3 comentarios ·
Los mantenedores suelen responder en 3 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
OpenPipe/ART#949 · 5 comentarios ·
Los mantenedores suelen responder en 3 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 10/100
Los mantenedores suelen responder en 3 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
Los mantenedores suelen responder en 3 días
Todos los issues de OpenPipe/ART
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
gradio-app/gradio#13895 ·
Los mantenedores suelen responder en 1 día
-
build-error
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
spack/spack-packages#6713 ·
Los mantenedores suelen responder en 1 día
-
Use issue templatesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ActivityWatch/activitywatch#1464 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: The ckg tool drops the return type of every decorated Python method in class search resultsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
bytedance/trae-agent#483 ·
Los mantenedores suelen responder en 1 día