Skip to content

Commit 76f2f1f

Browse files
authored
Merge pull request #3395 from MicrosoftDocs/main
11:00 AM IST Publishing
2 parents 4d90f76 + 7d49606 commit 76f2f1f

File tree

5 files changed

+38
-28
lines changed

5 files changed

+38
-28
lines changed

articles/machine-learning/how-to-add-users.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.reviewer: vkann
88
ms.service: azure-machine-learning
99
ms.subservice: mldata
1010
ms.topic: how-to
11-
ms.date: 03/12/2024
11+
ms.date: 03/06/2025
1212
# customer intent: As a data labeling project manager, I want to add users to my data labeling project so that they can label data, but with restricted permissions.
1313
---
1414

articles/machine-learning/how-to-manage-labeling-projects.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.reviewer: vkann
88
ms.service: azure-machine-learning
99
ms.subservice: mldata
1010
ms.topic: how-to
11-
ms.date: 02/01/2024
11+
ms.date: 03/06/2025
1212
ms.custom: data4ml
1313
monikerRange: 'azureml-api-1 || azureml-api-2'
1414
# customer intent: As a project manager, I want to monitor and administer a labeling project in Azure Machine Learning.
@@ -80,7 +80,7 @@ Additionally, when ML-assisted labeling is enabled, you can scroll down to see t
8080
On the **Data** tab, preview the dataset and review labeled data.
8181

8282
> [!TIP]
83-
> Before you review, coordinate with any other possible reviewers. Otherwise, you might both be trying to approve the same label at the same time, which will keep one of you from updating it.
83+
> Before you review, coordinate with any other possible reviewers. Otherwise, you might both be trying to approve the same label at the same time, which will keep one of you from updating it.
8484
8585
Scroll through the labeled data to see the labels. If you see data that's incorrectly labeled, select it and choose **Reject** to remove the labels and return the data to the unlabeled queue.
8686

@@ -147,11 +147,11 @@ View and change details of your project on the **Details** tab. On this tab, you
147147

148148
### Projects created in Azure AI services
149149

150-
If your labeling project was created from [Vision Studio](/azure/ai-services/computer-vision/how-to/model-customization) or [Language Studio](/azure/ai-services/language-service/custom/azure-machine-learning-labeling), you'll see an extra tab on the **Details** page. The tab allows you to switch between labeling in Azure Machine Learning and labeling in Vision Studio or Language Studio.
150+
If your labeling project was created from [Vision Studio](/azure/ai-services/computer-vision/how-to/model-customization) or [Language Studio](/azure/ai-services/language-service/custom/azure-machine-learning-labeling), you see an extra tab on the **Details** page. The tab allows you to switch between labeling in Azure Machine Learning and labeling in Vision Studio or Language Studio.
151151

152152
#### [Image projects](#tab/image)
153153

154-
If your project was created from [Vision Studio](/azure/ai-services/computer-vision/how-to/model-customization), you'll also see a **Vision Studio** tab. Select **Go to Vision Studio** to return to Vision Studio. Once you return to Vision Studio, you'll be able to import your labeled data.
154+
If your project was created from [Vision Studio](/azure/ai-services/computer-vision/how-to/model-customization), you also see a **Vision Studio** tab. Select **Go to Vision Studio** to return to Vision Studio. Once you return to Vision Studio, you'll be able to import your labeled data.
155155

156156
#### [Text projects](#tab/text)
157157

