File size: 4,184 Bytes
330e897
 
f690259
 
330e897
 
 
f690259
d516f3e
330e897
 
f690259
 
6a3bf52
 
f690259
cb2e11b
 
 
 
 
f690259
cb2e11b
 
 
 
f690259
6a3bf52
cb2e11b
 
 
 
 
 
 
 
 
f690259
6a3bf52
 
f690259
cb2e11b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f690259
6a3bf52
 
 
cb2e11b
 
6a3bf52
 
cb2e11b
 
 
 
 
f690259
 
 
 
c32e43b
f690259
 
c32e43b
 
f690259
 
6a3bf52
 
 
cb2e11b
6a3bf52
cb2e11b
c32e43b
cb2e11b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487f387
cb2e11b
 
 
c32e43b
cb2e11b
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
---
title: NeuroBait
colorFrom: green
colorTo: blue
sdk: gradio
app_file: app.py
pinned: false
license: apache-2.0
short_description: An ADHD-friendly space and gentle boost for your everyday.
---

# NeuroBait

NeuroBait is an ADHD-friendly companion for task initiation: a warm space and a
gentle boost for the moment when starting feels heavier than the task itself.

It is built for a very specific moment: the user already knows the task matters,
but the first move still feels too heavy. Instead of turning that friction into
a productivity lecture, NeuroBait replies with short, warm, agency-preserving
language. It avoids shame, streak pressure, diagnostic framing, and visible
prompt labels such as `Micro-action`, `Hook`, or `Stakes`.

This Space runs a fine-tuned small model through the app itself. It does not call
an external hosted LLM API for the chat response.

## Build Small Hackathon Submission

- Primary track: **Backyard AI**
- Why this track: NeuroBait focuses on a real everyday ADHD and
  neurodivergent friction - starting the thing that already matters - and turns a
  small model into a practical companion for that moment.
- Bonus quest fit: **Well-Tuned**, because the Space uses a published LoRA
  adapter fine-tuned for NeuroBait's voice and behavior.
- Bonus quest fit: **Off-Brand**, because the app uses custom Gradio styling and
  product copy instead of the default chatbot shell.
- Sponsor fit: **Modal-powered**, because fine-tuning and generation evaluation
  were run on Modal GPU infrastructure.

NeuroBait was fine-tuned with Modal and deployed as a Gradio app on Hugging Face
ZeroGPU.

## What The App Does

The app is intentionally narrow. NeuroBait should:

- respond in concise, natural prose,
- preserve the user's agency,
- avoid guilt framing and productivity shame,
- ask one light question when context is sparse,
- offer one tiny concrete action when enough context exists,
- keep the tone gentle without pretending to be a therapist.

The interface includes a small mood check-in so the same model can adapt its
response style slightly:

- Calm
- Tired
- Anxious
- Focused

The mood input does not change the safety scope. It only nudges the app-level
prompting and presentation.

## Model And Runtime

- Base model: `unsloth/gemma-3-12b-it`
- Adapter: `build-small-hackathon/NeuroBait`
- Method: 16-bit LoRA via Unsloth
- Training hardware: Modal H100 80GB GPU
- Space runtime: `transformers` + `peft`
- Quantization: 4-bit bitsandbytes NF4 inside the `@spaces.GPU` window

Unsloth is used for training, not for Space inference. The deployed app uses the
standard `transformers` + `peft` path so the public demo can load the Gemma 3 12B
base model plus the NeuroBait LoRA adapter on Hugging Face ZeroGPU.

## Runtime Configuration

Expected environment variables:

```text
BASE_MODEL=unsloth/gemma-3-12b-it
ADAPTER_ID=build-small-hackathon/NeuroBait
LOAD_IN_4BIT=1
MAX_NEW_TOKENS=220
PREWARM=1
```

Weights are pre-warmed to the Space cache on CPU at import so the GPU window can
focus on quantized loading and generation.

## Training And Evaluation Summary

Run #4 used a small bilingual Indonesian/English conversational dataset:

- Train conversations: 270
- Eval conversations: 30
- Training steps: 102
- Train loss: 1.7501
- Eval loss: 1.8844

The loss is only a weak diagnostic for this project. The main target is behavior:
shorter responses, warmer task-initiation support, and fewer leaked internal
structure labels.

Generation eval over 8 held-out or novel prompts:

- Base persona average: 2.25 / 4
- Fine-tuned persona average: 4.0 / 4
- Base average words: 80.4
- Fine-tuned average words: 55.1
- Base label leaks: 5
- Fine-tuned label leaks: 0

## Related Repos

- Model adapter: https://huggingface.co/build-small-hackathon/NeuroBait
- Codex trace dataset: https://huggingface.co/datasets/build-small-hackathon/NeuroBait-Codex-Traces
- Source repo: https://github.com/Subrata15/NeuroBait-Build-Small-Model

## Safety Scope

NeuroBait is not a medical device, diagnostic tool, therapist, emergency support
system, or replacement for professional care. It is a small-model demo for
gentle task-initiation support.