Modèle de classification personnalisé Intelligence documentaire
Important
- Les mises en production de préversion publique Document Intelligence fournissent un accès anticipé aux fonctionnalités en cours de développement actif. Les fonctionnalités, approches et processus peuvent changer, avant la disponibilité générale (GA), en fonction des commentaires des utilisateurs.
- La préversion publique des bibliothèques de client Intelligence documentaire utilise par défaut la version 2024-07-31-preview de l’API REST.
- La préversion publique 2024-07-31-preview est actuellement disponible uniquement dans les régions Azure suivantes. Notez que le modèle génératif personnalisé (extraction de champ de document) dans AI Studio est disponible uniquement dans la région USA Centre Nord :
- USA Est
- USA Ouest 2
- Europe Ouest
- USA Centre Nord
Ce contenu s’applique à : v4.0 (préversion) | Version précédente : v3.1 (GA)
Ce contenu s’applique à : v3.1 (GA) | Dernière version : v4.0 (préversion)
Important
- L'API
2024-07-31-preview
, modèle de classification personnalisé, ne divisera pas les documents par défaut pendant le processus d'analyse. - Vous devez définir explicitement la propriété
splitMode
pour conserver automatiquement le comportement des versions précédentes. La valeur par défaut desplitMode
est denone
. - Si votre fichier d’entrée contient plusieurs documents, vous devez activer le fractionnement en définissant le
splitMode
surauto
.
Azure AI Intelligence Documentaire est un service cloud Azure AI Services, qui permet aux développeurs de créer des solutions intelligentes de traitement de documents. Les API Document Intelligence analysent les images, les PDF et autres fichiers de documents pour extraire et détecter divers éléments de contenu, de mise en page, de style et de sémantique.
Les modèles de classification personnalisés sont des types de modèles d’apprentissage profond qui combinent des fonctionnalités de disposition et de langage pour détecter et identifier avec précision des documents que vous traitez dans votre application. Les modèles de classification personnalisés effectuent la classification d'un fichier d'entrée page par page pour identifier les documents qu'il contient et peuvent également identifier plusieurs documents ou plusieurs instances d'un seul document dans un fichier d'entrée.
Fonctionnalités des modèles
Remarque
- À partir de l’API
2024-02-29-preview
, les modèles de classification personnalisés prennent en charge la formation incrémentielle. Vous pouvez ajouter de nouveaux échantillons aux classes existantes ou ajouter de nouvelles classes en référençant un classificateur existant.
Les modèles de classification personnalisés peuvent analyser des documents à fichier unique ou à plusieurs fichiers pour déterminer si l’un des types de documents entraînés est contenu dans un fichier d’entrée. Voici les scénarios actuellement pris en charge :
Un fichier unique contenant un type de document, comme un formulaire de demande de prêt.
Un fichier unique contenant plusieurs types de documents. Par exemple, un package de demande de prêt contenant un formulaire de demande de prêt, une fiche de paie et un relevé bancaire.
Fichier unique contenant plusieurs instances du même document. Par exemple, une collection de factures numérisées.
✔️ L’apprentissage d’un classifieur personnalisé nécessite au moins two
classes distinctes et un minimum de five
exemples de documents par classe. La réponse du modèle contient les plages de pages pour chacune des classes de documents identifiées.
✔️ Le nombre maximal autorisé de classes est 500
. Le nombre maximal autorisé d’exemples de documents par classe est 100
.
Le modèle classifie chaque page du document d’entrée, sauf indication contraire, à l’une des classes du jeu de données étiqueté. Vous pouvez également spécifier les numéros de page à analyser dans le document d’entrée. Pour définir le seuil de votre candidature, utilisez le score de confiance de la réponse.
Formation progressive
Avec les modèles personnalisés, vous devez conserver l'accès à l'ensemble de données de formation pour mettre à jour votre classificateur avec de nouveaux échantillons pour une classe existante ou ajouter de nouvelles classes. Les modèles de classificateur prennent désormais en charge la formation incrémentielle dans laquelle vous pouvez référencer un classificateur existant et ajouter de nouveaux échantillons pour une classe existante ou ajouter de nouvelles classes avec des échantillons. La formation incrémentielle permet des scénarios dans lesquels la conservation des données constitue un défi et où le classificateur doit être mis à jour pour s'adapter à l'évolution des besoins de l'entreprise. La formation incrémentielle est prise en charge avec les modèles entraînés avec la version API 2024-02-29-preview
et versions ultérieures.
Important
La formation incrémentielle n’est prise en charge qu’avec les modèles entraînés avec la même version de l’API. Si vous essayez d'étendre un modèle, utilisez la version de l'API avec laquelle le modèle d'origine a été formé pour étendre le modèle. L’entraînement incrémentiel est pris en charge uniquement avec la version d’API 2024-07-31-preview ou version ultérieure.
La formation incrémentielle nécessite que vous fournissiez l'ID de modèle d'origine comme baseClassifierId
. Consultez la formation incrémentielle pour en savoir plus sur l’utilisation de la formation incrémentielle.
Prise en charge des types de documents Office
Vous pouvez désormais former les classificateurs à reconnaître les types de documents dans différents formats, notamment PDF, images, Word, PowerPoint et Excel. Lors de l’assemblage de votre ensemble de données de formation, vous pouvez ajouter des documents de n’importe quel type pris en charge. Le classificateur ne vous oblige pas à étiqueter explicitement des types spécifiques. Il est recommandé de garantir que votre ensemble de données d'entraînement contient au moins un échantillon de chaque format afin d'améliorer la précision globale du modèle.
Comparer la classification personnalisée et les modèles composés
Un modèle de classification personnalisée peut remplacer un modèle composé dans certains scénarios, mais il existe quelques différences à prendre en compte :
Fonctionnalité | Processus de classifieur personnalisé | Processus de modèle composé |
---|---|---|
Analysez un document unique de type inconnu appartenant à l’un des types entraînés pour le traitement du modèle d’extraction. | ● Nécessite plusieurs appels. ● Appelez le modèle de classification basé sur la classe de document. Cette étape permet une vérification basée sur la confiance avant d’appeler l’analyse du modèle d’extraction. ● Appelez le modèle d’extraction. |
● Nécessite un appel unique à un modèle composé contenant le modèle correspondant au type de document d’entrée. |
Analysez un document unique de type inconnu appartenant à plusieurs types entraînés pour le traitement du modèle d’extraction. | ●Nécessite plusieurs appels. ● Appelez le classificateur qui ignore les documents ne correspondant pas à un type désigné pour l'extraction. ● Appelez le modèle d’extraction. |
● Nécessite un seul appel à un modèle composé. Le service sélectionne un modèle personnalisé dans le modèle composé avec la correspondance la plus élevée. ● Un modèle composé ne peut pas ignorer les documents. |
Analysez un fichier contenant plusieurs documents de type connu ou inconnu appartenant à l’un des types entraînés pour le traitement du modèle d’extraction. | ● Nécessite plusieurs appels. ● Appelez le modèle d'extraction pour chaque document identifié dans le fichier d'entrée. ● Appelez le modèle d’extraction. |
● Nécessite un seul appel à un modèle composé. ● Le modèle composé appelle le modèle de composant une fois sur la première instance du document. ●Les documents restants sont ignorés. |
Support multilingue
Actuellement, les modèles de classification prennent uniquement en charge des documents en anglais.
Les modèles de classification peuvent désormais être formés sur des documents de langues différentes. Pour obtenir la liste complète, consultez Langues prises en charge.
Critères des entrées
Formats de fichiers pris en charge :
Modèle | Image :jpeg/jpg , png , bmp , tiff , heif |
Microsoft Office : Word (docx), Excel (xlxs), PowerPoint (pptx) |
|
---|---|---|---|
Lire | ✔ | ✔ | ✔ |
Layout | ✔ | ✔ | ✔ (Aperçu du 29/02/2024, aperçu du 31/10/2023 et versions ultérieures) |
Document général | ✔ | ✔ | |
Prédéfinie | ✔ | ✔ | |
Extraction personnalisée | ✔ | ✔ | |
Classification personnalisée | ✔ | ✔ | ✔ |
Pour obtenir de meilleurs résultats, fournissez cinq photos claires ou images numérisées de haute qualité par type de document.
Pour les PDF et TIFF, jusqu'à 2 000 pages peuvent être traitées (avec un abonnement gratuit, seules les deux premières pages sont traitées).
La taille de fichier pour l’analyse des documents est de 500 Mo pour le niveau payant (S0) et de 4 Mo pour le niveau gratuit (F0).
Les dimensions des images doivent être comprises entre 50 x 50 et 10 000 x 10 000 pixels.
Si vos fichiers PDF sont verrouillés par mot de passe, vous devez supprimer le verrou avant leur envoi.
La hauteur minimale du texte à extraire est de 12 pixels pour une image de 1024 x 768 pixels. Cette dimension correspond à un texte d'environ
8
-point à 150 points par pouce (DPI
).Pour la formation de modèles personnalisés, le nombre maximal de pages pour les données de formation est de 500 pour le modèle personnalisé et 50 000 pour le modèle neural personnalisé.
Pour l’entraînement du modèle d’extraction personnalisé, la taille totale des données d’entraînement est de 50 Mo pour le modèle et 1G-Mo pour le modèle neural.
Pour la formation du modèle de classification personnalisé, la taille totale des données de formation est de 1 Go avec un maximum de 10 000 pages.
Fractionnement de document
Lorsque vous avez plusieurs documents dans un fichier, le classifieur peut identifier les différents types de documents contenus dans le fichier d’entrée. La réponse du classifieur contient les plages de pages pour chacun des types de documents identifiés contenus dans un fichier. Cette réponse peut inclure plusieurs instances du même type de document.
L’opération analyze
inclut désormais une propriété splitMode
qui vous donne un contrôle granulaire sur le comportement du fractionnement.
- Pour traiter l’intégralité du fichier d’entrée en tant que document unique pour la classification, définissez le splitMode sur
none
. Lorsque vous le faites, le service retourne une seule classe pour l’ensemble du fichier d’entrée. - Pour classifier chaque page du fichier d’entrée, définissez le splitMode sur
perPage
. Le service tente de classifier chaque page en tant que document individuel. - Définissez le splitMode sur
auto
et le service identifie les documents et les plages de pages associées.
Bonnes pratiques
L’apprentissage des modèles de classification personnalisés nécessite au moins cinq exemples par classe. Si les classes sont similaires, l’ajout d’exemples d’entraînement supplémentaires améliore la précision du modèle.
Le classifieur tente d’affecter chaque document à l’une des classes. Si vous prévoyez que le modèle affiche des types de documents qui ne font pas partie du jeu de données de formation, vous devez planifier la définition d’un seuil sur le score de classification ou ajouter quelques exemples représentatifs des types de documents à une classe "other"
. L'ajout d'une classe "other"
garantit que les documents inutiles n'affectent pas la qualité de votre classificateur.
Training a model
Les modèles de classification personnalisés sont pris en charge par v4.0 : 2024-02-29-preview, 2024-07-31-preview et v3.1 : 2023-07-31 (GA) API. Document Intelligence Studio fournit une interface utilisateur sans code pour effectuer l’apprentissage interactif d’un classifieur personnalisé. Suivez le guide pratique pour commencer.
Lorsque vous utilisez l’API REST, si vous organisez vos documents par dossiers, vous pouvez utiliser la propriété azureBlobSource
de la requête pour entraîner un modèle de classification.
https://{endpoint}/documentintelligence/documentClassifiers:build?api-version=2024-02-29-preview
{
"classifierId": "demo2.1",
"description": "",
"docTypes": {
"car-maint": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "sample1/car-maint/"
}
},
"cc-auth": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "sample1/cc-auth/"
}
},
"deed-of-trust": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "sample1/deed-of-trust/"
}
}
}
}
https://{endpoint}/formrecognizer/documentClassifiers:build?api-version=2023-07-31
{
"classifierId": "demo2.1",
"description": "",
"docTypes": {
"car-maint": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "{path to dataset root}/car-maint/"
}
},
"cc-auth": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "{path to dataset root}/cc-auth/"
}
},
"deed-of-trust": {
"azureBlobSource": {
"containerUrl": "SAS URL to container",
"prefix": "{path to dataset root}/deed-of-trust/"
}
}
}
}
Sinon, si vous disposez d’une liste plate de fichiers ou que vous envisagez uniquement d’utiliser quelques fichiers sélectionnés dans chaque dossier pour entraîner le modèle, vous pouvez utiliser la propriété azureBlobFileListSource
pour effectuer l’apprentissage du modèle. Cette étape nécessite un file list
au format Lignes JSON. Pour chaque classe, ajoutez un nouveau fichier avec une liste de fichiers à soumettre pour l’apprentissage.
{
"classifierId": "demo2",
"description": "",
"docTypes": {
"car-maint": {
"azureBlobFileListSource": {
"containerUrl": "SAS URL to container",
"fileList": "{path to dataset root}/car-maint.jsonl"
}
},
"cc-auth": {
"azureBlobFileListSource": {
"containerUrl": "SAS URL to container",
"fileList": "{path to dataset root}/cc-auth.jsonl"
}
},
"deed-of-trust": {
"azureBlobFileListSource": {
"containerUrl": "SAS URL to container",
"fileList": "{path to dataset root}/deed-of-trust.jsonl"
}
}
}
}
Par exemple, la liste de fichiers car-maint.jsonl
contient les fichiers suivants.
{"file":"classifier/car-maint/Commercial Motor Vehicle - Adatum.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Fincher.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Lamna.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Liberty.pdf"}
{"file":"classifier/car-maint/Commercial Motor Vehicle - Trey.pdf"}
Remplacement d’un modèle
Remarque
À compter de l’API 2024-07-31-preview
, les modèles de classification personnalisés prennent en charge l’écriture d’un modèle sur place.
Vous pouvez maintenant mettre à jour la classification personnalisée sur place. L’écriture directe du modèle perdrait la possibilité de comparer la qualité du modèle avant de décider de remplacer le modèle existant. Le remplacement de modèle est autorisé lorsque la propriété allowOverwrite
est explicitement spécifiée dans le corps de la requête. Il est impossible de récupérer le modèle d’origine remplacé une fois cette action effectuée.
{
"classifierId": "existingClassifierName",
"allowOverwrite": true, // Default=false
...
}
Copier un modèle
Remarque
À compter de l’API 2024-07-31-preview
, les modèles de classification personnalisés prennent en charge la copie d’un modèle vers et depuis l’une des régions suivantes :
- USA Est
- USA Ouest 2
- Europe Ouest
Utilisez l’API REST ou Document Intelligence Studio pour copier un modèle vers une autre région.
Générer la demande d’autorisation de copie
La requête HTTP suivante obtient l’autorisation de copie de votre ressource cible. Vous devez entrer le point de terminaison et la clé de votre ressource cible en tant qu’en-têtes.
POST https://myendpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers:authorizeCopy?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}
Corps de la demande
{
"classifierId": "targetClassifier",
"description": "Target classifier description"
}
Vous obtenez un code de réponse 200
avec le corps de la réponse qui contient la charge utile JSON requise pour lancer la copie.
{
"targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
"targetResourceRegion": "targetResourceRegion",
"targetClassifierId": "targetClassifier",
"targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
"accessToken": "accessToken",
"expirationDateTime": "timestamp"
}
Démarrer l’opération de copie
La requête HTTP suivante démarre l’opération de copie sur la ressource source. Vous devez entrer le point de terminaison et la clé de votre ressource source en tant qu’URL et en-tête. Notez que l’URL de la requête contient l’ID de la classifieur source que vous souhaitez copier.
POST {endpoint}/documentintelligence/documentClassifiers/{classifierId}:copyTo?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}
Le corps de votre requête est la réponse de l’étape précédente.
{
"targetResourceId": "/subscriptions/targetSub/resourceGroups/targetRG/providers/Microsoft.CognitiveServices/accounts/targetService",
"targetResourceRegion": "targetResourceRegion",
"targetClassifierId": "targetClassifier",
"targetClassifierLocation": "https://targetEndpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers/targetClassifier",
"accessToken": "accessToken",
"expirationDateTime": "timestamp"
}
Réponse du modèle
Analysez un fichier d'entrée avec le modèle de classification de documents.
https://{endpoint}/documentintelligence/documentClassifiers/{classifier}:analyze?api-version=2024-02-29-preview
À partir de l'API 2024-07-31-preview
, vous pouvez spécifier les pages à analyser à partir du document d'entrée en utilisant pages
le paramètre de requête dans la demande.
https://{service-endpoint}/formrecognizer/documentClassifiers/{classifier}:analyze?api-version=2023-07-31
La réponse contient les documents identifiés avec les plages de pages associées dans la section documents de la réponse.
{
...
"documents": [
{
"docType": "formA",
"boundingRegions": [
{ "pageNumber": 1, "polygon": [...] },
{ "pageNumber": 2, "polygon": [...] }
],
"confidence": 0.97,
"spans": []
},
{
"docType": "formB",
"boundingRegions": [
{ "pageNumber": 3, "polygon": [...] }
],
"confidence": 0.97,
"spans": []
}, ...
]
}
Étapes suivantes
Apprenez à créer des modèles de classification personnalisés :