• 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
codai Loading commit data...
docs Loading commit data...
packaging Loading commit data...
samples Loading commit data...
tests Loading commit data...
tools Loading commit data...
.dockerignore Loading commit data...
.gitignore Loading commit data...
AI.PROMPT Loading commit data...
CODERAI_API_DOCUMENTATION.md Loading commit data...
CoderAI.gif Loading commit data...
DISTRIBUTION.md Loading commit data...
LICENSE.md Loading commit data...
MULTIMODAL_CAPABILITIES.md Loading commit data...
MULTIMODAL_UI_EXAMPLES.md Loading commit data...
README.md Loading commit data...
build-oci.sh Loading commit data...
build.ps1 Loading commit data...
build.sh Loading commit data...
coderai Loading commit data...
coderai-broker-implementation-reference.md Loading commit data...
coderai-integration.md Loading commit data...
commands Loading commit data...
osxbuild.sh Loading commit data...
package-oci.sh Loading commit data...
package-tarball.sh Loading commit data...
requirements-nvidia.txt Loading commit data...
requirements-vulkan.txt Loading commit data...
requirements.txt Loading commit data...
run-oci.sh Loading commit data...
smoke-test-oci.sh Loading commit data...
todo.md Loading commit data...
video_editor.config.json Loading commit data...