NeuroBait / README.md
Haris-Subrata's picture
Add Codex trace dataset link
487f387 verified
|
Raw
History Blame
4.18 kB
metadata
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:

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

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.