articles/search/hybrid-search-ranking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ The following chart identifies the scoring property returned on each match, algo
5555
|---------------|-----------|-------------------|-------|
5656
| full-text search | `@search.score` | BM25 algorithm | No upper limit. |
5757
| vector search | `@search.score` | HNSW algorithm, using the similarity metric specified in the HNSW configuration. | 0.333 - 1.00 (Cosine), 0 to 1 for Euclidean and DotProduct. |
58-
| hybrid search | `@search.score` | RRF algorithm | Upper limit is bounded by the number of queries being fused, with each query contributing a maximum of approximately 1 to the RRF score. For example, merging three queries would produce higher RRF scores than if only two search results are merged. |
58+
| hybrid search | `@search.score` | RRF algorithm | Upper limit is bounded by the number of queries being fused, with each query contributing a maximum of approximately `1/k` to the RRF score (this is the `k` parameter in the RRF algorithm, not the vector query). For example, merging three queries would produce higher RRF scores than if only two search results are merged. |
5959
| semantic ranking | `@search.rerankerScore` | Semantic ranking | 0.00 - 4.00 |
6060

6161
Semantic ranking occurs after RRF merging of results. Its score (`@search.rerankerScore`) is always reported separately in the query response. Semantic ranker can rerank full text and hybrid search results, assuming those results include fields having semantically rich content. It can rerank pure vector queries if the search documents include text fields that contain semantically relevant content.

articles/search/vector-search-how-to-storage-options.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,20 @@ For every vector field, there could be three copies of the vectors, each serving
2626

2727
| Instance | Usage | Controlled using |
2828
|----------|-------|------------|
29-
| Source vectors which store the JSON that was received during document indexing | Used for incremental data refresh with `merge` or `mergeOrUpload` during document indexing. Also used if you want "retrievable" vectors returned in the query response. | `stored` property on vector fields |
30-
| Original full-precision vectors | In existing indexes, these are used for internal index operations and for exhaustive KNN search. For vectors using compression, it's also used for rescoring (if enabled) on an oversampled candidate set of results from ANN search on vector fields using [scalar or binary quantization](vector-search-how-to-quantization.md) compression. | `rescoringOptions.rescoreStorageMethod` property in `vectorSearch.compressions`. For *uncompressed* vector fields on indexes created with `2024-11-01-Preview` API versions and later, this will be omitted by default with no impact on search activities nor quality. |
31-
| Vectors in the [HNSW graph for Approximate Nearest Neighbors (ANN) search](vector-search-overview.md) | Used for ANN query execution. Consists of either full-precision vectors (when no compression is applied) or quantized vectors (when compression is applied) | Only applies to HNSW. These data structures are required for efficient ANN search. |
29+
| Source vectors which store the JSON that was received during document indexing (JSON data) | Used for incremental data refresh with `merge` or `mergeOrUpload` during document indexing. Also used if you want "retrievable" vectors returned in the query response. | `stored` property on vector fields |
30+
| Original full-precision vectors (binary data) | In existing indexes, these are used for internal index operations and for exhaustive KNN search. For vectors using compression, it's also used for rescoring (if enabled) on an oversampled candidate set of results from ANN search on vector fields using [scalar or binary quantization](vector-search-how-to-quantization.md) compression. | `rescoringOptions.rescoreStorageMethod` property in `vectorSearch.compressions`. For *uncompressed* vector fields on indexes created with `2024-11-01-Preview` API versions and later, this will be omitted by default with no impact on search activities nor quality. |
31+
| Vectors in the [HNSW graph for Approximate Nearest Neighbors (ANN) search](vector-search-overview.md) (HNSW graph) | Used for ANN query execution. Consists of either full-precision vectors (when no compression is applied) or quantized vectors (when compression is applied) | Only applies to HNSW. These data structures are required for efficient ANN search. |
3232

33-
You can set properties that permanently discard the first two instances from vector storage.
33+
You can set properties that permanently discard the first two instances (JSON data and binary data) from vector storage.
3434

