# Multi-vector page sources

## Recorded model output

- Model: `lightonai/GTE-ModernColBERT-v1`
- Hugging Face revision pinned in the SIE model config: `cbbe53366e564450558f5e639dd499171f127538`
- SIE bundle revision reported by the API (`x-sie-model-revision`): `10333b84de80b402376b626eb25366fb081d3faeb893eb4b01cf32e8c27e4aff`
- SIE server version reported by the API: `0.7.3`
- Model card: <https://huggingface.co/lightonai/GTE-ModernColBERT-v1>
- Endpoint: `https://api.superlinked.com/v1/encode/lightonai%2FGTE-ModernColBERT-v1`
- Run: 2026-09-15, 31 encode calls, all HTTP 200. Every repeated run returned identical values; `manifest.json` holds the latest run window and latencies.
- Runner: `apps/site/tests/fixtures/reference/multivector/run.py` (standard library only, HTTPS endpoints only)

Every query is encoded with `output_types=["multivector"]` and
`options.is_query=true`, so the server prepends the `[Q] ` marker. Every
candidate passage is encoded with `options.is_query=false`, so the server
prepends `[D] ` and drops bare punctuation tokens. Both keep `[CLS]` and `[SEP]`.
These settings come from `packages/sie_server/models/lightonai__GTE-ModernColBERT-v1.yaml`
and `adapters/colbert_modernbert_flash/adapter.py` in `superlinked/sie`.

The playground grid records the call its snippet makes: query and passage in
one request with no `is_query`, so the server encodes both as documents. The
MaxSim total under that grid is the value the snippet prints, summed over every
query token including `[CLS]`, `[D]` and `[SEP]`.

## What is model output and what is calculation

The API returns one L2-normalized 128-dimension vector per kept token and a
`num_tokens` count. It returns no token strings and no similarity values.

- **Token labels** are calculations. The runner tokenizes each input with the
  model's own `tokenizer.json` at the pinned revision (SHA-256
  `23abe2a8f5640f8836c24cead7b76e77613b846824d7540151c6d90d7c2f4869`) and the
  server preprocessing above. It fails unless the label count equals the
  returned `num_tokens` for every item. The runner's byte-level BPE produced the
  same ids as Hugging Face `tokenizers` 0.21.1 on all 72 inputs.
- **Cosines** are dot products of the returned vectors, the same operation
  the page's snippet and SIE's `maxsim` helper use. The server normalizes in
  bfloat16, so every returned norm is within 0.001 of 1 (largest recorded
  deviation 0.00054); site CI checks this for every committed vector.
- **MaxSim** is the sum, over query tokens, of each query token's highest
  cosine with any passage token. Ranks sort passages by MaxSim.

Display transformations: token text is trimmed of surrounding whitespace; the
hero shows every query token; proof cards show the query tokens whose best
cosines differ by at least 0.04 between the two passages and count the rest;
the playground grid hides the `[CLS]`, `[D]` and `[SEP]` rows and columns. No
query token's highest cosine in that run falls on a hidden token. Site CI
recomputes every displayed value from the committed vectors.

"Answer passage" is a human reference label recorded in `cases.json` before the
run. "Closest other" is the highest-MaxSim passage that is not the answer.

## Recorded results

Ten queries, four verbatim passages each, all from one source page per query.
The line under the proof grid counts the eight cases the page keeps: the answer
ranked first in seven. That count sat in the proof heading until the marketing
pass of September 2026 moved it under the grid, so the heading could state the
capability the whole recorded set supports rather than lead with a ratio.

