# Choose a model

On this page, you can find a list of pre-trained models designed specifically for enterprise retrieval tasks in English and other languages. Additional models and features will be added in the future, so please check back regularly for updates.

## How to choose the right model?

Here are some simple recommendations on when you should use a specific model:

### Text embedding models

- **[`Snowflake/snowflake-arctic-embed-m-v1.5`](#snowflake-arctic-embed-m-v1.5)**
  Best for datasets that are **primarily in English** with text lengths typically **under 512 tokens**.
- **[`Snowflake/snowflake-arctic-embed-l-v2.0`](#snowflake-arctic-embed-l-v2.0)**
  Ideal for datasets that include **multiple languages** or require **longer context (up to 8192 tokens)**. This model is optimized for robust performance on both English and multilingual retrieval tasks.

### Multimodal model

- **[`ModernVBERT/colmodernvbert`](#colmodernvbert)**
  Best for **visual document retrieval** where you want to search document images (PDFs, slides, invoices) using text queries. This model embeds documents directly as images, **eliminating the need for OCR or text extraction pipelines**.

Below, you can find a complete list of all available models.

***

## Available models

<!-- TODO[g-despot]: Uncomment section when more models are added
The following models are available for use with Weaviate Embeddings:

- **[`Snowflake/snowflake-arctic-embed-m-v1.5`](#snowflake-arctic-embed-m-v1.5)**
- **[`Snowflake/snowflake-arctic-embed-l-v2.0`](#snowflake-arctic-embed-l-v2.0)** (default)

---
-->

### Text embedding models

### `Snowflake/snowflake-arctic-embed-l-v2.0` (default)

- A 568M parameter, 1024-dimensional model for multilingual enterprise retrieval tasks.
- Trained with Matryoshka Representation Learning to allow vector truncation with minimal loss.
- Quantization-friendly: Using scalar quantization and 256 dimensions provides 99% of unquantized, full-precision performance.
- Read more at the [Snowflake blog](https://huggingface.co/Snowflake/snowflake-arctic-embed-l-v2.0), and the Hugging Face [model card](https://huggingface.co/Snowflake/snowflake-arctic-embed-l-v2.0)
- Allowable `dimensions`: 1024 (default), 256

***

### `Snowflake/snowflake-arctic-embed-m-v1.5`

- A 109M parameter, 768-dimensional model for enterprise retrieval tasks in English.
- Trained with Matryoshka Representation Learning to allow vector truncation with minimal loss.
- Quantization-friendly: Using scalar quantization and 256 dimensions provides 99% of unquantized, full-precision performance.
- Read more at the [Snowflake blog](https://www.snowflake.com/engineering-blog/arctic-embed-m-v1-5-enterprise-retrieval/), and the Hugging Face [model card](https://huggingface.co/Snowflake/snowflake-arctic-embed-m-v1.5)
- Allowable `dimensions`: 768 (default), 256

:::callout{intent="info" title="Input truncation"}
Currently, input exceeding the model's context windows is truncated from the right (i.e. the end of the input).
:::

### Multimodal embedding models

Weaviate Embeddings also offers multimodal models for visual document retrieval tasks. These models generate embeddings from document images (PDFs, slides, invoices converted to images) that can be searched with text queries.

### `ModernVBERT/colmodernvbert`

- A 250M parameter late-interaction vision-language encoder, fine-tuned for visual document retrieval tasks.
- Generates multi-vector embeddings (ColBERT-style late-interaction) from document images and text queries.
- Ideal for getting documents directly into Weaviate without heavy preprocessing - no OCR or text extraction required.
- State-of-the-art performance in its size class, matching models up to 10x larger.
- Query token limit: 8,192 tokens
- Read more at the [Hugging Face model card](https://huggingface.co/ModernVBERT/colmodernvbert)
- For integration details, see [Weaviate Embeddings: Multimodal](../model-provider-integrations/weaviate-embeddings-multimodal.md)

:::callout{intent="info" title="MUVERA encoding recommended"}
Enable [MUVERA encoding](../how-to-configure-weaviate/compression-multi-vectors.md) to reduce memory usage while preserving retrieval quality.
:::

***

## Vectorizer parameters

- `model` (optional): The name of the model to use for embedding generation.
- `dimensions` (optional): The number of dimensions to use for the generated embeddings.
- `base_url` (optional): The base URL for the Weaviate Embeddings service. (Not required in most cases.)

The following examples show how to configure Weaviate Embeddings-specific options.

:::code-group{sync="languages"}
```python title="Python" {5-14}
from weaviate.classes.config import Configure

client.collections.create(
    "DemoCollection",
    vector_config=[
        Configure.Vectors.text2vec_weaviate(
            name="title_vector",
            source_properties=["title"],
            model="Snowflake/snowflake-arctic-embed-m-v1.5",
            # Further options
            # dimensions=256
            # base_url="<custom_weaviate_embeddings_url>",
        )
    ],
    # Additional parameters not shown
)
```

```typescript title="JavaScript/TypeScript" {9-19}
await client.collections.create({
  name: 'DemoCollection',
  properties: [
    {
      name: 'title',
      dataType: 'text' as const,
    },
  ],
  vectorizers: [
    weaviate.configure.vectors.text2VecWeaviate({
        name: 'title_vector',
        sourceProperties: ['title'],
        model: 'Snowflake/snowflake-arctic-embed-m-v1.5',
        // Further options
        // dimensions: 256,
        // baseURL: '<custom_weaviate_embeddings_url>',
      },
    ),
  ],
  // Additional parameters not shown
});
```

```goraw title="Go" {1-21}
// Define the collection
weaviateVectorizerArcticEmbedMV15 := &models.Class{
  Class: "DemoCollection",
  VectorConfig: map[string]models.VectorConfig{
    "title_vector": {
      Vectorizer: map[string]interface{}{
        "text2vec-weaviate": map[string]interface{}{
          "model":      "Snowflake/snowflake-arctic-embed-m-v1.5",
          "dimensions": 256, // Or 768
          "base_url":   "<custom_weaviate_url>",
        },
      },
    },
  },
}

// add the collection
err = client.Schema().ClassCreator().WithClass(weaviateVectorizerArcticEmbedMV15).Do(ctx)
if err != nil {
  panic(err)
}
```

```java title="Java"
client.collections.create("DemoCollection",
    col -> col.vectorConfig(VectorConfig.text2vecWeaviate("title_vector",
        c -> c.sourceProperties("title").model("Snowflake/snowflake-arctic-embed-m-v1.5")
    // .inferenceUrl(null)
    // .dimensions(0)
    )).properties(Property.text("title"), Property.text("description")));
```

```csharp title="C#"
await client.Collections.Create(
    new CollectionCreateParams
    {
        Name = "DemoCollection",
        VectorConfig = new VectorConfigList
        {
            Configure.Vector(
                "title_vector",
                v =>
                    v.Text2VecWeaviate(
                        model: "Snowflake/snowflake-arctic-embed-m-v1.5"
                    // baseURL: null,
                    // dimensions: 0
                    ),
                sourceProperties: ["title"]
            ),
        },
        Properties = [Property.Text("title"), Property.Text("description")],
    }
);
```
:::

## Additional resources

- [Weaviate Embeddings: Overview](overview.md)
- [Weaviate Embeddings: Quickstart](quickstart.md)
- [Weaviate Embeddings: Administration](administration.md)
- [Model provider integrations: Text Embeddings](../model-provider-integrations/weaviate-embeddings.md)
- [Model provider integrations: Multimodal Embeddings](../model-provider-integrations/weaviate-embeddings-multimodal.md)

## Support

If you use **Weaviate Cloud** (Database cluster(s) or Weaviate product in the cloud) or have a self-hosted support package, open a ticket in the [Support Portal](https://support.weaviate.io) or email [Weaviate support](mailto\:support@weaviate.io) directly. To add a [support plan](https://weaviate.io/support-plans), contact [Weaviate sales](https://weaviate.io/pricing#contact-sales).

Use the **Support Portal** for direct help from the Weaviate team: open and track tickets, and we'll respond in line with your support plan. The **Community Forum** is open to everyone, and a great place to ask questions, get help with your cluster, and connect with other developers. For all the ways to get help, see the [Support overview](../support/overview.md).

::::card-grid
:::card{title="Weaviate Support Portal" href="https://support.weaviate.io" icon="headset"}
Direct help from the Weaviate team for Weaviate Cloud. Open and track tickets in the **Support Portal**.
:::

:::card{title="Weaviate Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions, share ideas, and connect with other developers on our **Community forum**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
