- Python 97.1%
- Makefile 2.9%
| data | ||
| docs | ||
| incoming | ||
| outgoing | ||
| results | ||
| scripts | ||
| serve | ||
| tests | ||
| titlebert | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| START-HERE.md | ||
TitleBERT for the M5 Pro Mac
A small program that reads a short string and decides whether it is a job title, something else (a name, a company, a department, a phone, junk, …), or not sure.
This folder is self-contained. Clone it, install once, train once, then score your own files. Training data is already inside.
Repo (public): https://git.binary.ovh/brahm/titlebert-mac
Production machine this is built for: Apple M5 Pro, 48 GB unified RAM. On that Mac it uses the 2025 multilingual encoder mmBERT-base (307 million knobs, 1,800+ languages).
If you only remember three commands after install:
source .venv/bin/activate
make all-mac # check, test, prepare, train, eval, verify
make score FILE=incoming/your.csv
Start here
- Read docs/MAC-GUIDE.md — copy, install, train, read the scores, then score production data in a dev folder.
- Read docs/GOALS.md — what precision, recall, and validity mean, and the pass/fail floors.
- Skim docs/IMPROVEMENTS.md — what was wrong in the lab project and what this repo fixes.
- Skim docs/DESIGN.md — why 307M on this Mac, and why more RAM still will not do a billion rows in 12 hours.
What “done” looks like
| Rung | Command that proves it | You may then… |
|---|---|---|
| Code works | make test + make verify-setup |
Train |
| Lab ready | make verify — all required gates PASS |
Score a labeled slice of your file |
| Dev ready | Your labeled slice hits the same floors | Score the full extract |
| Production ready | abstain goes to a person; you spot-check accepts |
Load accepts into the system |
This repo automates the first two rungs. The last two need your file and a person.
Clone (public)
git clone https://git.binary.ovh/brahm/titlebert-mac.git
cd titlebert-mac
make install
source .venv/bin/activate
make check
make check must print profile: mac-m5-pro and metal_mps True.
What this is not
- Not a chatbot.
- Not a dictionary of official occupations (that older tool maxed out at ~33% of real titles).
- Not proven on your languages until you score a labeled slice of your file. The encoder is multilingual; the hard exam in this folder is still mostly English messy titles plus official European titles.
- Not a billion-row-in-12-hours engine. On the M5 Pro, think millions per night, not billions.
License
Use inside your company as you like. The encoder weights you download
(jhu-clsp/mmBERT-base) are MIT. Official occupation lists (ESCO, O*NET)
keep their original public licences.