[Phase 16] S4 — Dependency-range truth for the six advertised trainers
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 20/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- huggingface, python
- Lĩnh vực
- ci-cd, machine-learning
Hướng nghiên cứu
Start with the roadmap plan at docs/roadmap/phase-16-trust-surface-hardening.md lines 385-414, then find where the trainer_type enum is consumed and where the TRL imports happen. The change adds a _import_trl_symbol resolver with an trl.experimental fallback, and routes the four reward paths in forgelm/grpo_rewards.py through _completion_text(). Done means all six trainer types construct args and trainers at the declared minimum and current TRL versions with zero skips under pytest -rs, and the reward parity matrix passes.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Roadmap · Phase 16, step S4 · size L · 2 unit(s) · planned in
docs/roadmap/phase-16-trust-surface-hardening.md:385-414
Summary
README, the site and the trainer_type enum advertise six alignment methods and both of TRL's data formats; the declared dependency contract delivers neither. ORPOConfig, CPOConfig, ORPOTrainer and CPOTrainer are absent from the top-level trl namespace across the whole declared trl>=1.0.0,<2.0.0 range (checked on the 1.0.0, 1.7.1 and 1.9.2 wheels), so pinning an upper bound cannot fix it. Separately, TRL hands conversational completions to custom rewards as message lists, and all four built-in reward paths assume str.
Units
| Unit | Tracked by (October 2026 review) |
|---|---|
F-W20260729-GAP-03 |
#105 · #106 |
F-W20260729-CORE-02 |
#476 · #708 |
Decisions this step executes
- C-10 — ORPO / SimPO on a dependency range that exports neither: route through
trl.experimental.
Plan
- Add a version-aware
_import_trl_symbolresolver that falls back totrl.experimental.orpo/trl.experimental.cpo, logs one INFO line per fallback naming the instability, and raises an actionable config-error-shaped failure naming the installedtrl.__version__when neither location works. Never setTRL_EXPERIMENTAL_SILENCE(a silent import fallback). - Add
_completion_text()toforgelm/grpo_rewards.pyas the single canonicalisation point, with a documented policy, and route all four reward paths through it. Neverstr(list).
Exit criteria
- All six
trainer_typevalues construct training args and a trainer at both the declared minimum and the resolver-current endpoint with zero skips (asserted withpytest -rs). - A missing advertised trainer class fails; it never
pytest.skip()s. - A parity matrix proves
f(['…']) == f([[{'role':'assistant','content':'…'}]])for all four reward paths, and flat-string outcomes are byte-identical to the baseline. - Two real dependency resolutions (declared minimum and current endpoint) run in CI with the zero-skip assertion enforced.
How to deliver
- One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
- A reproducer that is red before the fix and green after; the full gauntlet from
CLAUDE.mdpasses under./.venv/bin/python. - Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
- A step that grows a deferred module carries its
budget_historyjustification in the same diff; a widened guard rolls out non-strict first, then flips. - Commit bodies cite
Absorbs F-W20260729-…; the CHANGELOG[Unreleased]section gets an entry only for a change a user or library consumer can observe (decision C-20).
Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.
- Ngôn ngữ chính
- Python
- Star
- 9
- Fork
- 1
- Merge trung bình
- 8 giờ 36 phút
- Pull request đã merge (30 ngày)
- 49
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của HodeTech/ForgeLM
-
area: site bug good first issue severity: low wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
HodeTech/ForgeLM#961 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: dev-tooling bug severity: low source: roadmap wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Trend-tracking jq recipe prints evaluation_completed=false as 'n/a', because jq's // operator treats false like null (F-W1-DOCS-TRAIN-16)Có thể đã có người làm @yuefdev đã nhận 5 ngày trước. Đang mởdocumentation good first issue severity: low source: review-2026-09 wave: 4
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 80/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của HodeTech/ForgeLM
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
gramaziokohler/compas_timber#870 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
autowarefoundation/autoware_carla_scenario#500 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue priority: low size: XS testing
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
cubrid-lab/cubrid-mcp-server#385 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue priority: low size: S testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100