Use Document Intelligence incremental classifiers
This content applies to: v4.0 (preview)
Azure AI Document Intelligence is a cloud-based Azure AI service that enables you to build intelligent document processing solutions. Document Intelligence APIs analyze images, PDFs, and other document files to extract and detect various content, layout, style, and semantic elements.
Document Intelligence custom classification models are deep-learning-model types that combine layout and language features to accurately detect and identify documents you process within your applications. Custom classification models perform classification of input files one page at a time to identify the documents within and can also identify multiple documents or multiple instances of a single document within an input file.
Document Intelligence document classifiers identify known document types in files. When processing an input file with multiple document types or when you don't know the document type, use a classifier to identify the document. Classifiers should be periodically updated whenever the following changes occur:
- You add new templates for an existing class.
- You add new document types for recognition.
- Classifier confidence is low.
In some scenarios, you can no longer have the original set of documents used to train the classifier. With incremental training, you can update the classifier with just the new labeled samples.
Note
Incremental training only applies to document classifier models and not custom models.
Incremental training is useful when you want to improve the quality of a custom classifier. Adding new training samples for existing classes improves the confidence of the model for existing document types. For instance, if a new version of an existing form is added or there's a new document type. An example can be when your application starts supporting a new document type as a valid input.
Getting started with incremental training
Incremental training doesn't introduce any new API endpoints.
The
documentClassifiers:build
request payload is modified to support incremental training.Incremental training results in a new classifier model being created with the existing classifier left untouched.
The new classifier has all the document samples and types of the old classifier along with the newly provided samples. You need to ensure your application is updates to work with the newly trained classifier.
Note
Copy operation for classifiers is currently unavailable.
Create an incremental classifier build request
The incremental classifier build request is similar to the classify document
build request but includes the new baseClassifierId
property. The baseClassifierId
is set to the existing classifier that you want to extend. You also need to provide the docTypes
for the different document types in the sample set. By providing a docType
that exists in the baseClassifier, the samples provided in the request are added to the samples provided when the base classifier was trained. New docType
values added in the incremental training are only added to the new classifier. The process to specify the samples remains unchanged. For more information, see training a classifier model.
Sample POST request
Sample POST
request to build an incremental document classifier
POST
{your-endpoint}/documentintelligence/documentClassifiers:build?api-version=2024-02-29-preview
{
"classifierId": "myAdaptedClassifier",
"description": "Classifier description",
"baseClassifierId": "myOriginalClassifier",
"docTypes": {
"formA": {
"azureBlobSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"prefix": "formADocs/"
}
},
"formB": {
"azureBlobFileListSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer?mySasToken",
"fileList": "formB.jsonl"
}
}
}
}
POST response
All Document Intelligence APIs are asynchronous, polling the returned operation location provides a status on the build operation. Classifiers are fast to train and your classifier can be ready to use in a minute or two.
Upon successful completion:
- The successful
POST
method returns a202 OK
response code indicating that the service created the request. - The translated documents are located in your target container.
- The
POST
request also returns response headers includingOperation-Location
. The value of this header contains aresultId
that can be queried to get the status of the asynchronous operation and retrieve the results using aGET
request with your same resource subscription key.
Sample GET request
Sample GET
request to retrieve the result of an incremental document classifier
GET
{your-endpoint}/documentintelligence/documentClassifiers/{classifierId}/analyzeResults/{resultId}?api-version=2024-02-29-preview
{
"classifierId": "myAdaptedClassifier",
"description": "Classifier description",
"createdDateTime": "2022-07-30T00:00:00Z",
"expirationDateTime": "2023-01-01T00:00:00Z",
"apiVersion": "2024-02-29-preview",
"baseClassifierId": "myOriginalClassifier",
"docTypes": {
"formA": {
"azureBlobSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer",
"prefix": "formADocs/"
}
},
"formB": {
"azureBlobFileListSource": {
"containerUrl": "https://myStorageAccount.blob.core.windows.net/myContainer",
"fileList": "formB.jsonl"
}
}
}
}
GET response
The GET
response from an incrementally trained classifier differs from the standard classifier GET
response. The incrementally trained classifier doesn't return all the document types supported. It returns the document types added or updated in the incremental training step and the extended base classifier. To get a complete list of document types, the base classifier must be listed. Deleting a base classifier doesn't impact the use of an incrementally trained classifier.
Limits
Incremental training only works when the base classifier and the incrementally trained classifier are both trained on the same API version. As a result, the incrementally trained classifier has the same model lifecycle as the base classifier.
Training dataset size limits for the incremental classifier are the same as for other classifier model. See service limits for a complete list of applicable limits.
Next steps
- Learn more about document classification