Eseguire la migrazione da Comprensione del linguaggio (LUIS) a Comprensione del linguaggio di conversazione (CLU)
Comprensione del linguaggio di conversazione (CLU) è un'offerta di IA basata sul cloud in Lingua di Azure AI. Si tratta dell'ultima generazione di Comprensione del linguaggio (LUIS) e offre compatibilità con le versioni precedenti con le applicazioni LUIS create in precedenza. CLU usa funzionalità di intelligenza di apprendimento automatico all'avanguardia per consentire agli utenti di creare un modello di Comprensione del linguaggio naturale personalizzato per prevedere finalità ed entità nelle espressioni conversazionali.
CLU offre i vantaggi seguenti rispetto a LUIS:
- Maggiore accuratezza con modelli di apprendimento automatico all'avanguardia per migliorare la classificazione delle finalità e l'estrazione di entità. LUIS richiedeva più esempi per generalizzare determinati concetti nelle finalità e nelle entità, mentre l'apprendimento automatico più avanzato di CLU riduce il carico sui clienti richiedendo una quantità significativamente inferiore di dati.
- Supporto multilingue per l'apprendimento e il training dei modelli. Esegue il training dei progetti in una lingua e prevede immediatamente finalità ed entità in 96 lingue.
- Facilità di integrazione con CLU diversi e progetti personalizzati di risposta alla domanda usando il flusso di lavoro di orchestrazione.
- Possibilità di aggiungere dati di test all'interno dell'esperienza usando Language Studio e le API per valutare le prestazioni del modello prima della distribuzione.
Per iniziare, è possibile creare un nuovo progetto o eseguire la migrazione dell'applicazione LUIS.
Confronto tra LUIS e CLU
La tabella seguente presenta un confronto affiancato tra le funzionalità di LUIS e CLU. Evidenzia anche le modifiche apportate all'applicazione LUIS dopo la migrazione a CLU. Per altre informazioni sulle modifiche, selezionare il concetto collegato.
Funzionalità di LUIS | Funzionalità di CLU | Dopo la migrazione |
---|---|---|
Entità con apprendimento automatico e apprendimento automatico strutturato | Componenti dell'entità con apprendimento | Le entità basate su apprendimento automatico senza sottoentità verranno trasferite come entità CLU. Le entità con apprendimento automatico strutturato trasferiscono solo i nodi foglia (sottoentità di livello più basso che non hanno le proprie sottoentità) come entità in CLU. Il nome dell'entità in CLU sarà il nome della sottoentità concatenata con l'elemento padre. Ad esempio, Order.Size |
Entità elenco, regex e predefinite | Componenti delle entità elenco, regex e predefinite | Le entità predefinite, regex ed elenco verranno trasferite come entità in CLU con un componente di entità popolato in base al tipo di entità. |
Entità Pattern.Any |
Attualmente non disponibile | Le entità Pattern.Any verranno rimosse. |
Cultura singola per ogni applicazione | I modelli multilingua consentono più lingue per ogni progetto. | Il linguaggio principale del progetto verrà impostato come impostazioni cultura dell'applicazione LUIS. È possibile eseguire il training del progetto in modo da estenderlo a lingue diverse. |
Ruoli entità | I ruoli non sono più necessari. | I ruoli delle entità verranno trasferiti come entità. |
Impostazioni per: normalizzare la punteggiatura, normalizzare i segni diacritici, normalizzare il formato delle parole, usare tutti i dati di training | Le impostazioni non sono più necessarie. | Le impostazioni non verranno trasferite. |
Criteri e funzionalità degli elenchi di frasi | Criteri e funzionalità degli elenchi di frasi non sono più necessari. | Criteri e funzionalità degli elenchi di frasi non verranno trasferiti. |
Funzionalità delle entità | Componenti delle entità | Le entità predefinite o elenco aggiunte come funzionalità a un'entità verranno trasferite come componenti aggiunti a tale entità. Le funzionalità delle entità non verranno trasferite per finalità. |
Finalità ed espressioni | Finalità ed espressioni | Tutte le finalità e le espressioni verranno trasferite. Le espressioni verranno etichettate con le entità trasferite. |
GUID dell'applicazione | Nomi dei progetti | Verrà creato un progetto per ogni applicazione di migrazione con il nome dell'applicazione. Tutti i caratteri speciali nei nomi delle applicazioni verranno rimossi in CLU. |
Controllo delle versioni | Ogni volta che si esegue il training, viene creato un modello e funge da versione del progetto. | Verrà creato un progetto per la versione dell'applicazione selezionata. |
Valutazione tramite test batch | Valutazione tramite set di test | Sarà necessario aggiungere il set di dati di test. |
Controllo degli accessi in base al ruolo per le risorse LUIS | Controllo degli accessi in base al ruolo disponibile per le risorse del linguaggio | Il controllo degli accessi in base al ruolo della risorsa del linguaggio deve essere aggiunto manualmente dopo la migrazione. |
Modalità di training singola | Modalità di training standard e avanzata | Il training sarà necessario dopo la migrazione dell'applicazione. |
Due slot di pubblicazione e pubblicazione della versione | Dieci slot di distribuzione con nomi personalizzati | La distribuzione sarà necessaria dopo la migrazione e il training dell'applicazione. |
Supporto di SDK e API di creazione LUIS in .NET, Python, Java e Node.js | API REST di creazione CLU. | Per altre informazioni, vedere l'articolo di avvio rapido per informazioni sulle API di creazione CLU. Il refactoring sarà necessario per usare le API di creazione CLU. |
Supporto di SDK e API di runtime LUIS in .NET, Python, Java e Node.js | API di runtime CLU. Supporto di SDK di runtime CLU per .NET e Python. | Per altre informazioni, vedere come chiamare l'API. Il refactoring sarà necessario per usare le API di runtime CLU. |
Eseguire la migrazione delle applicazioni LUIS
Usare la procedura seguente per eseguire la migrazione dell'applicazione LUIS usando il portale LUIS o l'API REST.
Eseguire la migrazione delle applicazioni LUIS usando il portale LUIS
Seguire questa procedura per iniziare la migrazione usando il portale LUIS:
Dopo aver eseguito l'accesso al portale LUIS, fare clic sul pulsante nel banner nella parte superiore della schermata per avviare la migrazione guidata. La migrazione copia in CLU solo le applicazioni LUIS selezionate.
La scheda Panoramica della migrazione fornisce una breve spiegazione di Comprensione del linguaggio di conversazione e dei relativi vantaggi. Premere Avanti per continuare.
Determinare la risorsa lingua a cui si vuole eseguire la migrazione dell'applicazione LUIS. Se la risorsa lingua è già stata creata, selezionare la sottoscrizione di Azure seguita dalla risorsa lingua e quindi selezionare Avanti. Se non si dispone di una risorsa lingua, fare clic sul collegamento per creare una nuova risorsa lingua. Successivamente, selezionare la risorsa e selezionare Avanti.
Selezionare tutte le applicazioni LUIS di cui si vuole eseguire la migrazione e specificare ognuna delle versioni. Selezionare Avanti. Dopo aver selezionato l'applicazione e la versione, verrà visualizzato un messaggio che informa l'utente di tutte le funzionalità che non verranno trasferite dall'applicazione LUIS.
Esaminare le selezioni delle applicazioni LUIS e della risorsa lingua. Selezionare Fine per eseguire la migrazione delle applicazioni.
Una finestra popup consente di tenere traccia dello stato della migrazione delle applicazioni. Le applicazioni che non hanno avviato la migrazione avranno lo stato Non avviato. Le applicazioni che hanno iniziato la migrazione avranno lo stato In corso, che al termine della migrazione diventerà Operazione completata. Se lo stato è Operazione non riuscita significa che è necessario ripetere il processo di migrazione. Al termine della migrazione per tutte le applicazioni, selezionare Fine.
Dopo la migrazione delle applicazioni, è possibile seguire questa procedura:
Domande frequenti
Quale versione JSON di LUIS è supportata da CLU?
CLU supporta il modello JSON versione 7.0.0. Se il formato JSON è precedente, è necessario prima importarlo in LUIS, quindi esportato da LUIS con la versione più recente.
In che modo le entità sono diverse in CLU?
In CLU una singola entità può avere più componenti entità, che sono metodi diversi per l'estrazione. Tali componenti vengono quindi combinati insieme usando regole che è possibile definire. I componenti disponibili sono:
- Appreso: le etichette, equivalenti alle entità con apprendimento automatico in LUIS, vengono usate per eseguire il training di un modello basato su apprendimento automatico per stimare un'entità in base al contenuto e al contesto delle etichette fornite.
- Elenco: proprio come le entità elenco in LUIS, i componenti elenco corrispondono esattamente a un set di sinonimi e vengono mappati a un valore normalizzato chiamato chiave elenco.
- Predefiniti: i componenti predefiniti consentono di definire un'entità con gli estrattori predefiniti per i tipi comuni disponibili sia in LUIS che in CLU.
- Regex: i componenti regex usano espressioni regolari per acquisire modelli definiti personalizzati, esattamente come le entità regex in LUIS.
Le entità in LUIS verranno trasferite come entità con lo stesso nome in CLU e verranno trasferiti anche i componenti equivalenti.
Dopo la migrazione, i nodi foglia con apprendimento automatico strutturati e le sottoentità di livello inferiore verranno trasferiti al nuovo modello CLU, mentre tutte le entità padre e le entità di livello superiore verranno ignorate. Il nome dell'entità sarà il nome dell'entità di livello inferiore concatenato con la relativa entità padre.
Esempio:
Entità LUIS:
- Ordinazione pizza
- Farcitura
- Dimensione
Entità LUIS migrata in CLU:
- Ordinazione pizza.Farcitura
- Ordinazione pizza.dimensioni
Inoltre non è possibile etichettare 2 entità diverse in CLU per lo stesso intervallo di caratteri. I componenti appresi in CLU si escludono a vicenda e non forniscono stime sovrapposte solo per i componenti appresi. Quando si esegue la migrazione dell'applicazione LUIS, le etichette entità sovrapposte hanno mantenuto l'etichetta più lunga e ignorato tutte le altre.
Per altre informazioni sui componenti entità, vedere Componenti entità.
In che modo i ruoli delle entità vengono trasferiti a CLU?
I ruoli verranno trasferiti come entità distinte insieme alle espressioni etichettate. Ogni tipo di entità del ruolo determinerà quale componente entità verrà popolato. Ad esempio, il ruolo di un'entità elenco verrà trasferito come entità con lo stesso nome del ruolo, con un componente elenco popolato.
In che modo le funzionalità delle entità vengono trasferite in CLU?
Le entità usate come funzionalità per le finalità non verranno trasferite. Le entità usate come funzionalità per altre entità popolano il componente pertinente dell'entità. Ad esempio, se un'entità elenco denominata SizeList è stata usata come funzionalità per un'entità basata su apprendimento automatico denominata Size, l'entità Size verrà trasferita a CLU con i valori elenco di SizeList aggiunti al relativo componente elenco. Lo stesso viene applicato per le entità predefinite e regex.
In che modo i punteggi di attendibilità delle entità sono diversi in CLU?
Qualsiasi entità estratta ha un punteggio di attendibilità del 100%, pertanto i punteggi di attendibilità delle entità non devono essere usati per prendere decisioni tra le entità.
In che modo la comprensione del linguaggio di conversazione è multilingue?
I progetti di Comprensione del linguaggio di conversazione accettano espressioni in diverse lingue. Inoltre, è possibile eseguire il training del modello in una lingua ed estenderlo per la previsione in altre lingue.
Esempio:
Espressione di training (inglese): How are you?
Finalità etichettata: saluto
Espressione di runtime (francese): Comment ça va?
Finalità prevista: saluto
In che modo l'accuratezza di CLU è migliore di quella di LUIS?
CLU usa modelli all'avanguardia per migliorare le prestazioni di apprendimento automatico di modelli diversi di classificazione delle finalità ed estrazione di entità.
Questi modelli non fanno distinzione con variazioni secondarie, eliminando la necessità delle impostazioni seguenti: normalizzare la punteggiatura, normalizzare i segni diacritici, normalizzare il formato delle parolee usare tutti i dati di training.
Inoltre, i nuovi modelli non supportano le funzionalità dell'elenco di frasi perché non richiedono più informazioni supplementari dell'utente per fornire parole semanticamente simili per una migliore accuratezza. I modelli sono stati usati anche per fornire una migliore classificazione delle finalità usando tecniche di corrispondenza basate su regole che non sono necessarie nel nuovo paradigma del modello. La domanda seguente spiega questo aspetto in modo più dettagliato.
Cosa fare se le funzionalità in uso in LUIS non sono più presenti?
In LUIS sono presenti diverse funzionalità che non saranno più disponibili in CLU. Ciò include la possibilità di eseguire la definizione delle funzionalità, avere modelli e entità pattern.any ed entità strutturate. Se si dispone di dipendenze da queste funzionalità in LUIS, usare il materiale sussidiario seguente:
Modelli: i modelli sono stati aggiunti in LUIS per facilitare la classificazione delle finalità tramite la definizione delle espressioni modello delle espressioni regolari. Ciò includeva la possibilità di definire finalità solo modello (senza esempi di espressioni). CLU è in grado di generalizzare sfruttando i modelli all'avanguardia. È possibile fornire alcune espressioni che abbinano un modello specifico alla finalità in CLU e probabilmente classificano i diversi modelli come finalità principale senza bisogno dell'espressione modello di tale modello. Ciò semplifica il requisito di formulare questi modelli, che era limitato in LUIS, e offre una migliore esperienza di classificazione delle finalità.
Funzionalità dell'elenco frasi: la possibilità di associare funzionalità veniva usata principalmente per facilitare la classificazione delle finalità evidenziando gli elementi/funzionalità chiave da usare. Questo non è più necessario perché i modelli profondi usati in CLU possiedono già la capacità di identificare gli elementi intrinseci nel linguaggio. A sua volta, la rimozione di queste funzionalità non avrà alcun effetto sulla capacità di classificazione del modello.
Entità strutturate: la possibilità di definire entità strutturate serviva principalmente per abilitare l'analisi a più livelli delle espressioni. Con le diverse possibilità delle sottoentità, LUIS aveva bisogno che tutte le diverse combinazioni di entità fossero definite e presentate al modello come esempi. In CLU queste entità strutturate non sono più supportate, poiché i componenti appresi sovrapposti non sono supportati. Esistono alcuni approcci possibili per gestire queste estrazione strutturate:
- Estrazioni non ambigue: nella maggior parte dei casi il rilevamento delle entità foglia è sufficiente per comprendere gli elementi necessari all'interno di un intervallo completo. Ad esempio, un'entità strutturata come Trip che estende completamente un'origine e una destinazione (da Londra a New York o da casa al lavoro) può essere identificata con i singoli intervalli previsti per l'origine e la destinazione. La loro presenza come stime individuali informerebbe l'entità Trip.
- Estrazioni ambigue: quando i limiti di entità secondarie diverse non sono molto chiari. Per capire, prendere l'esempio "voglio ordinare una pizza al salame e una pizza vegetariana con formaggio extra". Mentre i diversi tipi di pizza e le modifiche di farcitura possono essere estratti, l'estrazione senza contesto avrebbe il grado di ambiguità di dove aggiungere il formaggio extra. In questo caso l'estensione dell'intervallo è basata sul contesto e richiederebbe la determinazione da parte dell'apprendimento automatico. Per le estrazioni ambigue è possibile usare uno degli approcci seguenti:
- Combinare sottoentità in componenti di entità diversi all'interno della stessa entità.
Esempio:
Implementazione di LUIS:
- Ordinazione pizza (entità)
- Dimensioni (sottoentità)
- Quantità (sottoentità)
Implementazione di CLU:
- Ordinazione pizza (entità)
- Dimensioni (componente entità elenco: small, medium, large)
- Quantità (componenti entità predefinita: numero)
In CLU si etichetta l'intero intervallo per Ordinazione pizza, che include le dimensioni e la quantità, che restituirà l'ordine della pizza con una chiave elenco per le dimensioni e un valore numerico per la quantità nello stesso oggetto entità.
- Per problemi più complessi in cui le entità contengono diversi livelli di profondità, è possibile creare un progetto per ogni livello di profondità nella struttura dell'entità. Questo consente di:
- Passare l'espressione a ogni progetto.
- Combinare le analisi di ogni progetto nella fase che procede CLU.
Per un esempio dettagliato su questo concetto, vedere i progetti di esempio di pizza disponibili in GitHub.
Come si gestiscono le versioni in CLU?
CLU salva gli asset di dati usati per eseguire il training del modello. È possibile esportare gli asset di un modello o caricarli nuovamente nel progetto in qualsiasi momento. Quindi i modelli fungono quindi da versioni diverse del progetto.
È possibile esportare i progetti CLU con Language Studio o a livello di codice e archiviare versioni diverse degli asset in locale.
Perché la classificazione CLU è diversa da LUIS? Come funziona la classificazione Nessuno?
CLU presenta un approccio diverso ai modelli di training usando la classificazione multipla anziché la classificazione binaria. Di conseguenza, l'interpretazione dei punteggi è diversa e differisce anche nelle varie opzioni di training. Anche se è probabile che si ottengano risultati migliori, è necessario osservare la differenza nei punteggi e determinare una nuova soglia per accettare previsioni delle finalità. È possibile aggiungere facilmente una soglia di punteggio di attendibilità per la finalità Nessuno nelle impostazioni del progetto. Verrà restituito Nessuno come finalità principale se la finalità superiore non supera la soglia del punteggio di attendibilità specificata.
Sono necessari più dati per i modelli CLU rispetto a LUIS?
I nuovi modelli CLU hanno una migliore comprensione semantica del linguaggio rispetto a LUIS e a loro volta consentono la generalizzazione dei modelli con una riduzione significativa dei dati. Anche se non è consigliabile ridurre la quantità di dati disponibili, è consigliabile prevedere prestazioni e resilienza migliori rispetto a varianti e sinonimi in CLU rispetto a LUIS.
Se non si esegue la migrazione delle app LUIS, verranno eliminate?
Le applicazioni LUIS esistenti saranno disponibili fino al 1° ottobre 2025. Dopo tale periodo non sarà più possibile usare tali applicazioni, gli endpoint servizio non funzioneranno più e le applicazioni verranno eliminate definitivamente.
I file con estensione LU sono supportati in CLU?
CLU supporta solo il formato JSON. È possibile importare in LUIS i file con estensione LU ed esportarli in formato JSON oppure è possibile seguire i passaggi di migrazione precedenti per l'applicazione.
Quali sono i limiti del servizio di CLU?
Per altre informazioni, vedere l'articolo sui limiti del servizio.
È necessario effettuare il refactoring del codice se si esegue la migrazione delle applicazioni da LUIS a CLU?
Gli oggetti API delle applicazioni CLU sono diversi da LUIS e pertanto sarà necessario eseguire il refactoring del codice.
Se si usano le API LUIS a livello di codice e di runtime, è possibile sostituirle con le API equivalenti.
API di creazione CLU: invece delle API CRUD specifiche di LUIS per singole azioni, ad esempio aggiungere espressioni, eliminare l'entitàe rinominare la finalità, CLU offre un'API di importazione che sostituisce l'intero contenuto di un progetto usando lo stesso nome. Se il servizio ha usato API LUIS a livello di codice per fornire una piattaforma per altri clienti, è necessario prendere in considerazione questo nuovo paradigma di progettazione. Sono disponibili tutte le altre API, ad esempio: elencare i progetti, eseguire il training, distribuire ed eliminare. Le API per azioni come importare e distribuire sono operazioni asincrone anziché sincrone come erano in LUIS.
API di runtime CLU: la nuova richiesta e la risposta dell'API includono molti degli stessi parametri, ad esempio: query, stima, finalità principali, finalità, entità e i relativi valori. L'oggetto risposta CLU offre un approccio più semplice. Le previsioni delle entità vengono fornite così come sono all'interno del testo dell'espressione e tutte le informazioni aggiuntive, ad esempio la risoluzione o le chiavi elenco, vengono fornite in parametri aggiuntivi denominati extraInformation
e resolution
.
È possibile usare l'SDK di runtime CLU .NET o Python per sostituire l'SDK di runtime LUIS. Attualmente non è disponibile un SDK di creazione per CLU.
In che modo i tempi di training sono diversi in CLU? In che modo il training standard è diverso dal training avanzato?
CLU offre training standard, che esegue il training e impara in inglese ed è paragonabile al tempo di training di LUIS. Offre inoltre un training avanzato, che richiede una durata notevolmente più lunga perché estende il training a tutte le altre lingue supportate. L'API di training continuerà a essere un processo asincrono e sarà necessario valutare la modifica nel processo DevOps che si usa per la soluzione.
In che modo l'esperienza è cambiata in CLU rispetto a LUIS? In che modo è diverso il ciclo di vita dello sviluppo?
In LUIS si segue una procedura di tipo compilazione-training-test-pubblicazione, mentre in CLU si segue una procedura di tipo compilazione-training-valutazione-distribuzione-test.
- Compilazione: in CLU è possibile definire finalità, entità ed espressioni prima di eseguire il training. CLU offre inoltre la possibilità di specificare dati di test durante la compilazione dell'applicazione da usare per la valutazione del modello. La valutazione verifica le prestazioni del modello sui dati di test e fornisce metriche di precisione, richiamo e F1.
- Training: si crea un modello con un nome ogni volta che si esegue il training. È possibile sovrascrivere un modello già sottoposto a training. È possibile specificare un training standard o avanzato e determinare se si vogliono usare i dati di test per la valutazione o una percentuale dei dati di training da escludere dal training e usare come dati di test. Al termine del training, è possibile valutare il grado di funzionamento del modello all'esterno.
- Distribuzione: al termine del training, quando si dispone di un modello con un nome, è possibile procedere con la distribuzione per le previsioni. Una distribuzione è anche denominata e dispone di un modello assegnato. È possibile avere più distribuzioni per lo stesso modello. Una distribuzione può essere sovrascritta con un modello diverso oppure è possibile scambiare modelli con altre distribuzioni nel progetto.
- Test: al termine della distribuzione, è possibile usarlo per le previsioni tramite l'endpoint di distribuzione. È anche eseguire il test Studio nella pagina Distribuzione dei test.
Questo processo è diverso da LUIS, in cui l'ID applicazione è stato collegato a tutti gli elementi ed è stata distribuita una versione dell'applicazione negli slot di staging o di produzione.
Ciò influirà sui processi DevOps usati.
CLU supporta i contenitori?
No, non è possibile esportare CLU in contenitori.
In che modo verranno denominate le applicazioni LUIS in CLU dopo la migrazione?
Tutti i caratteri speciali nei nomi delle applicazioni verranno rimossi in LUIS. Se la lunghezza del nome supera i 50 caratteri, i caratteri aggiuntivi verranno rimossi. Se il nome dopo la rimozione dei caratteri speciali è vuoto ( ad esempio, se il nome dell'applicazione LUIS era @@
), il nuovo nome sarà senza titolo. Se esiste già un progetto di Comprensione del linguaggio di conversazione con lo stesso nome, all'applicazione LUIS migrata verrà aggiunto _1
per il primo duplicato e aumenterà di 1 per ogni duplicato aggiuntivo. Se la lunghezza del nuovo nome è di 50 caratteri ed è necessario rinominare, gli ultimi 1 o 2 caratteri verranno rimossi in modo da poter concatenare il numero e rispettare comunque il limite di 50 caratteri.
Domande e risposte sulla migrazione da LUIS
Se in questo articolo ci sono domande che non hanno risposta, è consigliabile lasciarle nel nostro thread di Microsoft Q&A.