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):
*...