Repository navigation
alignment-overview describes KTO data as (prompt, response, good?), but the KTO loader reads prompt, completion and label #965
Description
Summary
The "Alignment overview" user-manual page describes KTO as learning from "binary (prompt, response, good?) signals". Those are not the names the KTO loader reads: it requires prompt, completion and a boolean label. A reader who follows the page's wording and names their answer column response gets the same KeyError that #885 / #938 removed from the "Choosing a Trainer" table.
What happens
docs/usermanuals/en/concepts/alignment-overview.md:56 and the Turkish mirror at the same line (tr/concepts/alignment-overview.md:56, (prompt, response, iyi mi?)) name the KTO fields as response and good?.
_validate_trainer_columns raises KeyError: KTO trainer requires 'completion' and 'label' (boolean) columns … for any other shape (forgelm/data.py:600-607), and format detection routes only completion + label to KTO (forgelm/data.py:36-37). The KTO training page, the data-formats page and docs/guides/alignment.md already say completion + label; this bullet is the one place that still disagrees.
This is prose, not a column name in a table, which is why it was left out of #938 (one concern per PR).
Where
docs/usermanuals/en/concepts/alignment-overview.md:56docs/usermanuals/tr/concepts/alignment-overview.md:56forgelm/data.py:600-607(KTO column check, for reference)
Recommended fix
Name the real fields and keep the plain-language meaning of the label, in both languages. For example (English):
KTO — learns from binary
(prompt, completion, label)rows, wherelabelistruefor a desirable response andfalsefor an undesirable one. Use when you only have thumbs-up/down feedback.
The Turkish bullet keeps its structure and only swaps the field names (response → completion, iyi mi? → label, with the same true / false explanation). No wording beyond those names needs native review.
Out of scope
- The other items on the same page (DPO/SimPO memory multipliers, the sequence diagram) are tracked in [Wave 4] Low/info — Docs: docs/usermanuals/en/concepts/ #784. If a PR for [Wave 4] Low/info — Docs: docs/usermanuals/en/concepts/ #784 and this one touch the same lines (
:54-56), merge one before the other. - The
{prompt, completion}→ SFT row of the "Choosing a Trainer" table is a separate defect tracked in Documented SFT prompt/completion format is rejected with a KeyError that suggests trainer_type grpo (CR-A03-005) #403.
Acceptance criteria
- The KTO bullet names the columns the loader reads (
prompt,completion,label) in the English page and its Turkish mirror, in the same PR. - A
### Fixedentry is added under[Unreleased]inCHANGELOG.md. -
tools/check_bilingual_parity.py --strict,tools/check_bilingual_code_blocks.py --strict,tools/check_anchor_resolution.py --strict,tools/check_tr_links_prefer_mirror.py --strictandtools/check_usermanual_self_contained.py --strictpass.
Related
- 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 / docs: fix KTO data-shape row to use completion column #938 — the same wording defect in the "Choosing a Trainer" table (fixed).
- [Wave 4] Low/info — Docs: docs/usermanuals/en/concepts/ #784 — other items on this page.
Found while reviewing PR #938. Verified against development at ea82d68.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
cemililik commentedon Oct 17, 2026
Where to start
Thanks for taking a look. Please confirm the issue is unassigned and comment before starting so work does not overlap.
This is a two-line documentation fix: one bullet, in two languages. Start with these files on
development:Replace
(prompt, response, good?)with(prompt, completion, label)and say whatlabelmeans, as suggested in the issue. Change nothing else on the page: the other items are tracked in #784, and if a PR for it touches lines 54-56 too, whichever merges second will need a small rebase.In the Turkish page, keep the sentence as it is and swap only the field names (
response→completion,iyi mi?→label), with the sametrue/falseexplanation as the English one. If you are unsure about the Turkish phrasing, say so in the PR and a maintainer will review it; please do not machine-translate new prose (seedocs/standards/localization.md).There is no code change, so no new test is needed. The loader's KTO check is already covered by
tests/test_data.py; if you want to confirm what the page should say, this should pass on your branch:Run these guards before opening the PR:
Add a one-line entry under
[Unreleased]→### FixedinCHANGELOG.md, newest entry first; the existing ones show the style.Open the PR against
developmentwithFixes #965in the description. Please do not commit screenshots or other files that are not part of the fix, and keep the English and Turkish pages structurally aligned.