You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Choosing-a-trainer table documents KTO rows as {prompt, response, label}, but the KTO loader requires a completion column (F-W1-DOCS-TRAIN-02) #885
Wave 3 · group W3 Docs · highest severity Medium · 1 finding(s) · effort docs fix
Summary
The "What to look at in your data" table says {prompt, response, label: bool} rows mean KTO. The KTO loader requires completion and label and stops with a KeyError on response, so data shaped the way the page recommends does not load.
Primary finding
F-W1-DOCS-TRAIN-02 — The choosing-a-trainer table names the wrong KTO answer column
severity Medium · confidence high · checked against the loader
What happens.docs/usermanuals/en/concepts/choosing-trainer.md:51 and the Turkish mirror at the same line. _validate_trainer_columns raises KeyError: KTO trainer requires 'completion' and 'label' (boolean) columns … (forgelm/data.py:600-607). The row above it (:49, {prompt, completion} → SFT) is the SFT-format defect tracked in #403; that issue now lists this page too.
The KTO branch of _validate_trainer_columns names only completion and label; both table rows are unchanged on development.
Recommended fix. Change the KTO row to {prompt, completion, label: bool} in both languages, matching the KTO page and the loader. Settle the SFT row (:49) with whatever #403 decides for the SFT format.
Related.#403 — the SFT row of the same table; fix both rows together if the PRs overlap.
Acceptance criteria
Every data shape in the table loads with the trainer it recommends.
Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
The finding is resolved or explicitly closed with a reason.
Found by the September 2026 independent review of ForgeLM against commit cab2947 and re-verified against development at f94595f on 2026-10-09. Code links point at cab2947; line numbers may have moved since. Finding IDs (F-W1-…) are stable references for this backlog.
Change the KTO table row to prompt/completion/label in both languages, matching the KTO loader. Keep trainer selection explicit; this table does not auto-select a trainer. Check each row touched against its loader; do not introduce a runtime change.
Adjacent SFT wording is tracked separately; coordinate with #403 if editing that row.
Run the focused tests:
pytest tests/test_data.py --no-cov
Run these guards/checks as applicable to the changed files:
If user-facing documentation changes, update the existing Turkish mirror in the same PR; keep commands, code and terminal output in English and structurally aligned. English-only contributor standards need no new mirror.
Open the PR against development with Fixes #885 once every finding is resolved or explicitly closed with a reason; use Refs #885 for partial work and list the resolved finding IDs.
Activity
cemililik commentedon Oct 11, 2026
Where to start
Thanks for taking a look. Please confirm the issue is unassigned and comment before starting so work does not overlap.
Start with these files on
development:Change the KTO table row to prompt/completion/label in both languages, matching the KTO loader. Keep trainer selection explicit; this table does not auto-select a trainer. Check each row touched against its loader; do not introduce a runtime change.
Adjacent SFT wording is tracked separately; coordinate with #403 if editing that row.
Run the focused tests:
Run these guards/checks as applicable to the changed files:
If user-facing documentation changes, update the existing Turkish mirror in the same PR; keep commands, code and terminal output in English and structurally aligned. English-only contributor standards need no new mirror.
Open the PR against
developmentwithFixes #885once every finding is resolved or explicitly closed with a reason; useRefs #885for partial work and list the resolved finding IDs.docs(changelog): record the KTO data-shape fix