Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Training hangs at 0/12 with Qwen2.5-14B + Unsloth/vLLM (KV cache reported as 0.0 GB despite free VRAM)

未关闭
#472 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
python

调研方向

从 Unsloth/vLLM 初始化的位置开始研究 ART 的 agent 训练集成,然后追踪 gpu_memory_utilization、max_model_len 和 max_num_seqs 的默认值。在报告的环境中复现 Qwen2.5-14B 运行,并确定为什么 KV 缓存被报告为 0.0 GB;完成的标准是确定一个已确认的原因,以及一个经过验证的配置或修复,使训练能够推进到 0/12 之后。

由索引模型根据 Issue 内容生成。

描述

bug

Description

I’m using the ART agent training pipeline with LangGraph and Qwen2.5-14B, and my training run consistently pauses mid-training with no explicit error. The script does not crash, but the training progress bar never moves past 0/12 steps.

From the logs, it looks like Unsloth/vLLM is incorrectly concluding that there is no free GPU memory available for the KV cache, even though the model uses ~26 GB VRAM and the GPU has plenty of free memory.

Environment

  • Model: Qwen2.5-14B-Instruct (4-bit / 8-bit via Unsloth, as configured by ART)
  • Framework: ART agent training for LangGraph
  • GPU: NVIDIA H100 80GB (2x GPUs shown in logs)
  • CUDA: 12.6
  • Torch: 2.7.1+cu126
  • vLLM: 0.10.0
  • Transformers: 4.53.2
  • Unsloth: 2025.10.3 (per log banner)
  • OS: Linux

What happens

The run starts normally:

  • Trajectories are collected.
  • RULER reward stats are logged.
  • Trajectories are packed into sequences for training.

Then, when training with vLLM starts, I see:

2025-12-10 20:52:00,769 | INFO | RULER reward stats — step=59 | trajectories=44 | mean=0.812 | stdev=0.189
Packed 44 trajectories into 12 sequences of length 4096
2025-12-10 20:52:02,337 | INFO | Unsloth: Patching vLLM
train:   0%|                                                          | 0/12 [00:00<?, ?it/s]
==((====))==  Unsloth 2025.10.3: Fast Qwen2 patching. Transformers: 4.53.2. vLLM: 0.10.0.
   \\   /|    NVIDIA H100 80GB HBM3. Num GPUs = 2. Max memory: 79.189 GB. Platform: Linux.
O^O/ \_/ \    Torch: 2.7.1+cu126. CUDA: 9.0. CUDA Toolkit: 12.6. Triton: 3.3.1
\        /    Bfloat16 = TRUE. FA [Xformers = 0.0.31. FA2 = False]
 "-____-"     Free license: http://github.com/unslothai/unsloth
Unsloth: Fast downloading is enabled - ignore downloading bars which are red colored!
Unsloth: Your GPU cannot handle sequence lengths of 256 due to limited GPU memory.
Unsloth: Your GPU can only handle approximately the maximum sequence length of 256.
Unsloth: vLLM loading unsloth/qwen2.5-14b-instruct-unsloth-bnb-4bit with actual GPU utilization = 12.79%
Unsloth: Your GPU has CUDA compute capability 9.0 with VRAM = 79.19 GB.
Unsloth: Using conservativeness = 1.0. Chunked prefill tokens = 256. Num Sequences = 128.
Unsloth: vLLM's KV Cache can use up to 0.0 GB. Also swap space = 6 GB.
Unsloth: Not an error, but `device` is not supported in vLLM. Skipping.

After this, nothing else happens:

  • The progress bar stays at 0/12.
  • No Python traceback / exception is printed.
  • The process keeps running but never finishes the training step.

Why this seems wrong

  • Qwen2.5-14B with 4-bit quantization uses about 26 GB VRAM on this H100 80GB.

  • nvidia-smi shows that there is still plenty of free VRAM on the GPU during the run (well over the few GB that a KV cache would need for sequence lengths of 256–4096).

  • Despite that, Unsloth/vLLM logs:

    • Your GPU cannot handle sequence lengths of 256 due to limited GPU memory.
    • vLLM's KV Cache can use up to 0.0 GB.
  • This suggests either:

    • ART’s integration with Unsloth/vLLM is mis-configuring something like gpu_memory_utilization / max model length, or
    • There’s a bug in how available VRAM is being computed before allocating KV cache in this setup.

Because the KV cache size is computed as 0.0 GB, I suspect vLLM cannot actually schedule any tokens, and the training loop ends up waiting forever for outputs.

What I’ve tried

  • Verified there is no other heavy process on the same GPU (no big competing jobs).
  • Confirmed that Qwen2.5-14B fits fine on this GPU in isolation.
  • Reproduced multiple times; behavior is consistent.
  • I didn’t explicitly set gpu_memory_utilization or vLLM engine arguments in my code — I’m using the defaults provided by ART’s training script.

Questions

  1. Is ART setting any vLLM/Unsloth parameters like gpu_memory_utilization, max_model_len, or max_num_seqs that could cause the KV cache to be computed as 0.0 GB in this configuration?
  2. Is this a known issue when using Qwen2.5-14B with ART’s agent training + vLLM backend?
  3. Do you have recommended overrides for the vLLM engine args in this setup (e.g. context length, sequences per batch) to avoid the KV Cache can use up to 0.0 GB situation?
主要语言
Python
星标
10.8k
派生
1k
平均合并
16 小时 14 分钟
30 天内合并 PR
148

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenPipe/ART 的其他 Issue

查看 OpenPipe/ART 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。