Trasformare compiti generativi in compiti di classificazione

From generative tasks to classification tasks

I sistemi di apprendimento automatico stanno diventando sempre più potenti, con applicazioni in una vasta gamma di settori. Inoltre, i sistemi di apprendimento automatico e di elaborazione del linguaggio naturale (NLP) vengono utilizzati per migliorare la qualità dei sistemi di recupero delle informazioni, rendendo più facile per gli utenti trovare le informazioni di cui hanno bisogno. Ciò rende molto più semplice per noi accedere e comprendere le informazioni da una varietà di fonti. Ad esempio,

  • L’IA conversazionale può essere utilizzata per creare chatbot che possono sostenere conversazioni naturali con gli umani.
  • I sistemi di raccomandazione possono utilizzare l’NLP per consigliare prodotti rilevanti per gli interessi di un utente.
  • L’analisi dei sentimenti può essere utilizzata per identificare il tono emotivo del testo.

La formazione di molti modelli di apprendimento profondo richiede una vasta quantità di risorse computazionali, come GPU e TPU. Il costo dell’inferenza può anche essere proibitivo per l’applicazione di questi modelli in situazioni ad alta performance.

Modi per migliorare le prestazioni

Esistono tre modi principali per aumentare le prestazioni dei modelli di apprendimento automatico.

  1. Possiamo semplificare il compito stesso in modi creativi.
  2. In secondo luogo, possiamo considerare modelli più semplici e più piccoli quando possibile.
  3. Infine, possiamo utilizzare tecniche innovative per ridurre la complessità computazionale con una certa diminuzione della precisione.

Di questi, i maggiori miglioramenti sono spesso trovati ridefinendo in modo creativo il compito in questione. Ad esempio, se il compito è ben definito e non generativo, possiamo progettare modelli più piccoli ed efficienti per ottenere prestazioni simili.

Mentre i modelli più grandi aiutano con compiti generativi e anche con la generalizzazione tra compiti (aka transfer learning), molte volte i problemi generativi possono essere trasformati in problemi di classificazione che i modelli di tipo BERT possono gestire. In altre parole, se possiamo limitare il campo di ciò che vogliamo che il modello faccia, non abbiamo bisogno di un modello grande per farlo. Un modello più piccolo può essere altrettanto preciso e sarà molto più veloce ed economico da allenare ed eseguire. Tuttavia, se vogliamo che il modello esegua una varietà di compiti diversi, potremmo aver bisogno di un modello più grande. Ciò perché i modelli più grandi potrebbero essere in grado di generalizzare meglio (aka transfer learning). In alcuni casi, possiamo persino trasformare un problema generativo in un problema di recupero.

Studio di caso: Modelli di supporto clienti

Ad esempio, nel caso delle interazioni di chat di supporto, diverse interazioni possono essere risposte utilizzando il playbook del cliente. In questo caso, è più facile e conveniente trasformare il problema in un problema di recupero per trovare il modello che soddisfa meglio l’utente.

Raccolta dei dati di addestramento

Il primo passo è suddividere il registro del servizio clienti trasformandolo in un elenco di domande e risposte. Ciò significa che ogni turno della conversazione viene suddiviso nelle sue singole parti, come la domanda del cliente e la risposta dell’agente. Una volta fatto ciò, il passo successivo è confrontare le domande e le risposte con un repository di playbook esistente. Un repository di playbook è una raccolta di risposte predefinite che possono essere utilizzate per rispondere a domande comuni dei clienti. Confrontando le domande e le risposte dal registro del servizio clienti con il repository di playbook, il sistema può identificare quali risposte predefinite sono le più utili per risolvere il problema del cliente. Questo processo può aiutare a risparmiare tempo e migliorare l’efficienza del servizio clienti.

Fase 1: Raccolta del set di dati di addestramento

