license, base_model, library_name, pipeline_tag, tags, language
license base_model library_name pipeline_tag tags language
apache-2.0 Qwen/Qwen2.5-0.5B-Instruct transformers text-generation
unstuck
task-breakdown
adhd
lora
build-small-hackathon
small-models
en

Unstuck — Qwen2.5-0.5B fine-tuned for ADHD task breakdowns

A tiny (0.5B) instruct model fine-tuned to turn one overwhelming task into tiny, timed, categorised steps in the exact JSON schema used by Unstuck (HF Build Small Hackathon, Backyard AI track).

It powers Unstuck's UNSTUCK_BACKEND=finetuned path — a fully local, serverless-free option that runs the same generate(prompt) -> str seam as the app's other backends.

What it does

Given an overwhelming task, it returns only:

{"steps":[{"text":"Open a trash bag and collect visible rubbish","category":"admin","est_minutes":5}, ...]}
  • each step a single concrete action starting with an imperative verb,
  • one category from admin · creative · errand · deep-work,
  • a positive-integer minute estimate, never above 25 (a hard app rule).

How it was built

  • Base: Qwen/Qwen2.5-0.5B-Instruct.
  • Data: 130 schema-valid breakdowns distilled from a strong serverless model (Qwen/Qwen3-30B-A3B-Instruct-2507 on Nebius Token Factory), each filtered through Unstuck's own validator so only on-contract examples survive. Purely synthetic — no user data.
  • Method: LoRA (r=16, α=32, dropout 0.05; q/k/v/o projections), 3 epochs, lr 2e-4, merged into the base. Final train loss ≈ 0.21.
  • Compute: a single Modal A10G GPU. Full pipeline (distill → train → verify): scripts/finetune/.

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("art87able/unstuck-qwen2.5-0.5b-steps")
model = AutoModelForCausalLM.from_pretrained("art87able/unstuck-qwen2.5-0.5b-steps")
# Feed it Unstuck's breakdown prompt (see unstuck.prompts.breakdown_prompt) and parse the JSON.

Or in the app: UNSTUCK_BACKEND=finetuned python app.py.

Limitations

A 0.5B model specialised for one narrow JSON task — it is not a general chat model. Outputs should still be schema-validated (the app does one repair retry on failure). Estimates are starting points; Unstuck recalibrates them to your real timings client-side.

Description
Model synced from source: art87able/unstuck-qwen2.5-0.5b-steps
Readme 2 MiB