Commit Graph

1 Commits

Author SHA1 Message Date
Alpamys 29f875f6ef feat(grpo): v0.53.3 — grpo_fp16 routing + vision-GRPO VLM base probe
Two surgical fixes from the v0.50.0 GRPO Plus deferred-stub family land:

- #128 grpo_fp16 routing: GRPOTrainerWrapper._build_precision_kwargs
  returns {fp16, bf16} per (device, grpo_fp16) matrix (CPU/MPS/XPU →
  both False, CUDA + grpo_fp16=True → fp16/!bf16, default CUDA →
  legacy bf16). SoupConfig._validate_grpo_fp16_amp_exclusive rejects
  the silent-mutex combo with auto_mixed_precision=True; short-circuits
  when task != 'grpo' so the v0.50.0 task-gate diagnosis fires first.

- #129 vision-GRPO base probe: KNOWN_VLM_REGEX covers 10 VLM families
  (Qwen2-VL/Qwen2.5-VL/QVQ/Pixtral/InternVL/Llama-3.2-Vision/LLaVA/
  MiniCPM-V/Idefics/ShareGPT4V/Fuyu) with word-boundary anchors;
  is_known_vlm_base returns False (never raises) on bad input;
  validate_vision_grpo_compat now accepts optional base kwarg with
  64-char error-message truncation. YAML pairing vision_grpo: true
  with a non-VLM base is rejected at schema load with a friendly
  families listing instead of a cryptic runtime AttributeError.

Scope: 4 larger v0.53.3 items (#127 stability callback, #123 GRPO
variant losses, #126 PRMTrainerWrapper, #68 multi-objective preference
live combine) are scope-deferred to v0.53.4 — each warrants its own
focused release per the v0.40.x stub-then-live cadence.

Tests: 7842 -> 7879 (+37 in tests/test_v0533.py). Four review agents
(python/code/security/tdd) ran; every HIGH/MEDIUM/LOW finding fixed
(task-gate priority short-circuit, MPS branch documented, 64-char
error truncation, QVQ regex coverage, 512-byte boundary test).

Two pre-existing v0.50.0 Part E tests migrated `base: test-llama` ->
`base: Qwen/Qwen2-VL-7B-Instruct` to clear the new probe.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:42:06 +05:00