Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
This content applies to: v4.0 (GA) | Previous versions:
v3.1 (GA)
v3.0 (GA)
v2.1 (GA)
::: moniker-end
This content applies to: v2.1 | Latest version:
v4.0 (GA)
Important
The v4.0 2024-11-30
(GA) model compose
operation adds an explicitly trained classifier instead of an implicit classifier for analysis. For the previous composed model version, see Composed custom models v3.1. If you're currently using composed models, consider upgrading to the latest implementation.
With composed models, you can group multiple custom models into a composed model called with a single model ID. For example, your composed model might include custom models trained to analyze your supply, equipment, and furniture purchase orders. Instead of manually trying to select the appropriate model, you can use a composed model to determine the appropriate custom model for each analysis and extraction.
Some scenarios require classifying the document first and then analyzing the document with the model best suited to extract the fields from the model. Such scenarios can include ones where a user uploads a document but the document type isn't explicitly known. Another scenario can be when multiple documents are scanned together into a single file and the file is submitted for processing. Your application then needs to identify the component documents and select the best model for each document.
In previous versions, the model compose
operation performed an implicit classification to decide which custom model best represents the submitted document. The 2024-11-30 (GA) implementation of the model compose
operation replaces the implicit classification from the earlier versions with an explicit classification step and adds conditional routing.
The new model compose
operation requires you to train an explicit classifier and provides several benefits.
Continual incremental improvement. You can consistently improve the quality of the classifier by adding more samples and incrementally improving classification. This fine tuning ensures your documents are always routed to the right model for extraction.
Complete control over routing. By adding confidence-based routing, you provide a confidence threshold for the document type and the classification response.
Ignore document specific document types during the operation. Earlier implementations of the model compose
operation selected the best analysis model for extraction based on the confidence score even if the highest confidence scores were relatively low. By providing a confidence threshold or explicitly not mapping a known document type from classification to an extraction model, you can ignore specific document types.
Analyze multiple instances of the same document type. When paired with the splitMode
option of the classifier, the model compose
operation can detect multiple instances of the same document in a file and split the file to process each document independently. Using splitMode
enables the processing of multiple instances of a document in a single request.
Support for add on features. Add on features like query fields or barcodes can also be specified as a part of the analysis model parameters.
Assigned custom model maximum expanded to 500. The new implementation of the model compose
operation allows you to assign up to 500 trained custom models to a single composed model.
Start by collecting samples of all your needed documents including samples with information that should be extracted or ignored.
Train a classifier by organizing the documents in folders where the folder names are the document type you intend to use in your composed model definition.
Finally, train an extraction model for each of the document types you intend to use.
Once your classification and extraction models are trained, use the Document Intelligence Studio, client libraries, or the REST API to compose the classification and extraction models into a composed model.
Use the splitMode
parameter to control the file splitting behavior:
Composed models are billed the same as individual custom models. The pricing is based on the number of pages analyzed by the downstream analysis model. Billing is based on the extraction price for the pages routed to an extraction model. With the addition of the explicit classification charges are incurred for the classification of all pages in the input file. For more information, see the Document Intelligence pricing page.
Start by creating a list of all the model IDs you want to compose into a single model.
Compose the models into a single model ID using the Studio, REST API, or client libraries.
Use the composed model ID to analyze documents.
Composed models are billed the same as individual custom models. The pricing is based on the number of pages analyzed. Billing is based on the extraction price for the pages routed to an extraction model. For more information, see the Document Intelligence pricing page.
Custom template
and custom neural
models can be composed together into a single composed model across multiple API versions.
The response includes a docType
property to indicate which of the composed models was used to analyze the document.
For custom template
models, the composed model can be created using variations of a custom template or different form types. This operation is useful when incoming forms belong to one of several templates.
For custom neural
models the best practice is to add all the different variations of a single document type into a single training dataset and train on custom neural model. The model compose
operation is best suited for scenarios when you have documents of different types being submitted for analysis.
With the model compose
operation, you can assign up to 500 models to a single model ID. If the number of models that I want to compose exceeds the upper limit of a composed model, you can use one of these alternatives:
Classify the documents before calling the custom model. You can use the Read model and build a classification based on the extracted text from the documents and certain phrases by using sources like code, regular expressions, or search.
If you want to extract the same fields from various structured, semi-structured, and unstructured documents, consider using the deep-learning custom neural model. Learn more about the differences between the custom template model and the custom neural model.
Analyzing a document by using composed models is identical to analyzing a document by using a single model. The Analyze Document
result returns a docType
property that indicates which of the component models you selected for analyzing the document.
The model compose
operation is currently available only for custom models trained with labels.
Custom model type | Models trained with v2.1 and v2.0 | Custom template and neural models v3.1 and v3.0 | Custom template and neural models v4.0 2024-11-30 (GA) |
---|---|---|---|
Models trained with version 2.1 and v2.0 | Not Supported | Not Supported | Not Supported |
Custom template and neural models v3.0 and v3.1 | Not Supported | Supported | Supported |
Custom template and neural models v4.0 | Not Supported | Supported | Supported |
To compose a model trained with a prior version of the API (v2.1 or earlier), train a model with the v3.0 API using the same labeled dataset. That addition ensures that the v2.1 model can be composed with other models.
With models composed using v2.1 of the API continues to be supported, requiring no updates.
Document Intelligence v4.0:2024-11-30 (GA) supports the following tools, applications, and libraries:
Feature | Resources |
---|---|
Custom model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Composed model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Document Intelligence v3.1:2023-07-31 (GA) supports the following tools, applications, and libraries:
Feature | Resources |
---|---|
Custom model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Composed model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Document Intelligence v3.0:2022-08-31 (GA) supports the following tools, applications, and libraries:
Feature | Resources |
---|---|
Custom model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Composed model | • Document Intelligence Studio • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Document Intelligence v2.1 supports the following resources:
Feature | Resources |
---|---|
Custom model | • Document Intelligence labeling tool • REST API • Client library SDK • Document Intelligence Docker container |
Composed model | • Document Intelligence labeling tool • REST API • C# SDK • Java SDK • JavaScript SDK • Python SDK |
Learn to create and compose custom models:
Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowTraining
Module
Create a composed Azure AI Document Intelligence model - Training
Create a composed Document intelligence model.
Certification
Microsoft Certified: Azure AI Engineer Associate - Certifications
Design and implement an Azure AI solution using Azure AI services, Azure AI Search, and Azure Open AI.