Part of #22 · Tags: [Cognitive] [Agnostic] · Supersedes the cross-host slice of #32 · Deferred (see trigger below)
Let a routing rule point preferred_model / eval_shadow_models at a HuggingFace model repo; Conduct resolves it, stages it locally, and serves it through the same swap/dispatch path as a named local model.
- task_type: code_generation
preferred_model: gemma4:e4b # local tags still work
eval_shadow_models:
- { model: gemma4:12b, rate: 1.0 }
- { model: "huggingface://gotoplanb/gemma-e4b-wander-dpo@<rev>", rate: 1.0 }
Framing — identity-agnostic (this is the whole point)
Conduct does not know or care whether a referenced model is "ours," a fine-tune, or a stranger's repo. huggingface://gotoplanb/gemma-e4b-dpo@v3 and huggingface://google/gemma-3-4b-it are the same kind of thing — a model source to resolve and serve. There is no special "register our checkpoint" handshake.
This dissolves the cross-host push problem the original version of this issue carried: with Conduct + Wander on separate hosts, there is nothing to push into Conduct. The handoff is one-directional and clean:
Wander: pull DPO data (client key, #41) → train → PUBLISH checkpoint to HF (client's job)
Conduct: routing rule references huggingface://<repo>@<rev> → PULL + serve (just a model source)
So this is a generic capability ("serve any HF model"), not a fine-tune-registration feature — same path a future user would use to point Conduct at any community model. Responsibilities: Conduct produces data + serves models; the client owns training + publishing. (Publishing to HF is never Conduct's job.)
Acceptance
- A rule referencing
huggingface://<repo>@<rev> resolves and the worker dispatches to it.
@<rev> is honored (pin to a commit for reproducible benches).
model_used echoes the repo@rev string so downstream tools group by it.
- A failed pull (404 / auth / transient) surfaces in the job's
error — never silently falls back to the primary.
- Private-repo pulls use Conduct's own
HF_TOKEN (env), not client creds.
- One test: register a small public HF model, run one job through it, assert the result.
Open design questions (settle at build time)
- Revision pinning: SHA only (immutable) vs also tag refs (mutable on HF). Lean SHA for reproducible lift reports.
- Quantization: HF repos can ship multiple weights (bf16, q4_k_m…). Reference syntax to pick one — e.g.
...@<rev>#q4_k_m.
- Caching: lazy on first request vs pre-warm on routing-config load; keep a local mirror of pulled snapshots.
Why deferred
No checkpoint exists to serve yet (wander#7 hasn't run). Trigger: build this when wander#7 produces a checkpoint and wander#8 needs it benched — at that point the exact repo/rev, format, size, and quant are known, so the design questions above answer themselves.
Related
Part of #22 · Tags:
[Cognitive][Agnostic]· Supersedes the cross-host slice of #32 · Deferred (see trigger below)Let a routing rule point
preferred_model/eval_shadow_modelsat a HuggingFace model repo; Conduct resolves it, stages it locally, and serves it through the same swap/dispatch path as a named local model.Framing — identity-agnostic (this is the whole point)
Conduct does not know or care whether a referenced model is "ours," a fine-tune, or a stranger's repo.
huggingface://gotoplanb/gemma-e4b-dpo@v3andhuggingface://google/gemma-3-4b-itare the same kind of thing — a model source to resolve and serve. There is no special "register our checkpoint" handshake.This dissolves the cross-host push problem the original version of this issue carried: with Conduct + Wander on separate hosts, there is nothing to push into Conduct. The handoff is one-directional and clean:
So this is a generic capability ("serve any HF model"), not a fine-tune-registration feature — same path a future user would use to point Conduct at any community model. Responsibilities: Conduct produces data + serves models; the client owns training + publishing. (Publishing to HF is never Conduct's job.)
Acceptance
huggingface://<repo>@<rev>resolves and the worker dispatches to it.@<rev>is honored (pin to a commit for reproducible benches).model_usedechoes therepo@revstring so downstream tools group by it.error— never silently falls back to the primary.HF_TOKEN(env), not client creds.Open design questions (settle at build time)
...@<rev>#q4_k_m.Why deferred
No checkpoint exists to serve yet (wander#7 hasn't run). Trigger: build this when wander#7 produces a checkpoint and wander#8 needs it benched — at that point the exact repo/rev, format, size, and quant are known, so the design questions above answer themselves.
Related