feat(recipes): add smollm3-3b-sft recipe (#271) - #582
Conversation
MakazhanAlpamys
left a comment
There was a problem hiding this comment.
The catalog and documentation changes are present, but this head is not mergeable yet. Issue #271 requires the model to be claimed in an issue comment before opening the PR; I found no SmolLM3 claim from the author in the issue history. The branch is also DIRTY/CONFLICTING against current main, and gh pr checks 582 reports no checks.
I independently ran the recipe/catalog suites (438 passed, 1 skipped) and Ruff. The required mutation exposed a coverage gap: changing the new recipe model from HuggingFaceTB/SmolLM3-3B to HuggingFaceTB/SmolLM3-WRONG still left the focused new-recipe/count tests green (8 passed), so the exact model identity is not load-bearing. Please add an exact model-id assertion, add the required claim comment, rebase onto current main, and rerun the full checks before requesting re-review.
8761b21 to
69cc65a
Compare
|
All three addressed on the current head
Local: 455 passed, 1 skipped; Ruff clean. The remaining pending checks are the CI approval gate (fork PRs sit |
MakazhanAlpamys
left a comment
There was a problem hiding this comment.
Re-review of current head 69cc65a against issue #271: the required claim is now present in the issue, the exact SmolLM3 model ID is asserted for both the recipe and parsed config, and the branch is rebased onto current main. No tests were deleted; docs and changelog are present. I independently ran the recipe/catalog suite (445 passed, 1 skipped) with PYTHONPATH=src and Ruff; mutating the model ID caused the exact-ID regression tests to fail. Approval is contingent on all 14 current-head checks completing successfully before merge.
SmolLM3 is a popular small/edge model with no recipe (the catalog had SmolLM2 in three sizes but no SmolLM3). Add smollm3-3b-sft — a declarative RecipeMeta mirroring the other small SFT recipes (LoRA r8, 8-bit, auto batch) — and bump the recipe count 158 -> 159 across the five doc-count sites and the four catalog-size checkpoints the sync guard enforces. Adds TestIssue271SmolLM3Recipe (mirrors the MakazhanAlpamys#278/MakazhanAlpamys#280 recipe-test pattern) pinning the exact model id HuggingFaceTB/SmolLM3-3B on both RecipeMeta.model and the parsed config.base, plus recipes show/use — so a wrong model id is caught (closes the coverage gap from review). Rebased onto current main (158 recipes). Closes MakazhanAlpamys#271
69cc65a to
682e696
Compare
|
Thank you @Srinivasan8888 for adding a focused, catalogued SmolLM3-3B SFT recipe with an exact model-ID regression assertion. I independently ran 445 focused recipe tests with 1 skip, Ruff, the full required CI matrix, and a mutation replacing the model ID; the mutation was caught by two tests. |
…MakazhanAlpamys#276) Review follow-up on MakazhanAlpamys#615. The fragment carried no credit. Applied in the house form the other 0.73.3 fragments use -- credit inline in the opening sentence, `(MakazhanAlpamys#276 by @Srinivasan8888 in MakazhanAlpamys#615)`, rather than appended after `Closes MakazhanAlpamys#276`, which would have repeated the issue number twice in one line. test_v07130.py::TestRecipes and test_v07132.py::TestAsrRecipes both assert `== 160` under a method named `test_catalog_size_is_159`. MakazhanAlpamys#582 renamed all three _158 -> _159 copies; this branch had renamed only the test_recipes.py one. A name that contradicts its own assertion is a trap for whoever bumps the count next. test_v07124.py::test_total_recipe_count_is_158 is left alone: it is stale on main already and predates this branch. Refs MakazhanAlpamys#276 Claude-Session: https://claude.ai/code/session_01S16V9Zwx9TrSEWXwLtyD4z
Closes #271.
What
Adds a ready-made recipe for SmolLM3-3B — a genuinely missing popular model. The catalog had SmolLM2 in three sizes (135M / 360M / 1.7B) but no SmolLM3, which is a strong, widely-used small/edge model.
smollm3-3b-sftis a pure declarativeRecipeMetamirroring the other small SFT recipes (LoRA r8/α16,target_modules: auto, 8-bit,batch_size: auto, 2048 ctx) — no GPU, fully CI-validated.Count sync
Adding a recipe moves the catalog 154 → 155, so this bumps every site the
test_recipe_count_is_syncedguard enforces:# Recipe catalog (N recipes)comment incatalog.pyCONTRIBUTING.md,docs/commands.md, and the twodocs/serving-and-export.mdcount linestest_catalog_size_is_154 → _155checkpoints (test_recipes.py,test_v07124.py,test_v07130.py,test_v07132.py), with a history line added to the running changelog docstring.Acceptance criteria
soup recipes show smollm3-3b-sftprints valid YAMLsoup recipes use smollm3-3b-sftwrites asoup.yamlthatload_config_from_stringloads without errorruff checkcleanpytest -k "recipe or catalog or sync"passes (286 passed locally)