Skip to content

Commit 6b26548

Browse files
author
Jill Grant
authored
Merge pull request #1333 from HeidiSteen/heidist-nov6
[release-azure-search] Updates to vector storage optimization, rescoring with original vectors
2 parents a954e3d + c0a9270 commit 6b26548

6 files changed

+280
-101
lines changed

articles/search/search-api-migration.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ms.custom:
1111
- ignite-2023
1212
- build-2024
1313
ms.topic: conceptual
14-
ms.date: 11/05/2024
14+
ms.date: 11/19/2024
1515
---
1616

1717
# Upgrade to the latest REST API in Azure AI Search
@@ -77,7 +77,7 @@ See [Migrate from preview version](semantic-how-to-configure.md#migrate-from-pre
7777

7878
[`2024-11-01-preview`](/rest/api/searchservice/search-service-api-versions#2024-11-01-preview) query rewrite, Document Layout skill, keyless billing for skills processing, Markdown parsing mode, and rescoring options for compressed vectors.
7979

80-
If you're upgrading from `2024-09-01-preview`, you can use the new preview APIs with no change to existing code.
80+
If you're upgrading from `2024-09-01-preview`, you can use the new preview APIs with no change to existing code. However, the new version introduces changes to `vectorSearch.compressions`, replacing `rerankWithOriginalVectors` with `enableRescoring`, and moving `defaultOversampling` to a new `rescoringOptions` property object. For a comparison of the syntax, see [Compress vectors using scalar or binary quantization](vector-search-how-to-quantization.md#add-compressions-to-a-search-index).
8181

8282
## Upgrade to 2024-09-01-preview
8383

@@ -129,7 +129,7 @@ If you're upgrading from the previous version, the next section has the steps.
129129

130130
## Upgrade from 2023-07-01-preview
131131

132-
Do not use this API version. It implements a vector query syntax that's incompatible with any newer API version.
132+
Don't use this API version. It implements a vector query syntax that's incompatible with any newer API version.
133133

134134
`2023-07-01-preview` is now deprecated, so you shouldn't base new code on this version, nor should you upgrade *to* this version under any circumstances. This section explains the migration path from `2023-07-01-preview` to any newer API version.
135135

articles/search/vector-search-how-to-assign-narrow-data-types.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ author: heidisteen
77
ms.author: heidist
88
ms.service: azure-ai-search
99
ms.topic: how-to
10-
ms.date: 11/04/2024
10+
ms.date: 11/19/2024
1111
---
1212

13-
# Assign narrow data types
13+
# Assign narrow data types to vector fields in Azure AI Search
1414

1515
An easy way to reduce vector size is to store embeddings in a smaller data format. Most embedding models output 32-bit floating point numbers, but if you quantize your vectors, or if your embedding model supports it natively, output might be float16, int16, or int8, which is significantly smaller than float32. You can accommodate these smaller vector sizes by assigning a narrow data type to a vector field. In the vector index, narrow data types consume less storage.
1616

1717
Data types are assigned to fields in an index definition. You can use the Azure portal, the [Search REST APIs](/rest/api/searchservice/indexes/create), or an Azure SDK package that provides the feature.
1818

1919
## Prerequisites
2020

21-
- An embedding model that output small data formats.
21+
- An embedding model that output small data formats, such as text-embedding-3 or Cohere V3 embedding models.
2222

2323
## Supported narrow data types
2424

@@ -47,7 +47,7 @@ Data types are assigned to fields in an index definition. You can use the Azure
4747

4848
## Assign the data type
4949

50-
[Define and build the index](vector-search-how-to-create-index.md). You can use the Azure portal, [Create or Update Index (REST API)](/rest/api/searchservice/indexes/create-or-update), or an Azure SDK package for this step.
50+
[Define and build an index](vector-search-how-to-create-index.md). You can use the Azure portal, [Create or Update Index (REST API)](/rest/api/searchservice/indexes/create-or-update), or an Azure SDK package for this step.
5151

5252
This field definition uses a narrow data type, `Collection(Edm.Half)`, that can accept a float32 embedding stored as a float16 value. As is true for all vector fields, `dimensions` and `vectorSearchProfile` are set. The specifics of the `vectorSearchProfile` are immaterial to the datatype.
5353

@@ -80,12 +80,9 @@ Data types are assigned on new fields when they're created. You can't change the
8080

8181
## Check results
8282

83-
1. Verify the field content matches the data type. Assuming the vector field is marked as retrievable, use [Search explorer](search-explorer.md) or [Search - POST](/rest/api/searchservice/documents/search-post?) to return vector field content.
83+
1. Verify the field content matches the data type. Assuming the vector field is marked as `retrievable`, use [Search explorer](search-explorer.md) or [Search - POST](/rest/api/searchservice/documents/search-post?) to return vector field content.
8484

85-
1. To check vector index size, refer to the vector index size column on the Indexes page in the Azure portal or use the [GET Statistics (REST API)](/rest/api/searchservice/indexes/get-statistics) or equivalent Azure SDK method to get the size.
86-
87-
<!--
88-
Evidence of choosing the wrong data type, for example choosing `int8` for a `float32` embedding, is a field that's indexed as an array of zeros. If you encounter this problem, start over. -->
85+
1. To check vector index size, refer to the vector index size column on the **Search management > Indexes** page in the [Azure portal](https://portal.azure.com) or use the [GET Statistics (REST API)](/rest/api/searchservice/indexes/get-statistics) or equivalent Azure SDK method to get the size.
8986

9087
> [!NOTE]
91-
> The field's data type is used to create the physical data structure. If you want to change a data type later, either drop and rebuild the index, or create a second field with the new definition.
88+
> The field's data type is used to create the physical data structure. If you want to change a data type later, either [drop and rebuild the index](search-howto-reindex.md), or create a second field with the new definition.

articles/search/vector-search-how-to-index-binary-data.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,30 @@ ms.service: azure-ai-search
99
ms.custom:
1010
- build-2024
1111
ms.topic: how-to
12-
ms.date: 08/05/2024
12+
ms.date: 11/19/2024
1313
---
1414

1515
# Index binary vectors for vector search
1616

17-
Azure AI Search supports a packed binary type of `Collection(Edm.Byte)` for further reducing the storage and memory footprint of vector data. You can use this data type for output from models such as [Cohere's Embed v3 binary embedding models](https://cohere.com/blog/introducing-embed-v3).
17+
Azure AI Search supports a packed binary type of `Collection(Edm.Byte)` for further reducing the storage and memory footprint of vector data. You can use this data type for output from models such as [Cohere's Embed v3 binary embedding models](https://cohere.com/blog/introducing-embed-v3) or any other embedding model or process that outputs vectors as binary bytes.
1818

1919
There are three steps to configuring an index for binary vectors:
2020

2121
> [!div class="checklist"]
2222
> + Add a vector search algorithm that specifies Hamming distance for binary vector comparison
2323
> + Add a vector profile that points to the algorithm
24-
> + Add the vector profile to your binary field definition
24+
> + Add a vector field of type `Collection(Edm.Byte)` and assign the Hamming distance
2525
26-
This article assumes you're familiar with [creating an index in Azure AI Search](search-how-to-create-search-index.md). It uses the REST APIs to illustrate each step, but you could also add a binary field to an index in the Azure portal.
26+
This article assumes you're familiar with [creating an index in Azure AI Search](search-how-to-create-search-index.md) and [adding vector fields](vector-search-how-to-create-index.md). It uses the REST APIs to illustrate each step, but you could also add a binary field to an index in the Azure portal or Azure SDK.
2727

28-
Binary data types are generally available starting with API version 2024-07-01 and are assigned to fields using the [Create Index](/rest/api/searchservice/indexes/create) or [Create Or Update Index](/rest/api/searchservice/indexes/create-or-update) APIs.
28+
The binary data type is generally available starting with API version 2024-07-01 and is assigned to fields using the [Create Index](/rest/api/searchservice/indexes/create) or [Create Or Update Index](/rest/api/searchservice/indexes/create-or-update) APIs.
2929

3030
> [!TIP]
31-
> If you're investigating binary vector support for its smaller footprint, you might also consider the vector quantization and storage reduction features in Azure AI Search. Inputs are float32 or float16 embeddings. Output is stored data in a much smaller format. For more information, see [Assign narrow data types](vector-search-how-to-assign-narrow-data-types.md).
31+
> If you're investigating binary vector support for its smaller footprint, you might also consider the vector quantization and storage reduction features in Azure AI Search. Inputs are float32 or float16 embeddings. Output is stored data in a much smaller format. For more information, see [Compress using binary or scalar quantization](vector-search-how-to-quantization.md) and [Assign narrow data types](vector-search-how-to-assign-narrow-data-types.md).
3232
3333
## Prerequisites
3434

35-
+ Binary vectors, with 1 bit per dimension, packaged in uint8 values with 8 bits per value. These can be obtained by using models that directly generate "packaged binary" vectors, or by quantizing vectors into binary vectors client-side during indexing and searching.
35+
+ Binary vectors, with 1 bit per dimension, packaged in uint8 values with 8 bits per value. These can be obtained by using models that directly generate *packaged binary* vectors, or by quantizing vectors into binary vectors client-side during indexing and searching.
3636

3737
## Limitations
3838

0 commit comments

Comments
 (0)