docs: model files build locally — hub-referenced models not supported (#1495) - #77
docs: model files build locally — hub-referenced models not supported (#1495)#77LukasWodka wants to merge 3 commits into
Conversation
… (#1495) Document the #1495 contract on the Customize Models page: a model file must build its architecture from local code; tracebloc does not fetch models, weights, tokenizers, or configs from an external hub (HuggingFace) at training time. Removes the retired model_id / hf_token 'additional variables' and adds the pretrained-weights-upload + tokenizer.json guidance and the strict weight-load note. Refs #1151. Documents #1495. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
saqlainsyed007
left a comment
There was a problem hiding this comment.
Content LGTM — accurate, and cleanly scoped. Verified:
- Both internal anchors resolve:
#use-pre-trained-weights→ the existing Use Pre-trained Weights heading, and the self-reference#models-build-locally-no-external-hubs→ this new section's heading. - The retired variables are fully removed — no dangling
model_id/hf_token/tokenizer_idreferences remain anywhere in the doc; the only mentions left are the two that deliberately name them as no-longer-supported. - The new section documents the #1495 contract at the right place (the canonical Customize Models page), and the strict weight-load Note matches the "build the same architecture" requirement.
Holding the formal approval (commenting, not approving) purely on your own prod-timing gate: docs develop auto-deploys to production, and this describes behavior that isn't live until backend#1505 + tracebloc-py-package#380 reach prod. The content is ready — approve/merge once those are deployed and you un-draft, per your note.
|
Checked the draft-blocker and it is discharged — but I am leaving this in draft, because verifying the blocker surfaced a claim in the diff that prod does not support. The stated blocker is goneBoth dependencies are on their prod branches (containment, not just "merged"):
So "un-draft once they're deployed" is satisfied. Why I did not un-draft itThe diff makes two claims. One is enforced on prod; the other is contradicted by it. ✅ "Models build locally (no external hubs)" — accurate and machine-enforced. There is a real gate: ❌ "Removes the retired
A field with a live serializer entry, a model column, and a pass-through into training parameters is not one that "fails upload". Note What I think this meansEither #1495's contract was only half-implemented — the hub-fetch gate landed, the additional-variable rejection did not — or the doc overstated it from the start. I have not diagnosed which, and I would rather say so than guess: the hub gate is clearly real, so this is not a case of nothing shipping. Suggested split: publish the hub-fetching section (it is accurate and enforced), and drop or reword the additional-variables removal until someone confirms which side is wrong. Happy to make that edit if you agree with the reading — I stopped short of rewriting the diff because which half is authoritative is a product call, not mine. This does deploy to production docs on merge, which is why I checked rather than trusting the three-week-old body. |
Two passages overstated the contract and were contradicted by both prod branches. Measured 2026-08-28: - SDK master, tracebloc/link_model_dataset.py:83,102-104,116,127-129 -- model_id, model_id_llm, hf_token and tokenizer_id are all in the ACCEPTED validate_kwargs set and all assigned. - backend main -- Experiment.py:467 hf_token column (default TEMP_HF_TOKEN), :339 tokenizer_id; ExperimentSerializer.py:114,143 accept both; and bus_client_util.py:182 passes hf_token THROUGH to the training parameters. So "no longer supported" and "must not declare" were both false: they are not rejected at upload. What IS enforced is the hub FETCH -- the bandit plugin rejects *.from_pretrained(...), torch.hub.load and the getattr route (bandit_tracebloc_model_validation, :21-31,:352). Those names appear nowhere in that plugin, so nothing refuses a declaration. The hub-fetching section is unchanged and now lists the calls that really are refused. The Additional-variables note says the variables are still accepted and simply cannot achieve a hub fetch, which is the actionable fact. Still a DRAFT: this auto-deploys to production docs, so un-drafting is Lukas call. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Corrected the false half in cb81211 — still a draft, because publishing to production docs is your call, not mine. I said last pass that I'd stopped short since "which half is authoritative is a product call." On re-reading, that was the wrong place to stop: the claim is measurably false against both prod branches regardless of which half you'd want to be authoritative, so removing a false statement doesn't preempt your decision. Only restoring it would. What was wrong, in two placesBoth said the variables are rejected. They are not:
What is actually enforcedThe hub fetch, and it's a real gate: The editThe hub-fetching section is unchanged and now lists the calls that really are refused. The Additional-variables note says the variables are still accepted and simply cannot achieve a hub fetch — which is the actionable fact for someone who has one in a working config and is wondering whether their upload will break. It won't; it just won't do anything. Anchor The original draft-blocker is separately discharged: One thing worth a ticket either way: if |
Documents the #1495 contract on the Customize Models page (
join-use-case/model-optimization.mdx):from_pretrained("<hub-id>"), nomodel_id/tokenizer_id/hf_token. Start from pretrained by downloading weights once and uploading them; ship atokenizer.jsonfor NLP.model_id/hf_tokenadditional variables (they now fail upload) and points to the new section.developauto-deploys to production, and this describes behavior that isn't live until backend#1505 + tracebloc-py-package#380 reach prod. Un-draft + merge once they're deployed.Refs #1151 · Documents #1495.
🤖 Generated with Claude Code