2026-10-14 11:44:15 +02:00
|
|
|
# Bounded media relevance improvement, 2026-10-14
|
|
|
|
|
|
|
|
|
|
This pass keeps Google EmbeddingGemma 2 and the existing shared engine. It
|
|
|
|
|
corrects one practical source of irrelevant results without another model,
|
|
|
|
|
reindexing, an absolute similarity cutoff, or a new ranking framework.
|
|
|
|
|
|
|
|
|
|
## Hybrid shortlist correction after the real screenshot review
|
|
|
|
|
|
|
|
|
|
The real screenshot exposed an additional defect: reciprocal-rank fusion gave
|
|
|
|
|
every semantic nearest neighbour a result rank even when its raw similarity
|
|
|
|
|
was far below a strong match. A mountain photo consequently appeared beneath
|
|
|
|
|
the supplier agreement for a cancellation query.
|
|
|
|
|
|
|
|
|
|
Hybrid search now keeps the strongest semantic cluster when the filtered,
|
|
|
|
|
file-deduplicated score list has one clearly separated tail: choose the largest
|
|
|
|
|
adjacent raw cosine gap, and prune after it only when that gap is **greater than
|
|
|
|
|
0.07**. Equal largest gaps within f32 rounding retain the complete list. The
|
|
|
|
|
0.07 gap is rounded upward from the maximum 0.0650497 observed among eight
|
|
|
|
|
previously frozen calibration absence requests; it is a relative decluttering
|
|
|
|
|
rule, **not an absolute cosine threshold or a confidence percentage**.
|
|
|
|
|
The [frozen policy](../tools/relevance-eval/policies/hybrid-tail-v1.json) records
|
|
|
|
|
the exact scope and calibration report hash.
|
|
|
|
|
|
|
|
|
|
All independent lexical matches, exact filename/identifier priority and the
|
|
|
|
|
best semantic candidate survive. Explicit raw semantic search is unchanged.
|
|
|
|
|
Filters and source checks still run before candidate limits; no index or model
|
|
|
|
|
is regenerated. Debug traces report `hybrid.semantic_shortlist` with before,
|
|
|
|
|
after and pruned counts.
|
|
|
|
|
|
|
|
|
|
Actual current Google CPU query results on the verified README fixture:
|
|
|
|
|
|
|
|
|
|
| Query | Raw semantic scores | Hybrid result |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| `cancel the supplier partnership` | Agreement 0.820912; onboarding 0.660648; procurement 0.626666; mountain photo 0.528253 | Agreement retained; unrelated photos removed; 7 → 1 results |
|
|
|
|
|
| `mountains reflected in calm water` | Lake 0.753141; pier 0.684482; travel document 0.537812 | Two image results retained; unrelated documents removed |
|
|
|
|
|
|
|
|
|
|
The genuine query-role CPU integration passed in 7.61 seconds, covering raw API
|
|
|
|
|
preservation, actual PDF/photo retrieval, exact filename priority, PDF and size
|
|
|
|
|
filters, and limit one. Its ignored log `.searchi/qa/hybrid-tail-google-cpu.log`
|
|
|
|
|
has SHA-256 `bc920ba56bc5b4f89bb5ee8831420bf5c14964d2da5decb0b392482e12309d4e`.
|
|
|
|
|
The raw pre-change requests are preserved in
|
|
|
|
|
`.searchi/qa/readme-raw-relevance.json`, SHA-256
|
|
|
|
|
`4a017d8fee0d3762a806628e38a848ca9ca9cb052e92c1892f639efda3fde62d`.
|
|
|
|
|
|
|
|
|
|
A replay of existing genuine raw-score reports retained every previously
|
|
|
|
|
retrieved relevant top-five file in calibration, the previously evaluated
|
|
|
|
|
held-out report and the 61 ranked media-reference rows. Mean semantic
|
|
|
|
|
candidate counts changed from 11.6 to 5.0, 11.6 to 4.2 and 14.75 to 3.59,
|
|
|
|
|
respectively. This is score replay on known diagnostics, not newly independent
|
|
|
|
|
inference or a production relevance guarantee. The historical media reference
|
|
|
|
|
contains its documented audio preprocessing failure; no failed encoding is
|
|
|
|
|
silently credited as a positive. Forty text/code positive rows retain their
|
|
|
|
|
top semantic candidate by construction; **all 20 absence rows still retain a
|
|
|
|
|
neighbour**. The policy does not solve absence classification.
|
|
|
|
|
|
|
|
|
|
Three focused shortlist unit tests passed (weak-but-correct 0.6766, multiple
|
|
|
|
|
strong matches, flat/uniform/tied lists, one/two candidates and independent exact
|
|
|
|
|
lexical preservation). The full service library passed 45 tests with its two
|
|
|
|
|
explicitly provisioned/benchmark tests ignored; strict all-target Clippy passed.
|
|
|
|
|
|
|
|
|
|
## What changed
|
|
|
|
|
|
|
|
|
|
Explicit photo/image requests use image evidence; explicit video/film requests
|
|
|
|
|
use video-frame evidence. Spoken-topic requests retain speech-first retrieval
|
|
|
|
|
and raw-audio fallback while recognition is unavailable. Explicit music/audio
|
|
|
|
|
requests use actual audio evidence. If the requested channel is empty, semantic
|
|
|
|
|
search now returns empty instead of selecting an unrelated photo/document.
|
|
|
|
|
The independent exact filename/keyword lane remains available in hybrid search.
|
|
|
|
|
|
|
|
|
|
Ordinary subject queries stay general. Document/code/algorithm cues veto these
|
|
|
|
|
small intent hints. A mixed `photo or video` request stays general rather than
|
|
|
|
|
silently losing videos. `sound financial advice` is not an audio request.
|
|
|
|
|
The hints use word boundaries and English/German cues, not a claim of natural
|
|
|
|
|
language understanding. Debug traces report `explicit_source_channel` and
|
|
|
|
|
`requested_channel_empty`.
|
|
|
|
|
|
|
|
|
|
## Actual Google CPU evidence
|
|
|
|
|
|
|
|
|
|
The isolated integration fixture contains the existing licensed, SHA-locked
|
|
|
|
|
cat photo `fixtures/media/assets/image01.jpg`, copied into a temporary owned
|
|
|
|
|
index. It uses the normal native Google runtime with `SEARCHI_FORCE_CPU=1`,
|
|
|
|
|
one inference thread, actual image encoding, persisted ANN retrieval and the
|
|
|
|
|
query-role worker. No fabricated vectors or labels enter inference.
|
|
|
|
|
|
|
|
|
|
| Check | Unrestricted real-model channel | Corrected automatic routing |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| Six requests for absent audio/music/speech/video channels, EN/DE | 6/6 returned the unrelated photo | 0/6 returned a semantic result |
|
|
|
|
|
| Three photo/general cat requests, EN/DE | Actual image indexed | 3/3 retained the correct photo |
|
|
|
|
|
| Exact `cat.jpg` | Independent lexical lane | Exact filename retained |
|
|
|
|
|
|
|
|
|
|
`explicit_media_requests_do_not_fall_back_to_unrelated_channels` passed in
|
|
|
|
|
82.63 seconds including indexing, model loading and all assertions. This is
|
|
|
|
|
functional correctness evidence, not a search-latency benchmark or a large
|
|
|
|
|
collection quality score. Raw log: ignored `.searchi/qa/media-final-routing.log`,
|
|
|
|
|
SHA-256 `14d452192315fb1ddfd0b0df1448ffc475876af57a767546b36f68f17771b83d`.
|
|
|
|
|
|
|
|
|
|
The existing actual Google code-versus-licensed-audio regression also passed
|
|
|
|
|
in 81.72 seconds: an explicit code query retained its indexed implementation
|
|
|
|
|
while real audio remained an eligible independent channel. Its ignored log
|
|
|
|
|
`.searchi/qa/media-final-code-veto.log` has SHA-256
|
|
|
|
|
`04d8f42ed8e872f22607c2fe4fb45e0d5149d4b42539b3346abd18ebb224e137`.
|
|
|
|
|
All three focused routing unit tests passed after the mixed-channel/algorithm/
|
|
|
|
|
sound-adjective fixes, including the English/German ambiguity cases.
|
|
|
|
|
|
|
|
|
|
Reproduce with the verified Google/model and FFmpeg environment described in
|
|
|
|
|
SKILLS.md:
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
$env:SEARCHI_FORCE_CPU = '1'
|
|
|
|
|
cargo test -p searchi-service --test routing_google_cpu explicit_media_requests_do_not_fall_back --locked -- --ignored --nocapture --test-threads=1
|
|
|
|
|
cargo test -p searchi-service --lib routing::tests --locked
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Limits and music decision
|
|
|
|
|
|
|
|
|
|
These changes reject wrong channels and trim clearly separated weak tails;
|
|
|
|
|
they are not calibrated detection that a particular
|
|
|
|
|
subject is absent within a populated channel. An indexed audio collection can
|
|
|
|
|
still return an unrelated nearest performance for an absent musical instrument;
|
|
|
|
|
photos/videos have the same limitation within their own channel. Speech without
|
|
|
|
|
recognized passages retains raw audio fallback. Do not advertise a confidence
|
|
|
|
|
percentage or perfect no-answer detection.
|
|
|
|
|
|
|
|
|
|
Existing exact artist/title metadata filters remain the reliable identity path.
|
|
|
|
|
The previous independently frozen music comparison improved 8/14 to 11/14 first
|
|
|
|
|
hits using literal embedded tag fields, but regressed one positive, fell to 5/14
|
|
|
|
|
with misleading tags, and failed all four no-answer cases. That unconditional
|
|
|
|
|
field-max policy remains unintegrated: it does not justify shipping a universal
|
|
|
|
|
music-recognition improvement. See MUSIC-METADATA.md and
|
|
|
|
|
fixtures/music-validation-v1/README.md. This pass adds no hosted music lookup,
|
|
|
|
|
fingerprinting service, generated labels, or extra model downloads.
|
|
|
|
|
|
|
|
|
|
Existing image evidence and video scene sampling are retained. Spoken timing
|
|
|
|
|
and recovery are recorded separately in SPEECH-FINAL-QUALITY.md. Media remains
|
|
|
|
|
usable with explicit limits; this bounded pass does not invent a new overall
|
|
|
|
|
quality rating or extend the agreed release scope.
|
2026-10-14 12:45:32 +02:00
|
|
|
|
|
|
|
|
## 0.1.9: primary matches and related suggestions
|
|
|
|
|
|
|
|
|
|
The frozen shared-engine presentation rule now keeps weaker semantic neighbors
|
|
|
|
|
under expandable **Related suggestions** instead of promoting every nearest
|
|
|
|
|
neighbor as a primary match. It preserves exact filename/keyword matches and
|
|
|
|
|
access to lower-scoring genuine sources. See [semantic evidence](SEMANTIC-EVIDENCE.md)
|
|
|
|
|
for the frozen policy and [blind results](../fixtures/absence-v3/evaluation-summary.json).
|
|
|
|
|
|
|
|
|
|
Actual Google CPU evaluation covered all 36 assets without extraction or
|
|
|
|
|
semantic/speech failures. Primary false neighbors on absent requests fell from
|
|
|
|
|
16/16 to 4/16 against the previous-rule replay. All 16 positive requests retained
|
|
|
|
|
their expected source within five accessible results, but only 10/16 had a
|
|
|
|
|
correct primary first result; five required expanding related suggestions.
|
|
|
|
|
Both music identity requests still ranked the wrong recording first in raw
|
|
|
|
|
retrieval. Related grouping makes this uncertainty visible; it does not fix
|
|
|
|
|
music recognition, infer precise words/timestamps or prove requested facts exist.
|
|
|
|
|
All absent requests still retained related candidates.
|
|
|
|
|
|
|
|
|
|
The policy was frozen before blind evaluation and was not retuned on the result.
|
|
|
|
|
Small corpus, publisher-based media labels and one independent AI annotator
|
|
|
|
|
limit generalization. Package/startup verification for 0.1.9 passed; final public verification is
|
|
|
|
|
recorded in ROADMAP.md.
|