35-
The last instance (vectors and graph) is required for ANN vector query execution. If any compression techniques such as [scalar or binary quantization](vector-search-how-to-quantization.md) are used, they would be applied to this set of data. If you want to offset lossy compression, you should keep the second instance for rescoring purposes to improve ANN search quality.
35+
The last instance (HNSW graph) is required for ANN vector query execution. If any compression techniques such as [scalar or binary quantization](vector-search-how-to-quantization.md) are used, they are applied to this set of data. If you want to offset lossy compression, you should keep the second instance (binary data) for rescoring purposes to improve ANN search quality.
36+
37+
### Indexes created on or after 2024-11-01-preview API version
38+
For indexes created with the 2024-11-01-preview API version with uncompressed vector fields, the second and third instances (binary data and HNSW graph) are combined as part of our cost reduction investments, reducing overall storage. The same index created with the 2024-11-01-preview API is functionally equivalent but uses less storage compared to identical indexes created with earlier API versions. Physical data structures are established on a Create Index request, so you must delete and recreate the index to realize the storage reductions.
39+
40+
If you choose to use [vector compression](vector-search-how-to-configure-compression-storage.md), we compress (quantize) the in-memory portion of the vector index. Since memory is often a primary constraint for vector indexes, this allows storing more vectors within the same search service. However, lossy compression results in some information loss, which can impact search quality.
41+
42+
To mitigate this, enabling "rescoring" and "oversampling" helps maintain accuracy. This retrieves a larger set of candidate documents from the compressed index and then recomputes similarity scores using the original vectors, which must be retained in storage. As a result, while quantization reduces memory usage (vector index size usage), it slightly increases storage requirements since both compressed and original vectors are stored. The additional storage is approximately equal to the size of the compressed index.
3643

3744
## Set the `stored` property
3845

articles/search/vector-search-index-size.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,18 @@ For each vector field, Azure AI Search constructs an internal vector index using
2121
> A note about terminology. Internally, the physical data structures of a search index include raw content (used for retrieval patterns requiring non-tokenized content), inverted indexes (used for searchable text fields), and vector indexes (used for searchable vector fields). This article explains the limits for the internal vector indexes that back each of your vector fields.
2222
2323
> [!TIP]
24-
> [Vector optimization techniques](vector-search-how-to-configure-compression-storage.md) are now generally available. Use capabilities like narrow data types, scalar and binary quantization, and elimination of redundant storage to stay under vector quota and storage quota.
24+
> [Vector optimization techniques](vector-search-how-to-configure-compression-storage.md) are now generally available. Use capabilities like narrow data types, scalar and binary quantization, and elimination of redundant storage to reduce your vector quota and storage quota consumption.
25+
26+
> [!NOTE]
27+
> Not all algorithms consumes vector index size quota. Vector quotas are established based on memory requirements of approximate nearest neighbor search. Vector fields created with the Hierarchical Navigable Small World (HNSW) algorithm need to reside in memory during query execution because of the random-access nature of graph-based traversals. Vector fields using exhaustive KNN algorithm are loaded into memory dynamically in pages during query execution, and as a result do not consume vector quota.
2528
2629
## Key points about quota and vector index size
2730

2831
+ Vector index size is measured in bytes.
2932

30-
+ Vector quotas are based on memory constraints. For vector indexes created using the Hierarchical Navigable Small World (HNSW) algorithm, searchable vector indexes reside in memory. At the same time, there must also be sufficient memory for other runtime operations. Vector quotas exist to ensure that the overall system remains stable and balanced for all workloads. If you use exhaustive KNN algorithm, indexes are loaded into memory only at query time.
33+
+ The total storage of your service contains all of your vector index files. Azure AI Search maintains different copies of vector index files for different purposes. We offer additional options to reduce the [storage overhead of vector indexes](vector-search-how-to-storage-options.md) by eliminating some of these copies.
3134