| Case | Answer rank | Answer MaxSim | Closest other passage | Its MaxSim | Counted | Drawn |
|---|---|---|---|---|---|---|
| PostgreSQL CREATE INDEX | 1 | 11.309 | Partitioned-table recursion | 11.105 | Yes | Hero |
| Kubernetes sidecar lifetime | 1 | 18.013 | restartPolicy field | 17.610 | Yes | No |
| SQLite DROP COLUMN | 1 | 13.076 | ADD COLUMN restrictions | 12.748 | Yes | No |
| Python communicate() timeout | 1 | 14.159 | run() timeout | 14.049 | Yes | No |
| MDN SameSite=None | 1 | 15.089 | SameSite=Lax | 14.742 | Yes | No |
| Kafka min.insync.replicas | 1 | 21.360 | acks=all | 21.073 | Yes | Proof |
| 14 CFR 121.629 frost | 1 | 19.753 | 121.629(d) | 19.454 | Yes | Proof |
| OSHA scaffold fall protection | 1 | 18.098 | High winds | 17.621 | No | No |
| MDN no-store | **2** | 11.718 | private (rank 1) | 11.746 | Yes | Proof |
| NIST password length | 1 | 18.095 | Passphrase length | 17.608 | No | No |

The no-store miss stays on the page. The query token `browser` matches
`browsers` in the `private` passage at 0.921, while the `no-store` passage's
best match is `this` at 0.845.

The NIST and OSHA cases are recorded but neither counted nor drawn, because the
`/search` page uses the same NIST SP 800-63B-4 password section and 29 CFR 1926
construction fall protection (1926.501; this page recorded 1926.451).

### What the page displays

The line under the grid counts all eight cases in the "Counted" column. The
page draws 4 of them: the hero and three proof cards. The grid was
cut from seven cards to three in September 2026 so the section reads in one
pass; the cut is a display decision and removed no case, vector or MaxSim value.

The three cards carry different arguments. The FAA icing regulation is the
hardest input on the page, where the answer is a narrow exception sitting beside
the general rule it excepts. The Kafka pair is the closest wording, two config
passages describing the same `acks=all` behaviour. MDN no-store is the one
search the answer passage lost, and `src/data/reference/tasks/multivector.ts`
fails the build if it ever falls out of the grid.

Raw responses (gzip) are committed for the eight counted cases and the
playground, including the four the page no longer draws. `manifest.json` keeps
request and raw-response SHA-256 values, latency, answer ranks and MaxSim totals
for all ten cases.

## Primary sources

Each passage was checked to appear verbatim (whitespace normalized) in the
visible text of the page fetched on 2026-09-15. `cases.json` records the
SHA-256 of each fetched HTML file.

### PostgreSQL CREATE INDEX

- The PostgreSQL Global Development Group, PostgreSQL 17 Documentation,
  CREATE INDEX: <https://www.postgresql.org/docs/17/sql-createindex.html>
- License: PostgreSQL License

### Kubernetes sidecar containers

- The Kubernetes Authors, Sidecar Containers:
  <https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/>
- License: CC BY 4.0

### SQLite ALTER TABLE

- SQLite, ALTER TABLE: <https://www.sqlite.org/lang_altertable.html>
- License: public domain

### Python subprocess

- Python Software Foundation, subprocess:
  <https://docs.python.org/3.13/library/subprocess.html>
- License: Python Software Foundation License Version 2

### MDN Set-Cookie and Cache-Control

- Mozilla Contributors, Set-Cookie:
  <https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie>
- Mozilla Contributors, Cache-Control:
  <https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control>
- License: CC BY-SA 2.5

### Apache Kafka configuration

- The Apache Software Foundation, Kafka 4.0 topic and producer configs:
  <https://kafka.apache.org/40/generated/topic_config.html>,
  <https://kafka.apache.org/40/generated/producer_config.html>
- License: Apache License 2.0

### FAA icing rule

- Federal Aviation Administration, 14 CFR 121.629, via eCFR:
  <https://www.ecfr.gov/current/title-14/part-121/section-121.629>
- License: U.S. federal regulation, public domain

### Recorded, neither counted nor drawn

- National Institute of Standards and Technology, SP 800-63B-4 (U.S. Government
  work): <https://pages.nist.gov/800-63-4/sp800-63b.html>
- Occupational Safety and Health Administration, 29 CFR 1926.451, via eCFR
  (public domain): <https://www.ecfr.gov/current/title-29/part-1926/section-1926.451>
