Products¶
Mature, deployable applications built on genai-lab. Entries in this directory are things you can actually run — stable API, versioned checkpoints, inference docs, known limitations.
Products vs Applications¶
| Applications | Products (here) | |
|---|---|---|
| Claim | "Here's an approach you could use" | "Here's a thing you can run" |
| Code location | examples/<topic>/ scripts |
src/genailab/applications/<name>/ |
| API | Whatever fits the exploration | Stable public interface |
| Tests | Informal | Inference path covered |
| Artifacts | Optional | Versioned checkpoints with metadata |
| Baseline comparison | Nice to have | Required |
| Deployability | Not expected | Inference without training infra |
Applications are a bet on methodology. Products are a commitment to users.
Promotion Criteria¶
To graduate from docs/applications/<topic>.md to docs/products/<name>/,
the work must satisfy all of the following:
- Code maturity — implementation lives under
src/genailab/applications/<name>/(notexamples/), with a stable public API. Signature changes constitute a breaking change. - Evaluation — benchmarked against at least one published baseline. Results reproducible from a clean environment with the documented command.
- Testability — test suite covers the inference path at minimum (training path coverage is a plus but not required).
- Deployability — a CLI entry point (via
pyproject.toml [project.scripts]) or a library-level public function with stable signature. Inference must run without requiring the training-time infrastructure (e.g., no SkyPilot invocation insidepredict()). - Artifacts — trained checkpoints are versioned with metadata: (seed, data version / hash, training config, performance on the benchmark). Artifacts live either on a network volume or a public host (HF Hub), not in git.
- Documentation —
docs/products/<name>/README.mdcovers: - What the product does and does not do
- Installation and inference quickstart
- Expected performance on the benchmark, with confidence intervals
- Known limitations and failure modes
- Accompanying runnable notebook in
notebooks/<topic>/showing end-to-end use on a new input
Current Products¶
(none yet)
The perturbation prediction flagship is currently a Stage-2 application (docs/applications/perturbation_prediction.md) — methodology documented, implementation in progress. It becomes a product once the six promotion criteria above are met.
Demotion¶
Products can be demoted back to applications when they regress — e.g., an upstream dataset changes, a baseline comparison becomes invalid, or a dependency breaks the inference path. This is healthier than silently letting a stale product live in the product tier.
Adding a New Product¶
- Confirm all six promotion criteria are met (not "mostly met" — all).
- Create
docs/products/<name>/withREADME.mdfollowing the structure above. - Remove or archive the predecessor
docs/applications/<name>.mdif it exists (or update it to point to the product). - Add a one-line entry to "Current Products" above.
- Announce in a session summary:
dev/sessions/YYYY-MM-DD_<name>-graduated.md.