32-
+ Vector indexes are also subject to disk quota, in the sense that all indexes are subject disk quota. There's no separate disk quota for vector indexes.
33-
34-
+ Vector quotas are enforced on the search service as a whole, per partition, meaning that if you add partitions, vector quota goes up. Per-partition vector quotas are higher on newer services. For more information, see [Vector index size limits](search-limits-quotas-capacity.md#vector-index-size-limits).
35+
+ Vector quotas are enforced on the search service as a whole, per partition. If you add partitions, vector quota also increases. Per-partition vector quotas are higher on newer services. For more information, see [Vector index size limits](search-limits-quotas-capacity.md#vector-index-size-limits).
3536

3637
## How to check partition size and quantity
3738

@@ -197,23 +198,25 @@ The storage size of one vector is determined by its dimensionality. Multiply the
197198

198199
Every approximate nearest neighbor (ANN) algorithm generates extra data structures in memory to enable efficient searching. These structures consume extra space within memory.
199200

200-
**For the HNSW algorithm, the memory overhead ranges between 1% and 20%.**
201+
**For the HNSW algorithm, the memory overhead ranges between 1% and 20% for uncompressed float32 (Edm.Single) vectors.**
201202

202-
The memory overhead is lower for higher dimensions because the raw size of the vectors increases, while the extra data structures remain a fixed size since they store information on the connectivity within the graph. Consequently, the contribution of the extra data structures constitutes a smaller portion of the overall size.
203+
As dimensionality increases, the memory overhead percentage decreases. This occurs because the raw size of the vectors increases in size while the additional data structures, which store graph connectivity information, remain a fixed size for a given `m`. As a result, the relative impact of these extra data structures diminishes in relation to the overall vector size.
203204

204-
The memory overhead is higher for larger values of the HNSW parameter `m`, which determines the number of bi-directional links created for every new vector during index construction. This is because `m` contributes approximately 8 bytes to 10 bytes per document multiplied by `m`.
205+
The memory overhead increases with larger values of the HNSW parameter `m`, which specifies the number of bi-directional links created for each new vector during index construction. This happens because each link contributes approximately 8 to 10 bytes per document, and the total overhead scales proportionally with `m`.
205206

206-
The following table summarizes the overhead percentages observed in internal tests:
207+
The following table summarizes the overhead percentages observed in internal tests for *uncompressed* vector fields:
207208

208209
| Dimensions | HNSW Parameter (m) | Overhead Percentage |
209-
|-------------------|--------------------|---------------------|
210-
| 96 | 4 | 20% |
211-
| 200 | 4 | 8% |
212-
| 768 | 4 | 2% |
213-
| 1536 | 4 | 1% |
214-
| 3072 | 4 | 0.5% |
210+
|------------|--------------------|---------------------|
211+
| 96 | 4 | 20% |
212+
| 200 | 4 | 8% |
213+
| 768 | 4 | 2% |
214+
| 1536 | 4 | 1% |
215+
| 3072 | 4 | 0.5% |
216+
217+
These results demonstrate the relationship between dimensions, HNSW parameter `m`, and memory overhead for the HNSW algorithm.
215218

216-
These results demonstrate the relationship between dimensions, HNSW parameter `m`, and memory overhead for the HNSW algorithm.
219+
For vector fields which use compression techniques, such as [scalar or binary quantization](vector-search-how-to-quantization.md), the overhead percentage appears to consume a greater percentage of the total vector index size. As the size of the data decreases, the relative impact of the fixed-size data structures used to store graph connectivity information becomes more significant.
217220

218221
### Overhead from deleting or updating documents within the index
219222

@@ -237,4 +240,4 @@ To obtain the **vector index size**, multiply this **raw_size** by the **algorit
237240

238241
## How vector fields affect disk storage
239242

240-
Most of this article provides information about the size of vectors in memory. If you want to know about vector size on disk, the disk consumption for vector data is roughly three times the size of the vector index in memory. For example, if your `vectorIndexSize` usage is at 100 megabytes (10 million bytes), you would have used least 300 megabytes of `storageSize` quota to accommodate your vector indexes.
243+
Most of this article provides information about the size of vectors in memory. Read more about the [storage overhead of vector indexes](vector-search-how-to-storage-options.md).

0 commit comments

Comments
 (0)