初始化项目,由ModelHub XC社区提供模型
Model: art87able/unstuck-qwen2.5-0.5b-steps Source: Original Platform
This commit is contained in:
59
README.md
Normal file
59
README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
license: apache-2.0
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
library_name: transformers
|
||||
pipeline_tag: text-generation
|
||||
tags:
|
||||
- unstuck
|
||||
- task-breakdown
|
||||
- adhd
|
||||
- lora
|
||||
- build-small-hackathon
|
||||
- small-models
|
||||
language:
|
||||
- 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](https://huggingface.co/spaces/build-small-hackathon/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:
|
||||
|
||||
```json
|
||||
{"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/`](https://github.com/art87able/unstuck/tree/main/scripts/finetune).
|
||||
|
||||
## Usage
|
||||
|
||||
```python
|
||||
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.
|
||||
|
||||
- **Source:** https://github.com/art87able/unstuck
|
||||
- **Live app:** https://huggingface.co/spaces/build-small-hackathon/unstuck
|
||||
Reference in New Issue
Block a user