Instructions to use hbin0701/opsd-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use hbin0701/opsd-lora with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
| # Teacher-context variants | |
| Each **variant** is one way to build the teacher's refined trajectory `r` β a | |
| self-contained folder that overrides only what differs from the live default. The | |
| shared machinery (HTTP transport, MC rollouts, divergence metrics, the batched | |
| training loop) lives in the core and is **never copied**, so adding a variant never | |
| adds an `if variant == ...` branch. | |
| ## Layout | |
| ``` | |
| agents/variants/ | |
| base.py TeacherVariant β the interface + shared defaults + t* helpers | |
| __init__.py registry: load(name) / available() | |
| <variant>/ | |
| utils.py a TeacherVariant subclass (+ VARIANT = TheSubclass) | |
| prompts.yaml strategy + maker_system_prompt (+ optional teacher_user wrapper) | |
| README.md what it is, the bet, the pre-registered prediction | |
| ``` | |
| ## The interface (what a variant may override) | |
| | method | default | overridden by | | |
| |---|---|---| | |
| | `resolve_prefix(problem, solution, rollout, maker)` | maker rewrite, fall back to reference | P4 (answer-only, maker-free), P6 (captures diagnosis quote) | | |
| | `accepts(prefix, reference)` | `is_acceptable_prefix` (len β₯ 80 β§ boxed-match) | P2 / P4 (answer-only bypass: boxed-match only) | | |
| | `build_ctx(tok, client, problem, prefix, cfg)` | user turn + `<think>` analysis + close + transition | P5 (reactive wrapper), P4 (no thinking) | | |
| | `t_star(prefix, rollout, tok)` | `difflib` first non-matching block | P3 (`lcp`), P6 (quote-match) | | |
| | `thinking` | `True` | P4 (`False`) | | |
| Everything else β `score_topk`, `mc_branch`, `select_divergent`, M1βM3, the | |
| trainer loss β is shared and calls these methods. | |
| ## Two seams this relies on (both in `agents/maker.py::build_prefix`, backward-compatible) | |
| - `prompts=` β a variant supplies its own `{strategy, maker_system_prompt, | |
| maker_user_template}` instead of a file swap. | |
| - `accept=` β a variant supplies its own gate (e.g. answer-only bypass). | |
| ## Usage | |
| ```python | |
| from agents.variants import load, available | |
| v = load("p1_surgical") # available() -> ['p1_surgical', 'p2_...', ...] | |
| prefix = v.resolve_prefix(problem, solution, rollout, maker_client) | |
| ctx = v.build_ctx(tok, client, problem, prefix, cfg) | |
| tstar = v.t_star(prefix, rollout, tok) | |
| ``` | |
| ## Scope | |
| Variants are the prompt-space ranking substrate (probe / Stage-1). The loss-side | |
| mask and per-sample gate (the reactive-constructor spec) are deferred; when they | |
| land, `build_ctx`'s declarations feed the trainer but generation stays shared. | |
| ## Adding one | |
| Copy the closest folder, edit `prompts.yaml` + the few overridden methods in | |
| `utils.py`, write the `README.md`. No core edits. | |