Vicinity 1

Find whatyou meant.

Vicinity finds your to-dos, notes, events, contacts and conversations by what they mean, not only the words in them. Searches run on your device, and work offline.

34 MBone file
–– ms loading the model to time it
384numbers a thing

Embeddings

A to-do becomes 384 numbers.

Vicinity reads the text and writes down 384 numbers that stand for what it means. Each bar is one of them, worked out in your browser. Type anything over the to-do and watch the numbers change.

Loading Vicinity 1, 34 MB…

Meaning space

Together, they’re one point.

The numbers are scaled to length 1, so they’re a direction: one point in a space of 384 dimensions. Things that mean the same thing point the same way, so they land together. The flowers gather with the scarf Mum loved and the telescope Eli wants, though none of them says “present”.

Drawn here in three of the 384, for a small made-up account.

Training

Made on one Mac, in about 53 hours.

Vicinity started from gte-small,1 an open model under the MIT licence, and was trained further for what people keep in Milieu. Everything ran on one M3 Max, from the first row written to the finished model.

Sam Hughes, tree surgeon in Leeds · a made-up person Quote the Hendersons for taking down the oak
Keywords
estimate felling customer
Another way
send that family a price for removing their big tree
Question
did i ever send a prise for that tree job?
127,214made-up rows, each checked, with three searches that avoid its words
6,020made-up people, from tree surgeons to rabbis, in real places
1 in 10in French, German, Spanish or Dutch; English is strongest
120×bigger: the teacher, Qwen3-Embedding-4B,2 which helped pick the hard examples

Rows written by an open model, Qwen3.6,3 plus about 100,000 public question–answer and title–abstract pairs. Trained without any of your data.

Results

Tested on data it never saw.

307 made-up people and their 6,670 rows were kept out of training. Before training, 96 searches were written by hand. The bars show how often each model finds what you meant in its top five.

Milieu blends in a little of the words, too. Meaning finds what you were thinking of, and the words find exact things, like invoice INV-2041.

Held-back rows, nDCG@10
Keywords alone0.550
Vicinity alone0.663
Blended, 90% meaning and 10% keywords0.674

On science benchmarks it’s a little worse than gte-small (SciFact 0.696 against 0.727, NFCorpus 0.339 against 0.348). That’s the price of being a specialist.

Size

Small enough to keep everything.

Each thing is kept as 384 numbers of one byte each, and that costs nothing in quality. The first 256 or 128 numbers work on their own too, and so does a single bit of each, at a price.

Numbers
Each
384bytes a thing
3.8 MBfor 10,000 things
0.663nDCG@10

What Milieu keeps: vicinity-1/384/int8

Specification

Vicinity 1

Built on
gte-small,1 about 33 million parameters
File
One 34 MB file, int8 ONNX
Runs
In the browser with WebAssembly, on one thread
Speed
Timing it in this browser once the model has loaded…
Output
384 numbers of length 1; the first 256 or 128 also work
Stored as
int8, vicinity-1/384/int8
Where
Searches run on your device, and work offline; the server embeds the rows it already has, and devices embed searches and what they write
Languages
English strongest; French, German, Spanish and Dutch too
Data
Trained without any of your data
  1. gte-small, by Alibaba DAMO Academy, under the MIT licence. Vicinity 1’s notice has it in full.
  2. Qwen3-Embedding-4B, by Qwen, under the Apache 2.0 licence.
  3. Qwen3.6, by Qwen, under the Apache 2.0 licence.
© 2026 Milieu No trackers on this page