File size: 6,795 Bytes
330e897
 
f690259
 
330e897
 
e6c3ab3
f690259
d516f3e
e6c3ab3
 
 
 
 
 
 
 
 
330e897
 
2220af9
 
 
 
f690259
 
6a3bf52
 
f690259
2220af9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dc985cb
09edc34
2220af9
 
 
 
f690259
2220af9
 
 
cb2e11b
 
f690259
6a3bf52
2220af9
 
 
cb2e11b
 
2220af9
 
 
cb2e11b
 
f690259
6a3bf52
 
f690259
2220af9
cb2e11b
2220af9
 
 
 
 
cb2e11b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2220af9
 
 
 
 
 
 
 
 
 
 
 
cb2e11b
f690259
6a3bf52
 
 
cb2e11b
 
6a3bf52
 
cb2e11b
2220af9
 
cb2e11b
2220af9
f690259
 
c32e43b
f690259
 
c32e43b
 
f690259
 
6a3bf52
 
 
cb2e11b
6a3bf52
cb2e11b
c32e43b
cb2e11b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2220af9
 
 
 
 
 
 
 
 
 
 
 
 
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
---
title: NeuroBait
colorFrom: green
colorTo: blue
sdk: gradio
app_file: app.py
pinned: true
license: apache-2.0
short_description: An ADHD-friendly space and gentle boost for your everyday.
tags:
  - track:backyard
  - sponsor:openai
  - sponsor:modal
  - achievement:offgrid
  - achievement:welltuned
  - achievement:offbrand
  - achievement:sharing
  - achievement:fieldnotes
---

<p align="center">
  <img src="assets/neurobait-logo.jpg" alt="NeuroBait logo" width="420" />
</p>

# 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 started from a simple observation: sometimes the hard part is not knowing
what to do. The hard part is crossing the gap between knowing and starting. A
to-do list can be technically correct and still feel like one more thing to
carry. NeuroBait is built for that freeze moment.

Instead of giving a productivity lecture, NeuroBait tries to offer a small
spark: short, warm, agency-preserving language that reconnects the user with
what matters and lowers the first move until it feels possible. No shame, no
streak pressure, no diagnostic framing, and no visible prompt labels like
`Micro-action`, `Hook`, or `Stakes`.

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

## Try It

- Live Space: https://huggingface.co/spaces/build-small-hackathon/NeuroBait
- Direct app host: https://build-small-hackathon-neurobait.hf.space
- Demo video: https://www.youtube.com/watch?v=-EJ06hOgyd0
- Social post: https://x.com/hd_subrata/status/2066448521881059735
- Field Notes: https://huggingface.co/blog/build-small-hackathon/neurobait-adhd
- Model adapter: https://huggingface.co/build-small-hackathon/NeuroBait
- Source repo: https://github.com/Subrata15/NeuroBait-Build-Small-Model

## Sample Chat

<p align="center">
  <img src="assets/example-chat.png" alt="Example NeuroBait chat screenshot" width="760" />
</p>

## Build Small Hackathon Submission

- Primary track: **Backyard AI**
- Why this track: NeuroBait was built from a real household problem and a real
  daily friction - the moment when a person already knows the task matters but
  still cannot begin.
- 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,
  product copy, mood input, and a NeuroBait-specific chat experience 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 NeuroBait Does

The app is intentionally narrow. NeuroBait does not try to become a therapist,
planner, diagnosis tool, or productivity operating system. It is designed for
one useful behavior: helping a stuck person find a lighter first move.

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.

## Why Fine-Tune?

The base model is capable, but capability alone was not the target. Out of the
box, a model often responds with helpful-looking structure: long paragraphs,
bold labels, bullet lists, and generic encouragement. For someone already
overwhelmed, that can become another wall of text.

The fine-tune was trained to learn NeuroBait's voice and behavior layer:
shorter responses, warmer framing, fewer assumptions, and no leaked internal
recipe labels. The goal was not to make a general assistant. The goal was to
make the first sentence feel less heavy.

## 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.

Expected runtime 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

## Community Attention

After publication, NeuroBait drew organic attention from both AI community
accounts and real users who reposted or shared the project:

- LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7470126428928319488/
- Instagram: https://www.instagram.com/p/DZZw6UKAj0N/?img_index=1
- LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7470052176942415872/
- LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7470087187074572288/
- X: https://x.com/AiquestAcademy/status/2064301066733101313
- X: https://x.com/Jorgebanuelosmx/status/2064317026664059034
- X: https://x.com/amphetamarina/status/2064322048659279917

## 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.