--- title: ColPali sidebarTitle: ColPali --- import { PyEmbeddingColpaliSetup, PyEmbeddingColpaliTextSearch, } from '/snippets/integrations.mdx'; We support [ColPali](https://github.com/illuin-tech/colpali) model embeddings for multimodal multi-vector retrieval. ColPali produces multiple embedding vectors per input (multi-vector), enabling more nuanced similarity matching between text queries and image documents. Using ColPali requires the colpali-engine package, which can be installed using `pip install colpali-engine`. ColPali produces **multi-vector** embeddings, meaning each input generates multiple embedding vectors rather than a single vector. Use `MultiVector(func.ndims())` instead of `Vector(func.ndims())` when defining your schema. Supported models are: - Metric-AI/ColQwen2.5-3b-multilingual-v1.0 (default) - vidore/colpali-v1.3 - vidore/colqwen2-v1.0 - vidore/colSmol-256M Supported parameters (to be passed in `create` method) are: | Parameter | Type | Default Value | Description | |---|---|---|---| | `model_name` | `str` | `"Metric-AI/ColQwen2.5-3b-multilingual-v1.0"` | The name of the model to use. | | `device` | `str` | `"auto"` | The device for inference. Can be `"auto"`, `"cpu"`, `"cuda"`, or `"mps"`. | | `dtype` | `str` | `"bfloat16"` | Data type for model weights (bfloat16, float16, float32, float64). | | `pooling_strategy` | `str` | `"hierarchical"` | Token pooling strategy: `"hierarchical"`, `"lambda"`, or `None`. | | `pool_factor` | `int` | `2` | Factor to reduce sequence length when pooling is enabled. | | `batch_size` | `int` | `2` | Batch size for processing inputs. | | `quantization_config` | `Optional[BitsAndBytesConfig]` | `None` | Quantization configuration for the model (requires bitsandbytes). | This embedding function supports ingesting images as both bytes and URLs. You can query them using text. {PyEmbeddingColpaliSetup} Now we can search using text queries: {PyEmbeddingColpaliTextSearch}