Alternativamente, si possono utilizzare LLM (Language Model Models) per semplificare questo passaggio. Utilizzando prompt di few-shot, si può confrontare con la risposta modello corretta per ciascuna interazione del servizio clienti. Gli LLM possono essere utilizzati per confrontare le interazioni del servizio clienti con le risposte modello corrette fornendo all’LLM alcuni esempi di interazioni del servizio clienti e le corrispondenti risposte modello. L’LLM sarà quindi in grado di imparare a confrontare nuove interazioni del servizio clienti con le risposte modello corrette. Ciò può risparmiare ai rappresentanti del servizio clienti molto tempo e sforzo, poiché non dovranno più cercare manualmente la risposta modello corretta per ciascuna interazione.

La raccolta dei dati di addestramento in questo modo ha diversi vantaggi:

  • È offline, il che significa che può essere effettuato durante il tempo di addestramento senza alcun accesso alle richieste degli utenti.
  • È di piccole dimensioni, il che significa che può essere archiviato e elaborato facilmente. Questo è importante per addestrare modelli di apprendimento automatico su dispositivi con spazio di archiviazione o potenza di elaborazione limitati.
  • Può essere utilizzato per compiti di classificazione con alta precisione. Questo perché i dati vengono raccolti in un ambiente controllato, il che riduce la quantità di rumore ed errori nei dati.

Addestramento dei modelli di classificazione

Possiamo addestrare un modello di classificazione in tre passaggi:

  1. Impostare i compiti esplodendo le risposte ai modelli recuperate. Ciò significa suddividere le risposte ai modelli nei loro componenti individuali, come parole, frasi ed entità. Quando si esplodono le risposte ai modelli recuperate, è necessario fare attenzione a evitare di scegliere modelli non pertinenti.
  2. Codificare le interazioni e i modelli utilizzando SentenceBERT, Word2Vec, ecc. Ciò significa rappresentare le interazioni e i modelli come vettori di numeri. Quando si codificano le interazioni e i modelli, è necessario selezionare una tecnica di codifica che preservi il significato semantico.
  3. Utilizzare un modello ML semplice ed economico per prevedere il miglior modello. Il modello può anche essere un semplice DNN. Quando si utilizza un semplice DNN economico per prevedere il miglior modello, è necessario scegliere un DNN appropriato. Ad esempio, per una classificazione complessa, potrebbe essere opportuno utilizzare un DNN addestrato su un ampio corpus di testo.

I vantaggi di questo modello di classificazione sono che ha costi di addestramento ridotti ed è economico da utilizzare. È anche molto facile riaddestrare il modello e ancora più esplicativo rispetto all’utilizzo di modelli più profondi e più grandi.

In realtà, il modello appreso non deve essere necessariamente un DNN. Può anche essere un random forest (classificatore basato su XGBoost) che ha ancora più vantaggi in termini di velocità di esecuzione e facilità di addestramento. I vantaggi di questo modello di classificazione sono:

  • Bassi costi di addestramento: Questo modello è relativamente economico da addestrare rispetto ad altri modelli, come le reti neurali profonde.

  • Economico da utilizzare: Questo modello è anche relativamente economico da utilizzare una volta addestrato.

  • Semplice da riaddestrare: Questo modello è facile da riaddestrare se diventano disponibili nuovi dati.

  • Più esplicativo rispetto ai modelli più profondi e più grandi: Questo modello è più facile da spiegare rispetto ai modelli più profondi e più grandi, il che può essere utile per comprendere come funziona il modello e perché fa le previsioni che fa.

In realtà, il modello appreso non deve essere necessariamente un DNN. Può anche essere un random forest (classificatore basato su XGBoost noto per la sua velocità e accuratezza) che ha ancora più vantaggi in termini di velocità di esecuzione e facilità di addestramento. Ogni albero decisionale è addestrato su un diverso sottoinsieme dei dati e le previsioni degli alberi individuali vengono poi combinate per fare una previsione finale. Questo approccio può essere molto efficace per i compiti di classificazione ed è anche molto veloce da addestrare e utilizzare.

Nel complesso, i vantaggi di questo modello di classificazione lo rendono una buona scelta per una varietà di applicazioni. È relativamente economico da addestrare e utilizzare, è facile da riaddestrare ed è più esplicativo rispetto ai modelli più profondi e più grandi.