Fizzbot

Fizzbot

Overview

Fizzbot is a Discord-style chat model trained on the third-year Discord server for my Engineering Physics cohort. The project started after a proof-of-concept at a Fizz talent show, where my friend Bram Banik demoed a simple test version. I wanted to see how far I could take the idea if I built the whole pipeline end-to-end: data prep, training, inference tooling, and an actual Discord bot.

Training runs on my friend Ronny Cravioto-Ross' DGX Spark, and everything else is designed so I can iterate locally without too much friction.

Under the hood, Fizzbot is a retraining effort on top of an existing base model rather than training from scratch. I chose Mistral-7B (v0.1) as the base because it gives a strong quality/size tradeoff and works well with QLoRA for faster iteration.


Project Overview

The basic loop looks like this:

  1. Export Discord logs (Discrub JSON).
  2. Clean and normalize messages into a consistent schema.
  3. Build training examples that preserve speaker identity using tokens like <S0> ... <EOT>.
  4. Train a causal language model (GPU/QLoRA when available, CPU smoke tests when not).
  5. Run inference either in a CLI for quick testing, or behind a Discord bot that replies when pinged.

My Contributions

This project has two halves (Python ML + Rust bot), and I worked across both.


Challenges

Some of the tricky parts were not the "train a model" step, but everything around it:

  1. Cleaning Discord data without deleting the personality.
  2. Preserving speaker identity across long contexts (and making the output decodable again).
  3. Keeping the bot integration reliable when the model process is slow, chatty, or crashes.

Technical Highlights

Data Pipeline

The generator converts Discrub exports into JSONL training examples:

Training

Training is driven by YAML configs:

Inference CLI

The inference tool supports:

Discord Bot (Rust)

The Discord bot is built in Rust with Serenity and launches the LLM process as a child task:


Repository

github.com/georgesleen/fizzbot-2


Other Media

Example text