Local tools for the EveSynapse intel classifier. Distilled from a fine-tunes Qwen 3.5 8b model with a training corpus of large amounts (~72k) of real intel reports and intel adjacent data.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-29 16:06:17 -07:00
cmd Score the reader with the tagger; shared lexicon; shipping steps 2026-10-29 16:06:17 -07:00
synth Score the reader with the tagger; shared lexicon; shipping steps 2026-10-29 16:06:17 -07:00
train Score the reader with the tagger; shared lexicon; shipping steps 2026-10-29 16:06:17 -07:00
.gitignore intel-lab: generator, trainer and scoring for the intel tagger 2026-10-29 15:29:49 -07:00
README.md Score the reader with the tagger; shared lexicon; shipping steps 2026-10-29 16:06:17 -07:00

intel-lab

Local tools for the intel classifier. Not part of EveSynapse: this folder sits inside an EveSynapse checkout (so it can use the reader's internal packages) and is ignored there by .git/info/exclude. Only the trained model goes live, inside internal/inteltag.

Everything here uses public data only: the SDE's map and ships (the fuzzwork dump the site imports), made-up pilot names, and known intel phrasing. No player's report is read.

Run every command from this folder.

1. Get the SDE (once)

go run ./cmd/intel-synth -sde sde -fetch

Downloads six CSV files (about 23 MB) into sde/ and prints ten sample reports.

2. Make training and test data

Use different seeds so the test lines are never trained on.

go run ./cmd/intel-synth -sde sde -n 100000 -seed 1 -out data/train.jsonl
go run ./cmd/intel-synth -sde sde -n 20000 -seed 2 -out data/test.jsonl

3. Score the deterministic reader (optional)

go run ./cmd/intel-synth -sde sde -n 20000 -seed 2 -eval
go run ./cmd/intel-synth -sde sde -n 20000 -seed 2 -eval -worst -misses 50

-worst makes every string some character, as EVE's name lookup nearly does.

4. Train the tagger

go run ./cmd/intel-train -sde sde -train data/train.jsonl -test data/test.jsonl -out data/tagger.gob.gz

Takes a few minutes. Prints each epoch, the model's size, and its precision and recall per kind on the test set. -known 0.6 is the share of pilot names the site's name cache is taken to know; -epochs sets the passes (default 5).

5. Check it with the reader

go run ./cmd/intel-synth -sde sde -n 20000 -seed 2 -eval -worst
go run ./cmd/intel-synth -sde sde -n 20000 -seed 2 -eval -worst -tagger data/tagger.gob.gz

The second run reads as the site does with the classifier wired in. Ship only if pilots improve and nothing else gets worse.

6. Ship it

The site reads with the model embedded at internal/inteltag/tagger.gob.gz in the EveSynapse repo.

  • To try a model on a server first, without a release: copy it to the server and set INTEL_TAGGER_WEIGHTS=/path/to/tagger.gob.gz, then restart. Unset it to go back.
  • To ship it: copy data/tagger.gob.gz over internal/inteltag/tagger.gob.gz, commit, open a PR, and release as usual.
  • INTEL_TAGGER=off reads intel without the classifier.

Layout

Path What
synth/ the generator: universe from the SDE, report frames, phrasings, scoring of the deterministic reader
train/ training and scoring of the tagger
cmd/intel-synth make examples, score the reader
cmd/intel-train train and score the tagger
sde/, data/ downloads and generated files; not tracked