{
  "id": "siglip-base-patch16-224",
  "identity": {
    "family": "siglip",
    "display_name": "SigLIP Base patch16 224",
    "hub_id": "google/siglip-base-patch16-224",
    "api_name": null,
    "revision": null,
    "variants": [],
    "license": "Apache-2.0",
    "commercial_use": true,
    "commercial_use_note": "Apache-2.0 weights and code; no use restrictions.",
    "release_date": "2023-03",
    "paper_url": "https://arxiv.org/abs/2303.15343",
    "repo_url": "https://github.com/google-research/big_vision"
  },
  "task": {
    "category": "embedding",
    "modalities_in": [
      "image",
      "text"
    ],
    "modalities_out": [
      "vector"
    ],
    "best_at": "Text-to-image and image-to-image search over photos, products and video frames in one shared space.",
    "worst_at": "Reading text in images, counting, small objects, and catalog facts that are not visible (NGA eval, self-portrait and etching queries)."
  },
  "io": {
    "input": {
      "image": {
        "resolution": "224x224",
        "color": "RGB",
        "normalize": "mean 0.5, std 0.5"
      },
      "text": {
        "max_tokens": 64,
        "padding": "max_length",
        "language": "English"
      },
      "prompts": "plain captions; no instruction prefix"
    },
    "output": {
      "vector": {
        "dims": 768,
        "distance": "cosine",
        "type": "dense"
      }
    }
  },
  "mixpeek_wiring": {
    "extractors": [
      {
        "extractor": "image_extractor@v1",
        "selected_by": "fixed"
      },
      {
        "extractor": "web_scraper@v1",
        "selected_by": "generate_image_embeddings=true (default true)"
      }
    ],
    "feature_uris": [
      "mixpeek://image_extractor@v1/google_siglip_base_v1",
      "mixpeek://web_scraper@v1/google__siglip_base_patch16_224"
    ],
    "vector_indexes": [
      "image_extractor_v1_embedding",
      "google__siglip_base_patch16_224"
    ],
    "retriever_stages": [
      "feature_search",
      "mmr"
    ],
    "composes_with": [
      "image_extractor: one SigLIP vector per image; feature_search embeds a text or image query with the same Serve app",
      "web_scraper: SigLIP vectors for page images beside E5 text, Jina code and DINOv2 structure vectors",
      "colqwen_extractor reuses the image_extractor batch step with its embed swapped for ColQwen2"
    ]
  },
  "run": {
    "status": "served",
    "status_reason": "Ray Serve app in the inference registry. image_extractor batch calls the Serve app (ImageEmbeddingBatchService, strict_serve: no local fallback unless SERVE_PROXY_ALLOW_LOCAL_FALLBACK=1); web_scraper loads SiglipVisionModel in-process.",
    "serve_apps": [
      "google__siglip_base_patch16_224"
    ],
    "runtime": "transformers AutoModel + AutoProcessor (SiglipModel) for realtime text and image; SiglipVisionModel + SiglipImageProcessor for batch (SiglipImageEmbeddingBatch, web_scraper DocTypeImageEmbedder)",
    "weights_format": "safetensors",
    "trust_remote_code": false,
    "size_on_disk_mb": 813,
    "params_millions": 203,
    "preprocessing": "Resize to 224x224, rescale, normalize mean 0.5 std 0.5; text padded to 64 tokens.",
    "postprocessing": "L2-normalize the pooled image or text embedding (pooler_output).",
    "serving_shape": "both",
    "batch_size": 64,
    "serve_batch": null,
    "scale_to_zero": {
      "min_replicas": 0,
      "max_replicas": 4,
      "idle_timeout_s": 300,
      "memory_gb": 1,
      "num_cpus": 0.5,
      "num_gpus": {
        "expr": "hardware_config.gpu_fraction if hardware_config.gpu_concurrency > 0 else 0"
      },
      "cold_start_s": {
        "warm_node_s": null,
        "new_node_s": null,
        "source": null
      },
      "cpu_fallback": true
    }
  },
  "cost": {
    "unmeasured": true,
    "measured": null,
    "note": "No committed throughput or cold-start measurement for this model alone."
  },
  "evidence": {
    "unmeasured": false,
    "items": [
      {
        "dataset": "NGA art search, 25 text queries",
        "metric": "P@10 (regex relevance, lower bound)",
        "k": 10,
        "score": 0.748,
        "baseline": null,
        "baseline_score": null,
        "held_out": false,
        "date": "2026-11-02",
        "source": "canvas/apps/nga-art-search/eval/RESULTS.md"
      },
      {
        "dataset": "NGA art search, 25 text queries",
        "metric": "nDCG@10",
        "k": 10,
        "score": 0.738,
        "baseline": null,
        "baseline_score": null,
        "held_out": false,
        "date": "2026-11-02",
        "source": "canvas/apps/nga-art-search/eval/RESULTS.md"
      },
      {
        "dataset": "ViDoRe v1 + v2 document pages, 1,500 English queries (93,992-item mixed corpus)",
        "metric": "nDCG@10, SigLIP alone top 10 (dense single vector)",
        "k": 10,
        "score": 0.135,
        "baseline": "exact ColQwen2 MaxSim",
        "baseline_score": 0.696,
        "held_out": false,
        "date": "2026-10-15",
        "source": "research/goal-specs/mvs-scale-from-zero/RESULTS-MULTIMODAL-LI.md"
      },
      {
        "dataset": "MSR-VTT 1K-A captions over scene-cut keyframes (1,000 queries)",
        "metric": "nDCG@10, SigLIP alone top 10",
        "k": 10,
        "score": 0.14,
        "baseline": "exact ColQwen2 MaxSim",
        "baseline_score": 0.133,
        "held_out": false,
        "date": "2026-10-15",
        "source": "research/goal-specs/mvs-scale-from-zero/RESULTS-MULTIMODAL-LI.md"
      },
      {
        "dataset": "Marqo/KAGL product images, 1,000 product-title queries",
        "metric": "nDCG@10, SigLIP alone top 10",
        "k": 10,
        "score": 0.293,
        "baseline": "exact ColQwen2 MaxSim",
        "baseline_score": 0.17,
        "held_out": false,
        "date": "2026-10-15",
        "source": "research/goal-specs/mvs-scale-from-zero/RESULTS-MULTIMODAL-LI.md"
      }
    ]
  },
  "refs": [
    "hf://google/siglip-base-patch16-224@7fd15f0689c79d79e38b1c2e2e2370a7bf2761ed",
    "mixpeek://system/siglip_vit_b_16_224@1.0.0"
  ],
  "formats": [
    {
      "ref": "hf://google/siglip-base-patch16-224@7fd15f0689c79d79e38b1c2e2e2370a7bf2761ed",
      "format": "safetensors",
      "file": "model.safetensors",
      "loader": "transformers / open_clip from_pretrained; Mixpeek Hub import (api/models/huggingface.py)",
      "supported_today": true
    },
    {
      "ref": "hf://google/siglip-base-patch16-224@7fd15f0689c79d79e38b1c2e2e2370a7bf2761ed",
      "format": "pytorch_bin",
      "file": "pytorch_model.bin",
      "loader": "torch.load (pickle); Mixpeek refuses pickle weights (shared/security/torch_pickle.py)",
      "supported_today": false
    }
  ],
  "use_cases": [
    "visual-search",
    "product-search"
  ],
  "recommended": {
    "value": true,
    "for": [
      "visual-search"
    ],
    "reason": "The served image embedding behind image_extractor; measured on the NGA art search eval."
  },
  "demos": [],
  "seo": {
    "title": "SigLIP Base patch16 224: embedding model",
    "description": "SigLIP Base patch16 224 is a image and text embedding model (Apache-2.0). Served on Mixpeek, scaling to zero when idle.",
    "keywords": [
      "SigLIP Base patch16 224",
      "siglip",
      "embedding",
      "google/siglip-base-patch16-224",
      "visual-search",
      "product-search"
    ],
    "faqs": [
      {
        "q": "What is SigLIP Base patch16 224 best at?",
        "a": "Text-to-image and image-to-image search over photos, products and video frames in one shared space."
      },
      {
        "q": "What are the limits of SigLIP Base patch16 224?",
        "a": "Reading text in images, counting, small objects, and catalog facts that are not visible (NGA eval, self-portrait and etching queries)."
      },
      {
        "q": "Can SigLIP Base patch16 224 be used commercially?",
        "a": "Yes. Apache-2.0 weights and code; no use restrictions."
      },
      {
        "q": "How does SigLIP Base patch16 224 run on Mixpeek?",
        "a": "Ray Serve app in the inference registry. image_extractor batch calls the Serve app (ImageEmbeddingBatchService, strict_serve: no local fallback unless SERVE_PROXY_ALLOW_LOCAL_FALLBACK=1); web_scraper loads SiglipVisionModel in-process."
      }
    ]
  },
  "last_verified": "2026-11-05",
  "sources": [
    "https://huggingface.co/google/siglip-base-patch16-224",
    "https://arxiv.org/abs/2303.15343",
    "server/engine/extractors/image_extractor/v1/definition.py",
    "server/engine/inference/google/siglip/routes.py",
    "server/engine/inference/google/siglip/services.py",
    "server/engine/extractors/image_extractor/v1/processors/processors.py",
    "server/engine/extractors/web_scraper/v1/definition.py",
    "server/engine/extractors/web_scraper/v1/processors/doctype_embedders.py",
    "server/engine/core/serve_proxy.py"
  ],
  "registry": {
    "google__siglip_base_patch16_224": {
      "deployment": "google__siglip_base_patch16_224",
      "service_id": "google/siglip-base-patch16-224",
      "routes": "engine/inference/google/siglip/routes.py",
      "route_prefix": "/google_siglip_base/v1",
      "enabled": true,
      "description": "Google SigLIP Base multimodal embedding model. Generates 768-dimensional embeddings for images and text in the same space. Supports cross-modal similarity search (text-to-image, image-to-image).",
      "capabilities": {
        "category": "embedding",
        "modality_input": [
          "text",
          "image"
        ],
        "modality_output": "vector",
        "supports_batch": true,
        "reranking_mode": null
      },
      "vector_config": {
        "dimensions": 768,
        "distance": "cosine",
        "vector_type": "dense"
      },
      "serve": {
        "min_replicas": 0,
        "max_replicas": 4,
        "idle_timeout_s": 300,
        "target_ongoing_requests": 5,
        "num_cpus": 0.5,
        "num_gpus": {
          "expr": "hardware_config.gpu_fraction if hardware_config.gpu_concurrency > 0 else 0"
        },
        "memory_gb": 1,
        "pinnable": false,
        "placement": "worker",
        "enabled": true
      },
      "interactive_twin": false,
      "interactive_serve": null,
      "schemas": {
        "input": "shared.inference.google.siglip.models.InferenceRequest",
        "output": "shared.inference.google.siglip.models.InferenceResponse",
        "config": "shared.inference.google.siglip.models.InferenceConfigs"
      }
    }
  },
  "templates": [
    "video-moderation"
  ],
  "usage": {
    "namespaces": null,
    "collections": null,
    "uncounted": true,
    "templates": 1,
    "counted_at": null,
    "source": null
  },
  "facets": {
    "status": "served",
    "category": "embedding",
    "family": "siglip",
    "license": "Apache-2.0",
    "commercial_use": true,
    "modalities_in": [
      "image",
      "text"
    ],
    "modalities_out": [
      "vector"
    ],
    "use_cases": [
      "visual-search",
      "product-search"
    ],
    "recommended": true,
    "release_date": "2023-03",
    "params_millions": 203,
    "size_on_disk_mb": 813,
    "vector_dims": 768,
    "vector_distance": "cosine",
    "weights_format": "safetensors",
    "formats": [
      "pytorch_bin",
      "safetensors"
    ],
    "loadable_today": true,
    "trust_remote_code": false,
    "cpu_fallback": true,
    "num_gpus": null,
    "memory_gb": 1,
    "min_replicas": 0,
    "serving_shape": "both",
    "served": true,
    "ref_schemes": [
      "hf",
      "mixpeek"
    ],
    "has_evidence": true,
    "cost_measured": false,
    "template_count": 1,
    "usage_namespaces": null,
    "usage_collections": null,
    "usage_uncounted": true,
    "has_demo": false,
    "rank_score": 6.5
  },
  "rank_score": 6.5
}
