Hillock – Local, brain-inspired AI memory using SQLite and HDC

roandejager1 pts0 comments

GitHub - roandejager/Hillock · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

roandejager

Hillock

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

master

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>41 Commits<br>41 Commits

.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

config.py

config.py

database.py

database.py

evaluate_hillock_PROTO_ish.py

evaluate_hillock_PROTO_ish.py

ingestor.py

ingestor.py

main.py

main.py

plasticity.py

plasticity.py

requirements.txt

requirements.txt

reservoir.py

reservoir.py

View all files

Repository files navigation

Hillock 🧠

Hi! This is Hillock , which is basically a local, personal memory system I've been hacking on because standard vector databases always felt way too heavy and complicated just to run a quick, offline chatbot on my own computer.

⚠️ Heads up: This project is very much a work in progress, and honestly, it isn't all that. It's just a fun personal experiment I'm working on to see if we can use brain-inspired math to make local AI memory better. It is definitely not a finished, production-ready product, so expect some clunky parts and weird bugs.

📊 Quick Performance Baseline

I put this prototype through a massive, highly rigorous 30-sentence scientific benchmark with complex sentence structures, deep distractors, and tricky "hard negative" queries. Running a tiny local Qwen 1.5B model, here is how it did:

Retrieval Accuracy : 30.0% (It retrieved the correct facts for some of the highly complex queries, but the tiny model missed others during extraction).

Gate Accuracy : 30.0% (It successfully blocked many unanswerable/hallucinatory queries, though some leaks occurred due to tiny model extraction errors).

(For a more detailed technical breakdown of these metrics and why running a tiny 1.5B model on complex grammar is actually quite hard, check out the Benchmark section at the bottom.)

⚙️ How It Works (The General Flow)

Here is a quick look at how data moves through the system:

[Raw Text / PDFs]<br>▼ (Parallel Ingestor)<br>[ Ollama (Qwen2) ]<br>│ │<br>▼ ▼<br>[SQLite Graph] [Hebbian Memory]<br>│ │<br>└─────┬──────┘<br>[VSA/HDC Reservoir] ──► [Gating Controller (Hillock)]

(Note: This ASCII diagram was made with AI, so it might not be 100% correct or perfectly aligned, but it shows the general idea of how things connect.)

Basically, it splits the work into a few different layers:

💾 SQLite Graph : Stores the permanent, hard facts as simple triples (like Marie_Curie -> born_in -> Poland) so the system has a solid ground truth.

⚡ Hebbian Plasticity : Dynamically tracks which entities are being talked about in the chat and strengthens the connections between them, like a simple digital synapse.

🌀 Hyperdimensional Computing (HDC) : Uses a 10,000-dimensional vector that constantly updates with conversational history, which helps the system resolve pronouns (like "he" or "she") and decide when to block a query to prevent hallucinations.

🚀 Quick Start (How to run it)

If you actually want to try running this clunky prototype, it is highly recommended to set up a clean Python virtual environment so you do not mess up your global packages. You will also need Ollama installed and running locally.

1. Clone and Navigate

git clone https://github.com/roandejager/Hillock.git<br>cd Hillock

2. Set Up Virtual Environment

# Create the environment<br>python -m venv .venv

# Activate it (Windows)<br>.venv\Scripts\activate

# Activate it (Mac/Linux)<br>source .venv/bin/activate

3. Install Dependencies & Pull Model

pip install -r requirements.txt<br>ollama pull qwen2:1.5b

4. Start the Chat Console

python main.py

Inside the console, you can use these commands:

/ingest [filepath] — Index a local .txt or .pdf file.

/mode [strict/balanced/conversational] — Change how conversational the AI is.

/reset — Wipe the SQLite database and reset the HDC memory space.

📊 Detailed Technical Benchmarks

Here is the exact diagnostic output from the upgraded, highly rigorous evaluation script (evaluate_hillock_PROTO_ish.py):

*...

hillock local memory search model sqlite

Related Articles