Getting Started

Get Rich Learning running on your machine in under 5 minutes. Choose between the embedded LiteDB backend (zero setup) or the Neo4j backend (server-based, with graph visualisation).

Prerequisites

Install

git clone https://github.com/Minu476/rich-learning.git
cd rich-learning
dotnet restore
dotnet build

Run Your First Benchmark

The fastest way to see Rich Learning in action is the Split-MNIST benchmark with the embedded LiteDB backend:

dotnet run -- SplitMnist --litedb

This trains on 5 sequential digit pairs (0/1, 2/3, 4/5, 6/7, 8/9), then tests retention on all previous tasks. Expected result: 100% retention.

Available Commands

Command Description
SplitMnist --litedb Run Split-MNIST continual learning benchmark
SplitAudio --litedb Run Split-Audio (FSD50K) benchmark
Compare Run Split-MNIST on both backends, print timing comparison
Benchmark Performance benchmark (cosine distance, matmul, MLP step)
Demo --litedb Interactive 3-episode graph exploration demo

Using Neo4j Backend

To use Neo4j instead of LiteDB, start a Neo4j instance and set environment variables:

# Start Neo4j (Docker)
docker run -d --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/richlearning \
  neo4j:5

# Set connection info
export NEO4J_URI=bolt://localhost:7687
export NEO4J_USER=neo4j
export NEO4J_PASSWORD=richlearning

# Run without --litedb flag
dotnet run -- SplitMnist

Docker (Full Stack)

A docker-compose.yml is included for running both Neo4j and the app together:

docker compose up --build

This starts Neo4j on port 7474/7687 and runs the Split-MNIST benchmark automatically.

Next Steps