• Stefy Lanza (nextime / spora )'s avatar
    feat: add DINOv2-SALAD VPR (8448-d) as an isolated-subprocess embedding model · 319fb44a
    Stefy Lanza (nextime / spora ) authored
    Second VPR option for REQUEST-vpr-embeddings.md, alongside the in-process
    EigenPlaces. SALAD is near-SOTA for place recognition but its deps
    (pytorch_lightning, pytorch_metric_learning) are heavy and version-sensitive, so
    it runs in a SEPARATE process with those deps quarantined in a
    --system-site-packages venv (shares the main torch, adds only the extras). The
    main engine venv never imports them — verified clean.
    
    - codai/api/vpr_salad_server.py: stdin image-path -> stdout JSON embedding server
      (same protocol as dinov2-embed), GPU-preferred with CPU fallback, announces its
      true width (8448) on ready.
    - embeddings.py: 'salad'/'dinov2-salad' -> 'vpr-server' backend that spawns the
      server via /cache/salad-venv/bin/python; reuses the dinov2cpp reader/cleanup.
    - Self-healing: _EmbeddingModel gains a respawn hook. If the manager kills the
      child under VRAM pressure but keeps the cached model, the embed path now
      respawns the server in place instead of failing forever with a stale handle
      (this was causing persistent "process died" 500s once salad was evicted).
    - packaging/setup-salad-venv.sh: idempotent creator for the isolated venv.
    
    Both VPR models pass the decisive ordering test on same-place/different-place
    image sets (zero overlap between same-place min and different-place max); SALAD's
    margin (0.516 vs 0.150) is wider than EigenPlaces' (0.479 vs 0.349). Verified:
    8448-d L2=1.0, deterministic, ~0.2s warm / ~8s cold, GPU, subprocess isolation
    intact. Config: models.json 'salad' + alias 'dinov2-salad', engine nvidia.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LoSpEthysqmseCc6Geizty
    319fb44a
Name
Last commit
Last update
..
admin Loading commit data...
api Loading commit data...
backends Loading commit data...
broker Loading commit data...
frontproxy Loading commit data...
models Loading commit data...
openai Loading commit data...
pydantic Loading commit data...
queue Loading commit data...
tasks Loading commit data...
__init__.py Loading commit data...
cli.py Loading commit data...
config.py Loading commit data...
main.py Loading commit data...
platform_paths.py Loading commit data...
system_app.py Loading commit data...