Amazon Sage Maker fornisce una suite di algoritmi incorporati, modelli pre-addestratie modelli di soluzioni predefiniti per aiutare i data scientist e i professionisti dell'apprendimento automatico (ML) a iniziare a formare e implementare rapidamente i modelli ML. È possibile utilizzare questi algoritmi e modelli sia per l'apprendimento supervisionato che non supervisionato. Possono elaborare vari tipi di dati di input, inclusi tabulari, immagini e testo.
Questo post è il terzo di una serie sui nuovi algoritmi integrati in SageMaker. Nel primo post, abbiamo mostrato come SageMaker fornisce un algoritmo integrato per la classificazione delle immagini. Nel secondo post, abbiamo mostrato come SageMaker fornisce un algoritmo integrato per il rilevamento degli oggetti. Oggi annunciamo che SageMaker fornisce un nuovo algoritmo integrato per la classificazione del testo utilizzando TensorFlow. Questo algoritmo di apprendimento supervisionato supporta il trasferimento dell'apprendimento per molti modelli pre-addestrati disponibili in Hub TensorFlow. Prende un pezzo di testo come input e restituisce la probabilità per ciascuna delle etichette di classe. È possibile perfezionare questi modelli pre-addestrati utilizzando il transfer learning anche quando non è disponibile un ampio corpus di testo. È disponibile tramite SageMaker algoritmi incorporati, nonché attraverso il Interfaccia utente di SageMaker JumpStart in Amazon Sage Maker Studio. Per ulteriori informazioni, fare riferimento a Classificazione del testo e il quaderno di esempio Introduzione a JumpStart – Classificazione del testo.
La classificazione del testo con TensorFlow in SageMaker fornisce l'apprendimento del trasferimento su molti modelli pre-addestrati disponibili nell'hub TensorFlow. In base al numero di etichette di classe nei dati di addestramento, al modello di hub TensorFlow pre-addestrato viene associato un livello di classificazione. Lo strato di classificazione è costituito da uno strato di dropout e da uno strato denso, strato completamente connesso, con regolarizzatore a 2 norme, che viene inizializzato con pesi casuali. L'addestramento del modello ha iperparametri per il tasso di abbandono dello strato di abbandono e il fattore di regolarizzazione L2 per lo strato denso. Quindi, l'intera rete, incluso il modello pre-addestrato, o solo il livello di classificazione superiore può essere messo a punto sui nuovi dati di addestramento. In questa modalità di apprendimento di trasferimento, l'addestramento può essere ottenuto anche con un set di dati più piccolo.
Come utilizzare il nuovo algoritmo di classificazione del testo TensorFlow
Questa sezione descrive come utilizzare l'algoritmo di classificazione del testo TensorFlow con SDK Python di SageMaker. Per informazioni su come utilizzarlo dall'interfaccia utente di Studio, vedere SageMaker JumpStart.
L'algoritmo supporta l'apprendimento del trasferimento per i modelli pre-addestrati elencati in Modelli Tensorflow. Ogni modello è identificato da un unico model_id
. Il codice seguente mostra come mettere a punto il modello base BERT identificato da model_id
tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
su un set di dati di addestramento personalizzato. Per ciascuno model_id
, per avviare un lavoro di formazione SageMaker tramite il Estimator classe di SageMaker Python SDK, è necessario recuperare l'URI dell'immagine Docker, l'URI dello script di addestramento e l'URI del modello pre-addestrato tramite le funzioni di utilità fornite in SageMaker. L'URI dello script di addestramento contiene tutto il codice necessario per l'elaborazione dei dati, il caricamento del modello pre-addestrato, l'addestramento del modello e il salvataggio del modello addestrato per l'inferenza. L'URI del modello pre-addestrato contiene la definizione dell'architettura del modello pre-addestrato ei parametri del modello. L'URI del modello pre-addestrato è specifico per il modello particolare. I tarball dei modelli pre-addestrati sono stati pre-scaricati da TensorFlow e salvati con la firma del modello appropriata in Servizio di archiviazione semplice Amazon (Amazon S3), in modo che il processo di addestramento venga eseguito in isolamento di rete. Vedere il codice seguente:
Con questi artefatti di addestramento specifici del modello, puoi costruire un oggetto di Estimator classe:
Successivamente, per trasferire l'apprendimento sul set di dati personalizzato, potrebbe essere necessario modificare i valori predefiniti degli iperparametri di addestramento, elencati in iperparametri. Puoi recuperare un dizionario Python di questi iperparametri con i loro valori predefiniti chiamando hyperparameters.retrieve_default
, aggiornali secondo necessità, quindi passali alla classe Estimator. Si noti che i valori predefiniti di alcuni degli iperparametri sono diversi per i diversi modelli. Per i modelli di grandi dimensioni, la dimensione del lotto predefinita è più piccola e il train_only_top_layer
l'iperparametro è impostato su True
. L'iperparametro Train_only_top_layer
definisce quali parametri del modello cambiano durante il processo di messa a punto. Se train_only_top_layer
is True
, quindi i parametri dei livelli di classificazione cambiano e il resto dei parametri rimane costante durante il processo di regolazione fine. D'altra parte, se train_only_top_layer
is False
, quindi tutti i parametri del modello vengono messi a punto. Vedere il codice seguente:
Forniamo il SST2 come set di dati predefinito per la messa a punto dei modelli. Il set di dati contiene recensioni di film positive e negative. È stato scaricato da TensorFlow per Licenza Apache 2.0. Il codice seguente fornisce il set di dati di addestramento predefinito ospitato nei bucket S3.
Infine, per avviare il processo di addestramento SageMaker per la messa a punto del modello, chiama .fit sull'oggetto della classe Estimator, passando la posizione Amazon S3 del set di dati di addestramento:
Per ulteriori informazioni su come utilizzare il nuovo algoritmo di classificazione del testo SageMaker TensorFlow per trasferire l'apprendimento su un set di dati personalizzato, distribuire il modello ottimizzato, eseguire l'inferenza sul modello distribuito e distribuire il modello pre-addestrato così com'è senza prima effettuare la messa a punto su un set di dati personalizzato, vedere il seguente notebook di esempio: Introduzione a JumpStart – Classificazione del testo.
Interfaccia di input/output per l'algoritmo di classificazione del testo TensorFlow
Puoi mettere a punto ciascuno dei modelli pre-addestrati elencati in Modelli TensorFlow a un dato set di dati composto da frasi di testo con un numero qualsiasi di classi. Il modello pre-addestrato collega un livello di classificazione al modello Incorporamento del testo e inizializza i parametri del livello su valori casuali. La dimensione di output del livello di classificazione è determinata in base al numero di classi rilevate nei dati di input. L'obiettivo è ridurre al minimo gli errori di classificazione sui dati di input. Il modello restituito dall'ottimizzazione può essere ulteriormente distribuito per l'inferenza.
Le seguenti istruzioni descrivono come formattare i dati di addestramento per l'immissione nel modello:
- Input: una directory contenente un file data.csv. Ogni riga della prima colonna dovrebbe avere etichette di classe intere comprese tra 0 e il numero di classi. Ogni riga della seconda colonna dovrebbe avere i dati di testo corrispondenti.
- Output: un modello ottimizzato che può essere distribuito per l'inferenza o ulteriormente addestrato utilizzando l'addestramento incrementale. Insieme ai modelli viene salvato un file di mappatura degli indici di classe alle etichette di classe.
Quello che segue è un esempio di un file CSV di input. Nota che il file non dovrebbe avere alcuna intestazione. Il file deve essere ospitato in un bucket S3 con un percorso simile al seguente: s3://bucket_name/input_directory/
. Si noti che il finale /
è richiesto.
Inferenza con l'algoritmo di classificazione del testo TensorFlow
I modelli generati possono essere ospitati per l'inferenza e il testo di supporto come file application/x-text
tipo di contenuto. L'output contiene i valori di probabilità, le etichette di classe per tutte le classi e l'etichetta prevista corrispondente all'indice di classe con la probabilità più alta codificata nel formato JSON. Il modello elabora una singola stringa per richiesta e restituisce solo una riga. Quello che segue è un esempio di una risposta in formato JSON:
If accept
è impostato su application/json
, quindi il modello emette solo probabilità. Per ulteriori dettagli sull'addestramento e l'inferenza, vedere il quaderno di esempio Introduzione a Introduzione a JumpStart – Classificazione del testo.
Usa gli algoritmi integrati di SageMaker tramite l'interfaccia utente di JumpStart
Puoi anche utilizzare la classificazione del testo SageMaker TensorFlow e qualsiasi altro algoritmo integrato con pochi clic tramite l'interfaccia utente di JumpStart. JumpStart è una funzionalità di SageMaker che ti consente di addestrare e distribuire algoritmi integrati e modelli pre-addestrati da vari framework ML e hub di modelli attraverso un'interfaccia grafica. Inoltre, ti consente di distribuire soluzioni ML complete che mettono insieme modelli ML e vari altri servizi AWS per risolvere un caso d'uso mirato.
Di seguito sono riportati due video che mostrano come è possibile replicare lo stesso processo di messa a punto e distribuzione che abbiamo appena eseguito con pochi clic tramite l'interfaccia utente di JumpStart.
Perfeziona il modello pre-addestrato
Ecco il processo per mettere a punto lo stesso modello di classificazione del testo pre-addestrato.
Distribuire il modello ottimizzato
Al termine dell'addestramento del modello, è possibile distribuire direttamente il modello su un endpoint persistente in tempo reale con un clic.
Conclusione
In questo post, abbiamo annunciato il lancio dell'algoritmo integrato di classificazione del testo SageMaker TensorFlow. Abbiamo fornito un codice di esempio su come trasferire l'apprendimento su un set di dati personalizzato utilizzando un modello pre-addestrato dall'hub TensorFlow utilizzando questo algoritmo.
Per ulteriori informazioni, consultare il documentazione e il quaderno di esempio Introduzione a JumpStart – Classificazione del testo.
Circa gli autori
Dott. Vivek Madan è uno scienziato applicato con il Team di Amazon SageMaker JumpStart. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois a Urbana-Champaign ed è stato ricercatore post-dottorato presso la Georgia Tech. È un ricercatore attivo nell'apprendimento automatico e nella progettazione di algoritmi e ha pubblicato articoli in conferenze EMNLP, ICLR, COLT, FOCS e SODA.
João Moura è un architetto specializzato in soluzioni AI/ML presso Amazon Web Services. Si concentra principalmente sui casi d'uso della NLP e aiuta i clienti a ottimizzare la formazione e l'implementazione del modello di deep learning. È anche un attivo sostenitore di soluzioni ML a basso codice e hardware specializzato in ML.
Dottor Ashish Khetan è un Senior Applied Scientist con Algoritmi integrati di Amazon SageMaker e aiuta a sviluppare algoritmi di apprendimento automatico. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois Urbana Champaign. È un ricercatore attivo nell'apprendimento automatico e nell'inferenza statistica e ha pubblicato molti articoli in conferenze NeurIPS, ICML, ICLR, JMLR, ACL ed EMNLP.
- AI
- oh arte
- generatore d'arte
- un robot
- Amazon Sage Maker
- JumpStart di Amazon SageMaker
- intelligenza artificiale
- certificazione di intelligenza artificiale
- intelligenza artificiale nel settore bancario
- robot di intelligenza artificiale
- robot di intelligenza artificiale
- software di intelligenza artificiale
- Apprendimento automatico di AWS
- blockchain
- conferenza blockchain ai
- geniale
- intelligenza artificiale conversazionale
- criptoconferenza ai
- dall's
- apprendimento profondo
- Fondamentale (100)
- google ai
- machine learning
- Platone
- platone ai
- Platone Data Intelligence
- Gioco di Platone
- PlatoneDati
- gioco di plato
- scala ai
- sintassi
- zefiro