Modello di classificazione personalizzato di Informazioni sui documenti
Importante
- Le versioni di anteprima pubblica di Informazioni sui documenti consentono l'accesso anticipato alle funzionalità in fase di sviluppo attivo. Le funzionalità, gli approcci e i processi possono cambiare prima della disponibilità generale, a seconda del feedback degli utenti.
- Per impostazione predefinita, la versione di anteprima pubblica delle librerie client di Intelligence dei documenti è la versione dell'API REST 2024-07-31-preview.
- La versione di anteprima pubblica 2024-07-31-preview è al momento disponibile solo nelle aree di Azure seguenti. Si noti che il modello di generazione personalizzata (estrazione di campi di documento) in Studio AI è disponibile solo nell'area Stati Uniti centro-settentrionali:
- Stati Uniti orientali
- Stati Uniti occidentali 2
- Europa occidentale
- Stati Uniti centro-settentrionali
Questo contenuto si applica a: v4.0 (anteprima) | Versione precedenti: v3.1 (disponibilità generale)
Questo contenuto si applica a: v3.1 (disponibilità generale) | Ultime versioni: v4.0 (anteprima)
Importante
- Il modello di classificazione personalizzato dell'API
2024-07-31-preview
non suddivide i documenti per impostazione predefinita durante il processo di analisi. - È necessario impostare in modo esplicito la proprietà
splitMode
su auto per mantenere il comportamento delle versioni precedenti. L'impostazione predefinita persplitMode
ènone
. - Se il file di input contiene più documenti, è necessario abilitare la suddivisione impostando
splitMode
suauto
.
Informazioni sui documenti di Azure AI è un servizio di intelligenza artificiale applicata di Azure basato sul cloud che consente di creare soluzioni intelligenti di elaborazione dei documenti. Le API di Informazioni sui documenti analizzano immagini, PDF e altri file di documenti per estrarre e rilevare vari elementi di contenuto, layout, stile e semantici.
I modelli di classificazione personalizzati sono tipi di modelli di Deep Learning che combinano funzionalità di layout e lingua per rilevare e identificare in modo accurato i documenti elaborati all'interno dell'applicazione. I modelli di classificazione personalizzati eseguono la classificazione di un file di input una pagina alla volta per identificare i documenti all'interno e possono anche identificare più documenti o più istanze di un singolo documento all'interno di un file di input.
Funzionalità dei modelli
Nota
- A partire dall'API
2024-02-29-preview
, i modelli di classificazione personalizzati supportano il training incrementale. È possibile aggiungere nuovi esempi alle classi esistenti o aggiungere nuove classi facendo riferimento a un classificatore esistente.
I modelli di classificazione personalizzati consentono di analizzare uno o più documenti di file per identificare se uno dei tipi di documento sottoposti a training è contenuto all'interno di un file di input. Ecco gli scenari attualmente supportati:
Un singolo file contenente un tipo di documento, ad esempio un modulo di richiesta di prestito.
Un singolo file contenente più tipi di documenti. Ad esempio, un pacchetto di domanda di prestito che contiene un modulo di richiesta di prestito, una busta paga e un estratto conto bancario.
Un singolo file contenente più istanze dello stesso documento. Ad esempio, una raccolta di fatture digitalizzate.
✔️ Il training di un classificatore personalizzato richiede almeno two
lassi distinte e un minimo di five
esempi di documento per classe. La risposta del modello contiene gli intervalli di pagine per ognuna delle classi di documenti identificati.
✔️ Il numero massimo consentito di classi è 500
. Il numero massimo consentito di esempi di documenti per classe è 100
.
Se non diversamente specificato, il modello classifica ogni pagina del documento di input in una delle classi nel set di dati etichettato. È anche possibile specificare i numeri delle pagine da analizzare nel documento di input. Per impostare la soglia per l'applicazione, usare il punteggio di attendibilità della risposta.
Training incrementale
Con i modelli personalizzati, è necessario mantenere l'accesso al set di dati di training per aggiornare il classificatore con nuovi esempi per una classe esistente o aggiungere nuove classi. I modelli di classificatore supportano ora il training incrementale in cui è possibile fare riferimento a un classificatore esistente e aggiungere nuovi esempi per una classe esistente o aggiungere nuove classi con esempi. Il training incrementale consente scenari in cui la conservazione dei dati è una sfida e il classificatore deve essere aggiornato per allinearsi alle mutevoli esigenze aziendali. Il training incrementale è supportato con i modelli sottoposti a training con la versione 2024-02-29-preview
e versioni successive dell'API.
Importante
Il training incrementale è supportato solo con i modelli sottoposti a training con la stessa versione dell'API. Se si sta provando a estendere un modello, usare la versione dell'API con cui è stato eseguito il training del modello originale per estendere il modello. Il training incrementale è supportato solo con la versione 2024-07-31-preview o versioni successive dell'API.
Per il training incrementale è necessario specificare l'ID modello originale come baseClassifierId
. Per altre informazioni su come usare il training incrementale, vedere Training incrementale.
Supporto del tipo di documento di Office
È ora possibile eseguire il training dei classificatori per riconoscere i tipi di documento in vari formati, tra cui PDF, immagini, Word, PowerPoint ed Excel. Quando si assembla il set di dati di training, è possibile aggiungere documenti di uno dei tipi supportati. Il classificatore non richiede di etichettare in modo esplicito tipi specifici. Come procedura consigliata, assicurarsi che il set di dati di training abbia almeno un campione di ogni formato per migliorare l'accuratezza complessiva del modello.
Confronto tra la classificazione personalizzata e i modelli composti
Un modello di classificazione personalizzato può sostituire un modello composto in alcuni scenari, ma esistono alcune differenze da tenere presenti:
Funzionalità | Processo del classificatore personalizzato | Processo del modello composto |
---|---|---|
Analizzare un singolo documento di tipo sconosciuto appartenente a uno dei tipi sottoposti a training per l'elaborazione del modello di estrazione. | ● Richiede più chiamate. ● Chiamare il modello di classificazione in base alla classe del documento. Questo passaggio consente di eseguire un controllo basato sull'attendibilità prima di richiamare l'analisi del modello di estrazione. ● Richiamare il modello di estrazione. |
● Richiede una singola chiamata a un modello composto contenente il modello corrispondente al tipo di documento di input. |
Analizzare un singolo documento di tipo sconosciuto appartenente a diversi tipi sottoposti a training per l'elaborazione del modello di estrazione. | ● Richiede più chiamate. ● Effettuare una chiamata al classificatore che ignora i documenti non corrispondenti a un tipo designato per l'estrazione. ● Richiamare il modello di estrazione. |
● Richiede una singola chiamata a un modello composto. Il servizio seleziona un modello personalizzato all'interno del modello composto con la corrispondenza più elevata. ● Un modello composto non può ignorare i documenti. |
Analizzare un file contenente più documenti di tipo noto o sconosciuto appartenenti a uno dei tipi sottoposti a training per l'elaborazione del modello di estrazione. | ● Richiede più chiamate. ● Chiamare il modello di estrazione per ogni documento identificato nel file di input. ● Richiamare il modello di estrazione. |
● Richiede una singola chiamata a un modello composto. ● Il modello composto richiama il modello di componente una volta nella prima istanza del documento. ● I documenti rimanenti vengono ignorati. |
Supporto di versioni in lingue diverse
I modelli di classificazione attualmente supportano solo documenti in lingua inglese.
I modelli di classificazione possono ora essere sottoposti a training su documenti di lingue diverse. Per l'elenco completo, vedere Lingue supportate.
Requisiti di input
Formati di file supportati:
Modello | Immagine:jpeg/jpg , png , bmp , tiff , heif |
Microsoft Office: Word (docx), Excel (xlxs), PowerPoint (pptx) |
|
---|---|---|---|
Lettura | ✔ | ✔ | ✔ |
Layout | ✔ | ✔ | ✔ (2024-02-29-preview, 2023-10-31-preview e versioni successive) |
Documento generale | ✔ | ✔ | |
Predefinito | ✔ | ✔ | |
Estrazione personalizzata | ✔ | ✔ | |
Classificazione personalizzata | ✔ | ✔ | ✔ |
Per ottenere risultati ottimali, fornire cinque foto chiare o scansioni di alta qualità per ogni tipo di documento.
Per i formati PDF e TIFF, possono essere elaborate fino a 2.000 pagine (con una sottoscrizione di livello gratuito vengono elaborate solo le prime due pagine).
La dimensione del file per l'analisi dei documenti è di 500 MB per il livello a pagamento (S0) e 4 MB per il livello gratuito (F0).
Per le immagini, le dimensioni devono essere comprese tra 50 x 50 pixel e 10.000 x 10.000 pixel.
Se i file PDF sono bloccati da password, è necessario rimuovere il blocco prima dell'invio.
L'altezza minima del testo da estrarre è di 12 pixel per un'immagine 1024 x 768 pixel. Queste dimensioni corrispondono approssimativamente a un testo con dimensioni di
8
punti e 150 punti per pollice (DPI
).Per il training di modelli personalizzati, il numero massimo di pagine per i dati di training è 500 per il modello personalizzato e 50.000 per il modello neurale personalizzato.
Per il training di modelli di estrazione personalizzati, le dimensioni totali dei dati di training sono di 50 MB per il modello e 1G MB per il modello neurale.
Per il training del modello di classificazione personalizzato, le dimensioni totali dei dati di training sono 1 GB con un massimo di 10.000 pagine.
Suddivisione dei documenti
Quando sono disponibili più documenti in un file, il classificatore può identificare i diversi tipi di documento contenuti nel file di input. La risposta del classificatore contiene gli intervalli di pagine per ognuno dei tipi di documento identificati contenuti all'interno di un file. Questa risposta può includere più istanze dello stesso tipo di documento.
L'operazione analyze
include ora una proprietà splitMode
che offre un controllo granulare sul comportamento di suddivisione.
- Per considerare l'intero file di input come un singolo documento per la classificazione, impostare splitMode su
none
. In questo caso, il servizio restituisce solo una classe per l'intero file di input. - Per classificare ogni pagina del file di input, impostare splitMode su
perPage
. Il servizio prova a classificare ogni pagina come singolo documento. - Impostare splitMode su
auto
e il servizio identifica i documenti e gli intervalli di pagine associati.
Procedure consigliate
Il training dei modelli di classificazione personalizzati richiede almeno cinque esempi per classe. Se le classi sono simili, l'aggiunta di ulteriori campioni di training migliora l'accuratezza del modello.
Il classificatore prova ad assegnare ogni documento a una delle classi. Se si prevede che il modello visualizzi i tipi di documento non presenti nelle classi che fanno parte del set di dati di training, è necessario pianificare di impostare una soglia sul punteggio di classificazione o aggiungere alcuni campioni rappresentativi dei tipi di documento a una classe "other"
. L'aggiunta di una classe "other"
garantisce che i documenti non necessari non influiscano sulla qualità del classificatore.
Training a model
I modelli di classificazione personalizzati sono supportati dalle API v4.0: 2024-02-29-preview, 2024-07-31-preview e v3.1: 2023-07-31 (disponibilità generale). Document Intelligence Studio fornisce un'interfaccia utente senza codice per eseguire il training interattivo di un classificatore personalizzato. Seguire la guida pratica per iniziare.
Quando si usa l'API REST, se i documenti sono stati organizzati in base a cartelle, è possibile usare la proprietà azureBlobSource
della richiesta per eseguire il training di un modello di classificazione.
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/"
}
}
}
}
In alternativa, se è presente un elenco semplice di file o si prevede di usare solo alcuni file selezionati all'interno di ogni cartella per il training del modello, è possibile usare la proprietà azureBlobFileListSource
per eseguire il training del modello. Questo passaggio richiede un file list
nel formato JSON Lines. Per ogni classe, aggiungere un nuovo file con un elenco di file da inviare per il training.
{
"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"
}
}
}
}
Ad esempio, l'elenco di file car-maint.jsonl
contiene i file seguenti.
{"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"}
Sovrascrittura di un modello
Nota
A partire dall'API 2024-07-31-preview
, i modelli di classificazione personalizzati supportano la sovrascrittura di un modello sul posto.
È ora possibile aggiornare la classificazione personalizzata sul posto. Sovrascrivendo direttamente il modello si perde la possibilità di confrontare la qualità del modello prima di decidere di sostituire il modello esistente. La sovrascrittura del modello è consentita quando la proprietà allowOverwrite
viene specificata in modo esplicito nel corpo della richiesta. Non è possibile recuperare il modello originale sovrascritto dopo l'esecuzione di questa azione.
{
"classifierId": "existingClassifierName",
"allowOverwrite": true, // Default=false
...
}
Copiare un modello
Nota
A partire dall'API 2024-07-31-preview
, i modelli di classificazione personalizzati supportano la copia di un modello da e verso una delle aree seguenti:
- Stati Uniti orientali
- Stati Uniti occidentali 2
- Europa occidentale
Usare l'API REST o Document Intelligence Studio per copiare un modello in un'altra area.
Generare una richiesta di autorizzazione per la copia
La richiesta HTTP seguente ottiene l'autorizzazione per la copia dalla risorsa di destinazione. È necessario immettere l'endpoint e la chiave della risorsa di destinazione come intestazioni.
POST https://myendpoint.cognitiveservices.azure.com/documentintelligence/documentClassifiers:authorizeCopy?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}
Testo della richiesta
{
"classifierId": "targetClassifier",
"description": "Target classifier description"
}
Si riceve un codice di risposta 200
con il corpo della risposta contenente il payload JSON necessario per avviare la copia.
{
"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"
}
Avviare l'operazione di copia
La richiesta HTTP seguente avvia l'operazione di copia nella risorsa di origine. È necessario immettere l'endpoint e la chiave della risorsa di origine come URL e intestazione. Si noti che l'URL della richiesta contiene l'ID classificatore del classificatore di origine da copiare.
POST {endpoint}/documentintelligence/documentClassifiers/{classifierId}:copyTo?api-version=2024-07-31-preview
Ocp-Apim-Subscription-Key: {<your-key>}
Il corpo della richiesta è costituito dalla risposta del passaggio precedente.
{
"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"
}
Risposta del modello
Analizzare un file di input con il modello di classificazione dei documenti.
https://{endpoint}/documentintelligence/documentClassifiers/{classifier}:analyze?api-version=2024-02-29-preview
A partire dall'API 2024-07-31-preview
, è possibile specificare le pagine da analizzare dal documento di input usando il parametro di query pages
nella richiesta.
https://{service-endpoint}/formrecognizer/documentClassifiers/{classifier}:analyze?api-version=2023-07-31
La risposta contiene i documenti identificati con gli intervalli di pagine associati nella sezione documents della risposta.
{
...
"documents": [
{
"docType": "formA",
"boundingRegions": [
{ "pageNumber": 1, "polygon": [...] },
{ "pageNumber": 2, "polygon": [...] }
],
"confidence": 0.97,
"spans": []
},
{
"docType": "formB",
"boundingRegions": [
{ "pageNumber": 3, "polygon": [...] }
],
"confidence": 0.97,
"spans": []
}, ...
]
}
Passaggi successivi
Informazioni su come creare modelli di classificazione personalizzati: