L'elaborazione del linguaggio naturale (NLP) è il campo dell'apprendimento automatico (ML) che si occupa di dare ai computer la capacità di comprendere il testo e le parole pronunciate allo stesso modo degli esseri umani. Recentemente, architetture all'avanguardia come il architettura del trasformatore vengono utilizzati per ottenere prestazioni quasi umane su attività a valle della PNL come il riepilogo del testo, la classificazione del testo, il riconoscimento di entità e altro ancora.
I Large Language Model (LLM) sono modelli basati su trasformatori addestrati su una grande quantità di testo senza etichetta con centinaia di milioni (BERTA) a oltre un trilione di parametri (MiCS) e le cui dimensioni rendono impraticabile l'addestramento con GPU singola. A causa della loro intrinseca complessità, la formazione di un LLM da zero è un compito molto impegnativo che pochissime organizzazioni possono permettersi. Una pratica comune per le attività a valle della PNL è prendere un LLM pre-addestrato e perfezionarlo. Per ulteriori informazioni sulla regolazione fine, fare riferimento a Adattamento del dominio Ottimizzazione dei modelli di base in Amazon SageMaker JumpStart sui dati finanziari ed Perfeziona i modelli linguistici del trasformatore per la diversità linguistica con Hugging Face su Amazon SageMaker.
L'apprendimento a colpo zero in PNL consente a LLM pre-formato per generare risposte a compiti per i quali non è stato esplicitamente addestrato (anche senza messa a punto). In particolare parlando di classificazione del testo, classificazione del testo zero-shot è un'attività nell'elaborazione del linguaggio naturale in cui un modello NLP viene utilizzato per classificare il testo da classi invisibili, in contrasto con classificazione supervisionata, in cui i modelli NLP possono classificare solo il testo che appartiene alle classi nei dati di addestramento.
Di recente abbiamo lanciato il supporto del modello di classificazione zero-shot in JumpStart di Amazon SageMaker. SageMaker JumpStart è l'hub ML di Amazon Sage Maker che fornisce l'accesso a modelli di base pre-addestrati (FM), LLM, algoritmi integrati e modelli di soluzione per aiutarti a iniziare rapidamente con il machine learning. In questo post, mostriamo come eseguire la classificazione zero-shot utilizzando modelli pre-addestrati in SageMaker Jumpstart. Imparerai come utilizzare l'interfaccia utente SageMaker Jumpstart e SageMaker Python SDK per distribuire la soluzione ed eseguire l'inferenza utilizzando i modelli disponibili.
Apprendimento zero-shot
La classificazione zero-shot è un paradigma in cui un modello può classificare esempi nuovi e invisibili che appartengono a classi che non erano presenti nei dati di addestramento. Ad esempio, un modello linguistico che è stato addestrato per comprendere il linguaggio umano può essere utilizzato per classificare i tweet dei buoni propositi per l'anno nuovo su più classi come career
, health
e finance
, senza che il modello linguistico venga addestrato esplicitamente sull'attività di classificazione del testo. Ciò è in contrasto con la messa a punto del modello, poiché quest'ultimo implica il riaddestramento del modello (tramite l'apprendimento del trasferimento) mentre l'apprendimento zero-shot non richiede ulteriore formazione.
Il diagramma seguente illustra le differenze tra l'apprendimento di trasferimento (sinistra) e l'apprendimento zero-shot (destra).
Yin et al. ha proposto un framework per la creazione di classificatori zero-shot utilizzando l'inferenza del linguaggio naturale (NLI). Il framework funziona ponendo la sequenza da classificare come premessa NLI e costruisce un'ipotesi da ciascuna etichetta candidata. Ad esempio, se vogliamo valutare se una sequenza appartiene alla classe politics
, potremmo costruire un'ipotesi di "Questo testo riguarda la politica". Le probabilità di implicazione e contraddizione vengono quindi convertite in probabilità di etichetta. Come rapida rassegna, NLI considera due frasi: una premessa e un'ipotesi. Il compito è determinare se l'ipotesi è vera (coinvolgimento) o falsa (contraddizione) data la premessa. La tabella seguente fornisce alcuni esempi.
Premessa | Discografica | Ipotesi |
Un uomo ispeziona l'uniforme di una figura in un paese dell'Asia orientale. | contraddizione | L'uomo sta dormendo. |
Un uomo più anziano e più giovane che sorride. | Neutres | Due uomini sorridono e ridono dei gatti che giocano sul pavimento. |
Una partita di calcio con più maschi che giocano. | implicazione | Alcuni uomini praticano uno sport. |
Panoramica della soluzione
In questo post, discutiamo di quanto segue:
- Come distribuire modelli di classificazione del testo zero-shot pre-addestrati utilizzando l'interfaccia utente JumpStart di SageMaker ed eseguire l'inferenza sul modello distribuito utilizzando dati di testo brevi
- Come utilizzare SageMaker Python SDK per accedere ai modelli di classificazione del testo zero-shot preaddestrati in SageMaker JumpStart e utilizzare lo script di inferenza per distribuire il modello a un endpoint SageMaker per un caso d'uso di classificazione del testo in tempo reale
- Come utilizzare SageMaker Python SDK per accedere a modelli di classificazione del testo zero-shot pre-addestrati e utilizzare la trasformazione batch di SageMaker per un caso d'uso di classificazione del testo in batch
SageMaker JumpStart offre la messa a punto e l'implementazione con un solo clic per un'ampia varietà di modelli pre-addestrati nelle attività ML più diffuse, oltre a una selezione di soluzioni end-to-end che risolvono problemi aziendali comuni. Queste funzionalità eliminano il lavoro pesante da ogni fase del processo ML, semplificando lo sviluppo di modelli di alta qualità e riducendo i tempi di implementazione. IL API JumpStart consentono di distribuire e ottimizzare a livello di programmazione un'ampia selezione di modelli pre-addestrati sui propri set di dati.
L'hub del modello JumpStart fornisce l'accesso a un gran numero di modelli NLP che consentono il trasferimento dell'apprendimento e la messa a punto di set di dati personalizzati. Al momento della stesura di questo documento, l'hub del modello JumpStart contiene oltre 300 modelli di testo in una varietà di modelli popolari, come Stable Diffusion, Flan T5, Alexa TM, Bloom e altri.
Tieni presente che seguendo i passaggi in questa sezione, distribuirai l'infrastruttura al tuo account AWS che potrebbe comportare dei costi.
Distribuisci un modello di classificazione del testo standalone zero-shot
In questa sezione, dimostriamo come distribuire un modello di classificazione zero-shot utilizzando SageMaker JumpStart. Puoi accedere ai modelli pre-addestrati tramite la pagina di destinazione JumpStart in Amazon Sage Maker Studio. Completa i seguenti passaggi:
- In SageMaker Studio, apri la pagina di destinazione di JumpStart.
Fare riferimento a Apri e usa JumpStart per ulteriori dettagli su come accedere a SageMaker JumpStart. - Nel Modelli di testo carosello, individuare la scheda modello "Classificazione del testo zero-shot".
- Scegli Visualizza modello per accedere
facebook-bart-large-mnli
modello.
In alternativa, puoi cercare il modello di classificazione zero-shot nella barra di ricerca e accedere al modello in SageMaker JumpStart. - Specificare una configurazione di distribuzione, il tipo di istanza di hosting SageMaker, il nome dell'endpoint, Servizio di archiviazione semplice Amazon (Amazon S3) nome del bucket e altri parametri obbligatori.
- Facoltativamente, puoi specificare configurazioni di sicurezza come Gestione dell'identità e dell'accesso di AWS (IAM), impostazioni VPC e Servizio di gestione delle chiavi AWS (AWS KMS) chiavi di crittografia.
- Scegli Schierare per creare un endpoint SageMaker.
Questo passaggio richiede un paio di minuti per essere completato. Al termine, puoi eseguire l'inferenza sull'endpoint SageMaker che ospita il modello di classificazione zero-shot.
Nel seguente video, mostriamo una procedura dettagliata dei passaggi in questa sezione.
Usa JumpStart a livello di codice con SageMaker SDK
Nella sezione SageMaker JumpStart di SageMaker Studio, sotto Soluzioni di avvio rapido, puoi trovare il file modelli di soluzione. I modelli di soluzione JumpStart di SageMaker sono soluzioni end-to-end con un solo clic per molti casi d'uso ML comuni. Al momento della stesura di questo documento, sono disponibili oltre 20 soluzioni per molteplici casi d'uso, come la previsione della domanda, il rilevamento delle frodi e le raccomandazioni personalizzate, solo per citarne alcuni.
La soluzione "Zero Shot Text Classification with Hugging Face" fornisce un modo per classificare il testo senza la necessità di addestrare un modello per etichette specifiche (classificazione a tiro zero) utilizzando un classificatore di testo preaddestrato. Il modello di classificazione zero-shot predefinito per questa soluzione è il facebook-bart-large-mnli (BART) modello. Per questa soluzione, usiamo il Set di dati Risoluzioni per il nuovo anno 2015 classificare le risoluzioni. Un sottoinsieme del set di dati originale contenente solo il file Resolution_Category
(etichetta di verità fondamentale) e il text
colonne è incluso nelle risorse della soluzione.
I dati di input includono stringhe di testo, un elenco delle categorie desiderate per la classificazione e se la classificazione è multietichetta o meno per l'inferenza sincrona (in tempo reale). Per l'inferenza asincrona (batch), forniamo un elenco di stringhe di testo, l'elenco di categorie per ogni stringa e se la classificazione è multi-etichetta o meno in un file di testo formattato con righe JSON.
Il risultato dell'inferenza è un oggetto JSON simile allo screenshot seguente.
Abbiamo il testo originale nel sequence
campo, le etichette utilizzate per la classificazione del testo nel file labels
campo e la probabilità assegnata a ciascuna etichetta (nello stesso ordine di apparizione) nel campo scores
.
Per distribuire la classificazione del testo Zero Shot con la soluzione Hugging Face, completare i seguenti passaggi:
- Nella pagina di destinazione di SageMaker JumpStart, scegli Modelli, taccuini, soluzioni nel pannello di navigazione.
- Nel Soluzioni sezione, scegliere Esplora tutte le soluzioni.
- Sulla Soluzioni pagina, scegli la scheda modello Classificazione del testo Zero Shot con Hugging Face.
- Esamina i dettagli della distribuzione e, se sei d'accordo, scegli Lancio.
La distribuzione fornirà un endpoint SageMaker in tempo reale per l'inferenza in tempo reale e un bucket S3 per l'archiviazione dei risultati della trasformazione batch.
Il diagramma seguente illustra l'architettura di questo metodo.
Esegui l'inferenza in tempo reale utilizzando un modello di classificazione zero-shot
In questa sezione, esaminiamo come utilizzare Python SDK per eseguire la classificazione del testo zero-shot (utilizzando uno qualsiasi dei modelli disponibili) in tempo reale utilizzando un endpoint SageMaker.
- Innanzitutto, configuriamo la richiesta di payload di inferenza al modello. Questo dipende dal modello, ma per il modello BART, l'input è un oggetto JSON con la seguente struttura:
- Si noti che il modello BART non è addestrato in modo esplicito su
candidate_labels
. Useremo la tecnica di classificazione zero-shot per classificare la sequenza di testo in classi invisibili. Il codice seguente è un esempio che utilizza il testo del set di dati dei propositi per l'anno nuovo e le classi definite: - Successivamente, puoi richiamare un endpoint SageMaker con il payload zero-shot. L'endpoint SageMaker viene distribuito come parte della soluzione SageMaker JumpStart.
- L'oggetto risposta di inferenza contiene la sequenza originale, le etichette ordinate per punteggio da massimo a minimo e i punteggi per etichetta:
Esegui un processo di trasformazione batch SageMaker utilizzando l'SDK Python
Questa sezione descrive come eseguire l'inferenza della trasformazione batch con la classificazione zero-shot facebook-bart-large-mnli
modello usando il SDK Python di SageMaker. Completa i seguenti passaggi:
- Formatta i dati di input nel formato delle righe JSON e carica il file su Amazon S3.
La trasformazione batch di SageMaker eseguirà l'inferenza sui punti dati caricati nel file S3. - Impostare gli artefatti di distribuzione del modello con i seguenti parametri:
- id_modello - Uso
huggingface-zstc-facebook-bart-large-mnli
. - deploy_immagine_uri - Utilizzare il
image_uris
Funzione Python SDK per ottenere l'immagine SageMaker Docker predefinita per ilmodel_id
. La funzione restituisce il Registro dei contenitori Amazon Elastic (Amazon ECR) URI. - deploy_source_uri – Usa il
script_uris
API di utilità per recuperare l'URI S3 che contiene gli script per eseguire l'inferenza del modello pre-addestrato. Precisiamo ilscript_scope
asinference
. - modello_uri - Uso
model_uri
per ottenere gli artefatti del modello da Amazon S3 per l'oggetto specificatomodel_id
.
- id_modello - Uso
- Usa il
HF_TASK
definire il compito per la pipeline di trasformatori Hugging Face eHF_MODEL_ID
per definire il modello utilizzato per classificare il testo:Per un elenco completo delle attività, vedere Condotte nella documentazione Hugging Face.
- Crea un oggetto modello Hugging Face da distribuire con il processo di trasformazione batch di SageMaker:
- Crea una trasformazione per eseguire un processo batch:
- Avvia un processo di trasformazione batch e utilizza i dati S3 come input:
Puoi monitorare il tuo processo di elaborazione batch sulla console SageMaker (scegli Processi di trasformazione in batch per Inferenza nel riquadro di navigazione). Al termine del processo, è possibile controllare l'output della previsione del modello nel file S3 specificato in output_path
.
Per un elenco di tutti i modelli preaddestrati disponibili in SageMaker JumpStart, fare riferimento a Algoritmi incorporati con tabella modello pre-addestrata. Usa la parola chiave "zstc" (abbreviazione di classificazione del testo zero-shot) nella barra di ricerca per individuare tutti i modelli in grado di eseguire la classificazione del testo zero-shot.
ripulire
Dopo aver eseguito il notebook, assicurarsi di eliminare tutte le risorse create nel processo per assicurarsi che i costi sostenuti dalle risorse distribuite in questa guida vengano bloccati. Il codice per ripulire le risorse distribuite viene fornito nei notebook associati alla soluzione e al modello di classificazione del testo zero-shot.
Configurazioni di sicurezza predefinite
I modelli SageMaker JumpStart vengono distribuiti utilizzando le seguenti configurazioni di sicurezza predefinite:
Per ulteriori informazioni sugli argomenti relativi alla sicurezza di SageMaker, dai un'occhiata Configura la sicurezza in Amazon SageMaker.
Conclusione
In questo post, ti abbiamo mostrato come distribuire un modello di classificazione zero-shot utilizzando l'interfaccia utente JumpStart di SageMaker ed eseguire l'inferenza utilizzando l'endpoint distribuito. Abbiamo utilizzato la soluzione SageMaker JumpStart New Year's resolutions per mostrare come puoi utilizzare SageMaker Python SDK per creare una soluzione end-to-end e implementare un'applicazione di classificazione zero-shot. SageMaker JumpStart fornisce l'accesso a centinaia di modelli e soluzioni preaddestrati per attività come visione artificiale, elaborazione del linguaggio naturale, sistemi di raccomandazione e altro ancora. Prova tu stesso la soluzione e facci sapere cosa ne pensi.
Circa gli autori
Davide Laredo è un architetto di prototipazione presso AWS Envision Engineering in LATAM, dove ha contribuito a sviluppare più prototipi di machine learning. In precedenza, ha lavorato come Machine Learning Engineer e si occupa di machine learning da oltre 5 anni. Le sue aree di interesse sono PNL, serie temporali e ML end-to-end.
Vikram Elango è AI/ML Specialist Solutions Architect presso Amazon Web Services, con sede in Virginia, USA. Vikram aiuta i clienti del settore finanziario e assicurativo con leadership di progettazione e pensiero a creare e distribuire applicazioni di machine learning su larga scala. Attualmente si occupa di elaborazione del linguaggio naturale, intelligenza artificiale responsabile, ottimizzazione dell'inferenza e scalabilità del machine learning in tutta l'azienda. Nel tempo libero ama viaggiare, fare escursioni, cucinare e fare campeggio con la sua famiglia.
Dott. Vivek Madan è uno scienziato applicato con il team 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.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Grafico Prime. Migliora il tuo gioco di trading con ChartPrime. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/zero-shot-text-classification-with-amazon-sagemaker-jumpstart/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 12
- 16
- 17
- 20
- 22
- 30
- 7
- 8
- 9
- a
- capacità
- WRI
- sopra
- accesso
- Il mio account
- Raggiungere
- operanti in
- attivo
- aggiuntivo
- contro
- AI
- AI / ML
- AL
- Alexa
- algoritmo
- Algoritmi
- Tutti
- consentire
- consente
- Amazon
- Amazon Sage Maker
- JumpStart di Amazon SageMaker
- Amazon Web Services
- quantità
- an
- ed
- in qualsiasi
- api
- Applicazioni
- applicazioni
- applicato
- architettura
- SONO
- aree
- AS
- asiatico
- Attività
- addetto
- associato
- At
- automaticamente
- disponibile
- AWS
- bar
- base
- basato
- BE
- stato
- essendo
- appartiene
- fra
- Fioritura
- stile di vita
- Libri
- Colazione
- costruire
- incassato
- affari
- ma
- by
- Materiale
- candidato
- capace
- carta
- Career
- carosello
- casi
- categoria
- Gatti
- impegnativo
- dai un'occhiata
- Scegli
- classe
- classi
- classificazione
- classificato
- classificare
- codice
- colonne
- Uncommon
- completamento di una
- complessità
- computer
- Visione computerizzata
- computer
- interessato
- conferenze
- Configurazione
- ritiene
- consolle
- costruire
- Contenitore
- contiene
- contrasto
- convertito
- Costi
- potuto
- nazione
- Coppia
- creare
- creato
- Creazione
- Attualmente
- costume
- Clienti
- dati
- punti dati
- dataset
- dedicato
- Predefinito
- definire
- definito
- Richiesta
- Previsione della domanda
- dimostrare
- dipendenze
- dipendente
- schierare
- schierato
- deployment
- Design
- desiderato
- dettagli
- rivelazione
- Determinare
- sviluppare
- Mercato
- differenze
- Emittente
- discutere
- Diversità
- docker
- documentazione
- non
- fare
- fatto
- dovuto
- E&T
- ogni
- est
- Istruzione
- enable
- crittografia
- da un capo all'altro
- endpoint
- ingegnere
- Ingegneria
- garantire
- Impresa
- entità
- immaginare
- valutare
- Anche
- esempio
- Esempi
- Faccia
- falso
- famiglia
- Caratteristiche
- pochi
- campo
- figura
- Compila il
- finanziare
- finanziario
- Trovate
- Pavimento
- concentrato
- i seguenti
- Nel
- formato
- Fondazione
- Contesto
- frode
- rilevazione di frodi
- da
- function
- gioco
- generare
- Georgia
- ottenere
- GitHub
- dato
- Dare
- Terra
- Crescita
- guida
- Manovrabilità
- Avere
- he
- Salute e benessere
- pesante
- sollevamento pesante
- Aiuto
- aiutato
- aiuta
- alta qualità
- il suo
- di hosting
- padroni di casa
- Come
- Tutorial
- HTML
- http
- HTTPS
- Hub
- umano
- umorismo
- centinaia
- centinaia di milioni
- ID
- Identità
- if
- Illinois
- illustra
- Immagine
- realizzare
- importare
- in
- incluso
- inclusi
- industria
- informazioni
- Infrastruttura
- inerente
- ingresso
- Ingressi
- esempio
- assicurazione
- interesse
- IT
- Lavoro
- Offerte di lavoro
- jpg
- json
- Le
- Tasti
- Sapere
- Discografica
- per il tuo brand
- atterraggio
- Lingua
- grandi
- LATAM
- lanciato
- Leadership
- IMPARARE
- apprendimento
- a sinistra
- lasciare
- di sollevamento
- piace
- linea
- Linee
- Lista
- LLM
- Caricamento in corso
- SEMBRA
- macchina
- machine learning
- make
- FA
- uomo
- gestione
- molti
- max
- Maggio..
- Uomo
- metodo
- milioni
- verbale
- Minuti
- ML
- modello
- modelli
- Monitorare
- Scopri di più
- multiplo
- my
- Nome
- Naturale
- Elaborazione del linguaggio naturale
- Navigare
- Navigazione
- Bisogno
- New
- Capodanno
- nlp
- no
- taccuino
- numero
- oggetto
- of
- on
- esclusivamente
- aprire
- ottimizzazione
- or
- minimo
- organizzazioni
- i
- Altro
- su
- produzione
- ancora
- proprio
- pagina
- vetro
- documenti
- paradigma
- parametri
- parte
- sentiero
- per
- Eseguire
- performance
- permessi
- cronologia
- Personalizzata
- phd
- FILANTROPIA
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- gioco
- punti
- politica
- Popolare
- Post
- pratica
- predizione
- Previsioni
- presenti
- in precedenza
- problemi
- processi
- lavorazione
- proposto
- prototipi
- prototipazione
- fornire
- purché
- fornisce
- fornitura
- pubblicato
- Python
- pytorch
- Presto
- rapidamente
- Leggi
- di rose
- tempo reale
- recentemente
- riconoscimento
- Consigli
- raccomandazioni
- riducendo
- rimuovere
- richiesta
- richiedere
- necessario
- ricercatore
- Risorse
- risposta
- risposte
- responsabile
- colpevole
- Risultati
- problemi
- recensioni
- destra
- Ruolo
- Correre
- running
- s
- sagemaker
- stesso
- Risparmi
- Scala
- scala
- Scienziato
- Punto
- graffiare
- script
- scrolling
- sdk
- Cerca
- Sezione
- problemi di
- vedere
- prodotti
- Sequenza
- Serie
- Servizi
- impostazioni
- Corti
- tiro
- mostrare attraverso le sue creazioni
- ha mostrato
- Un'espansione
- semplificando
- da
- Taglia
- Calcio
- soluzione
- Soluzioni
- RISOLVERE
- alcuni
- qualcosa
- parlando
- specialista
- specifico
- in particolare
- specificato
- parlato
- Gli Sport
- stabile
- standalone
- inizia a
- iniziato
- state-of-the-art
- soggiorno
- step
- Passi
- fermato
- conservazione
- memorizzare
- Corda
- La struttura
- studio
- tale
- supporto
- sicuro
- SISTEMI DI TRATTAMENTO
- tavolo
- Fai
- prende
- Task
- task
- team
- Tech
- modelli
- Classificazione del testo
- che
- Il
- loro
- poi
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- pensiero
- leadership di pensiero
- Attraverso
- tempo
- Serie storiche
- TM
- a
- Argomenti
- Treni
- allenato
- Training
- trasferimento
- Trasformare
- Trasformazione
- trasformatore
- trasformatori
- Di viaggio
- Trilione
- vero
- Verità
- prova
- tweet
- seconda
- Digitare
- ui
- per
- capire
- Università
- caricato
- us
- uso
- utilizzato
- utilizzando
- utilità
- varietà
- Fisso
- versione
- molto
- Video
- Virginia
- visione
- vs
- walkthrough
- volere
- Prima
- Modo..
- we
- sito web
- servizi web
- WELL
- sono stati
- quando
- se
- while
- di chi
- largo
- volere
- con
- senza
- parole
- lavorato
- lavori
- scrittura
- anno
- anni
- Tu
- Minore
- Trasferimento da aeroporto a Sharm
- zefiro
- zero
- Apprendimento a tiro zero