Skip to content

feat(recipes): add smollm3-3b-sft recipe (#271) - #582

Merged
MakazhanAlpamys merged 1 commit into
MakazhanAlpamys:mainfrom
Srinivasan8888:feature/recipe-smollm3
Aug 28, 2026
Merged

feat(recipes): add smollm3-3b-sft recipe (#271)#582
MakazhanAlpamys merged 1 commit into
MakazhanAlpamys:mainfrom
Srinivasan8888:feature/recipe-smollm3

Conversation

@Srinivasan8888

Copy link
Copy Markdown
Contributor

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-sft is a pure declarative RecipeMeta mirroring 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_synced guard enforces:

  • the # Recipe catalog (N recipes) comment in catalog.py
  • CONTRIBUTING.md, docs/commands.md, and the two docs/serving-and-export.md count lines
  • the four test_catalog_size_is_154 → _155 checkpoints (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-sft prints valid YAML
  • soup recipes use smollm3-3b-sft writes a soup.yaml that load_config_from_string loads without error
  • ruff check clean
  • pytest -k "recipe or catalog or sync" passes (286 passed locally)
  • Recipe count updated consistently across docs + checkpoints

Srinivasan8888 pushed a commit to Srinivasan8888/Soup that referenced this pull request Aug 27, 2026

@MakazhanAlpamys MakazhanAlpamys left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Srinivasan8888

Copy link
Copy Markdown
Contributor Author

All three addressed on the current head 69cc65a8:

Local: 455 passed, 1 skipped; Ruff clean. The remaining pending checks are the CI approval gate (fork PRs sit action_required until a maintainer approves the run).

@MakazhanAlpamys MakazhanAlpamys left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
@MakazhanAlpamys
MakazhanAlpamys merged commit 596b828 into MakazhanAlpamys:main Aug 28, 2026
14 checks passed
@MakazhanAlpamys

Copy link
Copy Markdown
Owner

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.

Srinivasan8888 pushed a commit to Srinivasan8888/Soup that referenced this pull request Aug 31, 2026
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a ready-made recipe for a popular model (good first issue)

2 participants