Manzio è un fornitore globale di piattaforme cloud per la creazione di applicazioni di intelligenza artificiale e la loro gestione su larga scala. La piattaforma di sviluppo end-to-end di Mantium consente alle aziende e alle aziende di tutte le dimensioni di creare applicazioni di intelligenza artificiale e automazione in modo più rapido e semplice di quanto sia stato tradizionalmente possibile. Con Mantium, i team tecnici e non tecnici possono prototipare, sviluppare, testare e distribuire applicazioni di intelligenza artificiale, il tutto con un approccio low-code. Grazie alle funzionalità di registrazione, monitoraggio e sicurezza automatiche, Mantium consente inoltre agli ingegneri di software e DevOps di dedicare il loro tempo a reinventare il volante. Ad alto livello, Mantium offre:
- Intelligenza artificiale all'avanguardia – Sperimenta e sviluppa con un'ampia selezione di modelli di linguaggio di grandi dimensioni open source e privati con una semplice interfaccia utente o API.
- Automazione dei processi con intelligenza artificiale – Crea facilmente applicazioni basate sull'intelligenza artificiale con una libreria crescente di integrazioni e AI Builder grafico di Mantium.
- Distribuzione rapida – Riduci la sequenza temporale di produzione da mesi a settimane o addirittura giorni con l'implementazione con un clic. Questa funzione trasforma le applicazioni AI in app Web condivisibili con un clic.
- Sicurezza e regolamentazione – Garantire la sicurezza e la conformità con le politiche di governance e il supporto per i processi human-in-the-loop.
Con Mantium AI Builder, puoi sviluppare flussi di lavoro sofisticati che integrano API esterne, operazioni logiche e modelli di intelligenza artificiale. Lo screenshot seguente mostra un esempio dell'app Mantium AI, che concatena un input Twilio, una policy di governance, un blocco AI (che può fare affidamento su un modello open source come GPT-J) e un output Twilio.
Per supportare questa app, Mantium fornisce un accesso completo e uniforme non solo alle API del modello di fornitori di intelligenza artificiale come Open AI, Co:here e AI21, ma anche a modelli open source all'avanguardia. In Mantium, crediamo che chiunque dovrebbe essere in grado di creare moderne applicazioni di intelligenza artificiale di cui è proprietario, end-to-end, e lo supportiamo fornendo accesso senza codice e low-code a modelli open source con prestazioni ottimizzate.
Ad esempio, uno dei principali modelli open source di Mantium è GPT-J, un modello di elaborazione del linguaggio naturale (NLP) all'avanguardia sviluppato da Eleuthera AI. Con 6 miliardi di parametri, GPT-J è uno dei modelli di generazione di testo open source più grandi e con le migliori prestazioni. Gli utenti di Mantium possono integrare GPT-J nelle loro applicazioni di intelligenza artificiale tramite AI Builder di Mantium. Nel caso di GPT-J, si tratta di specificare a pronto (una rappresentazione in linguaggio naturale di ciò che il modello dovrebbe fare) e la configurazione di alcuni parametri opzionali.
Ad esempio, la schermata seguente mostra una dimostrazione abbreviata di un prompt di analisi del sentimento che produce spiegazioni e previsioni del sentimento. In questo esempio, l'autore ha scritto che il "cibo era meraviglioso" e che il loro "servizio era straordinario". Pertanto, questo testo esprime un sentimento positivo.
Tuttavia, una sfida con i modelli open source è che raramente sono progettati per prestazioni di livello produttivo. Nel caso di modelli di grandi dimensioni come GPT-J, ciò può rendere impraticabile l'implementazione della produzione e persino impossibile, a seconda del caso d'uso.
Per garantire che i nostri utenti abbiano accesso alle migliori prestazioni della categoria, siamo sempre alla ricerca di modi per ridurre la latenza dei nostri modelli principali. In questo post, descriviamo i risultati di un esperimento di ottimizzazione dell'inferenza in cui utilizziamo il motore di inferenza di DeepSpeed per aumentare la velocità di inferenza di GPT-J di circa il 116%. Descriviamo anche come abbiamo implementato l'implementazione Hugging Face Transformers di GPT-J con DeepSpeed nel nostro Amazon Sage Maker punti finali di inferenza.
Panoramica del modello GPT-J
GPT-J è un modello linguistico generativo preaddestrato (GPT) e, in termini di architettura, è paragonabile a modelli linguistici popolari, privati e di grandi dimensioni come GPT-3 di Open AI. Come notato in precedenza, è costituito da circa 6 miliardi di parametri e 28 strati, che consistono in un blocco feedforward e un blocco di auto-attenzione. Quando è stato rilasciato per la prima volta, GPT-J è stato uno dei primi modelli linguistici di grandi dimensioni da utilizzare incastri rotanti, una nuova strategia di codifica della posizione che unifica gli encoder di posizione assoluti e relativi. Impiega inoltre un'innovativa strategia di parallelizzazione in cui strati densi e feedforward vengono combinati in un unico strato, riducendo al minimo il sovraccarico di comunicazione.
Sebbene GPT-J potrebbe non qualificarsi come grande per gli standard odierni (i modelli di grandi dimensioni in genere sono costituiti da più di 100 miliardi di parametri), è comunque straordinariamente performante e, con una progettazione tempestiva o una messa a punto minima, è possibile utilizzarlo per risolvere molti problemi. Inoltre, le sue dimensioni relativamente modeste consentono di implementarlo più rapidamente ea un costo molto inferiore rispetto ai modelli più grandi.
Detto questo, GPT-J è ancora piuttosto grande. Ad esempio, l'allenamento GPT-J in FP32 con aggiornamenti di peso completi e l'ottimizzatore Adam richiede oltre 200 GB di memoria: 24 GB per i parametri del modello, 24 GB per i gradienti, 24 GB per i gradienti quadrati di Adam, 24 GB per gli stati dell'ottimizzatore, e i requisiti di memoria aggiuntivi per il caricamento dei batch di addestramento e la memorizzazione delle attivazioni. Naturalmente, la formazione nel 16PQ riduce questi requisiti di memoria quasi della metà, ma un footprint di memoria di oltre 100 GB richiede ancora strategie di formazione innovative. Ad esempio, in collaborazione con SageMaker, il team NLP di Mantium ha sviluppato a flusso di lavoro per l'addestramento (ottimizzazione) GPT-J utilizzando la libreria parallela del modello distribuito SageMaker.
Al contrario, servire GPT-J per l'inferenza ha requisiti di memoria molto inferiori: in FP16, i pesi del modello occupano meno di 13 GB, il che significa che l'inferenza può essere facilmente condotta su una singola GPU da 16 GB. Tuttavia, l'inferenza con implementazioni pronte all'uso di GPT-J, come Hugging Face Transformers implementazione che usiamo, è relativamente lento. Per supportare i casi d'uso che richiedono una generazione di testo altamente reattiva, ci siamo concentrati sulla riduzione della latenza di inferenza di GPT-J.
Sfide di latenza di risposta di GPT-J
La latenza di risposta è un ostacolo fondamentale per i trasformatori generativi pre-addestrati (GPT) come GPT-J che alimentano la moderna generazione di testo. I modelli GPT generano testo attraverso sequenze di passaggi di inferenza. Ad ogni passaggio dell'inferenza, al modello viene fornito del testo come input e, in base a questo input, campiona una parola dal suo vocabolario da aggiungere al testo. Ad esempio, data la sequenza di token "Ho bisogno di un ombrello perché è", un token successivo ad alta probabilità potrebbe essere "piove". Tuttavia, potrebbe anche essere "soleggiato" o "vincolato", che potrebbe essere il primo passo verso una sequenza di testo come "Ho bisogno di un ombrello perché è destinato a iniziare a piovere".
Scenari come questo sollevano alcune sfide interessanti per l'implementazione di modelli GPT perché i casi d'uso del mondo reale potrebbero coinvolgere decine, centinaia o persino migliaia di passaggi di inferenza. Ad esempio, la generazione di una risposta di 1,000 token richiede 1,000 passaggi di inferenza! Di conseguenza, sebbene un modello possa offrire velocità di inferenza che sembrano abbastanza veloci da solo, è facile che la latenza raggiunga livelli insostenibili quando vengono generati testi lunghi. Abbiamo osservato una latenza media di 280 millisecondi per passo di inferenza su una GPU V100. Potrebbe sembrare veloce per un modello di 6.7 miliardi di parametri, ma con tali latenze, ci vogliono circa 30 secondi per generare una risposta di 500 token, che non è l'ideale dal punto di vista dell'esperienza utente.
Ottimizzazione delle velocità di inferenza con DeepSpeed Inference
deepspeed è una libreria di ottimizzazione del deep learning open source sviluppata da Microsoft. Sebbene si concentri principalmente sull'ottimizzazione dell'addestramento di modelli di grandi dimensioni, DeepSpeed fornisce anche un framework di ottimizzazione dell'inferenza che supporta un set selezionato di modelli, tra cui BERT, Megatron, GPT-Neo, GPT2 e GPT-J. DeepSpeed Inference facilita l'inferenza ad alte prestazioni con grandi architetture basate su Transformer attraverso una combinazione di parallelismo del modello, kernel CUDA ottimizzati per l'inferenza e quantizzazione.
Per aumentare la velocità di inferenza con GPT-J, utilizziamo il motore di inferenza di DeepSpeed per iniettare kernel CUDA ottimizzati nell'implementazione GPT-J di Hugging Face Transformers.
Per valutare i vantaggi in termini di velocità del motore di inferenza di DeepSpeed, abbiamo condotto una serie di test di latenza in cui abbiamo cronometrato GPT-J in varie configurazioni. In particolare, abbiamo variato l'utilizzo o meno di DeepSpeed, l'hardware, la lunghezza della sequenza di output e la lunghezza della sequenza di input. Ci siamo concentrati sia sull'output che sulla lunghezza della sequenza di input, perché entrambi influiscono sulla velocità di inferenza. Per generare una sequenza di output di 50 token, il modello deve eseguire 50 passaggi di inferenza. Inoltre, il tempo necessario per eseguire una fase di inferenza dipende dalle dimensioni della sequenza di input: input più grandi richiedono più tempo di elaborazione. Sebbene l'effetto della dimensione della sequenza di output sia molto maggiore dell'effetto della dimensione della sequenza di input, è comunque necessario tenere conto di entrambi i fattori.
Nel nostro esperimento, abbiamo utilizzato il seguente design:
- Motore di inferenza DeepSpeed - Acceso spento
- Hardware – T4 (ml.g4dn.2xgrande), V100 (ml.p3.2xgrande)
- Inserire la lunghezza della sequenza - 50, 200, 500, 1000
- Lunghezza della sequenza di output - 50, 100, 150, 200
In totale, questo progetto ha 64 combinazioni di questi quattro fattori e per ogni combinazione abbiamo eseguito 20 test di latenza. Ogni test è stato eseguito su un endpoint di inferenza SageMaker preinizializzato, assicurando che i nostri test di latenza riflettano i tempi di produzione, inclusi gli scambi API e la preelaborazione.
I nostri test dimostrano che il motore di inferenza GPT-J di DeepSpeed è sostanzialmente più veloce dell'implementazione di base di Hugging Face Transformers PyTorch. La figura seguente illustra le latenze medie di generazione del testo per GPT-J con e senza accelerazione DeepSpeed sugli endpoint di inferenza ml.g4dn.2xlarge e ml.p3.2xlarge SageMaker.
Nell'istanza ml.g4dn.2xlarge, dotata di una GPU NVIDIA T16 da 4 GB, abbiamo osservato una riduzione media della latenza di circa il 24% [Standard Deviation (SD) = 0.05]. Ciò corrispondeva a un aumento da una media di 12.5 (SD = 0.91) gettoni al secondo a una media di 16.5 (SD = 2.13) gettoni al secondo. In particolare, l'effetto di accelerazione di DeepSpeed è stato ancora più forte sull'istanza ml.p3.2xlarge, che è dotata di una GPU NVIDIA V100. Su quell'hardware, abbiamo osservato una riduzione media della latenza del 53% (SD = .07). In termini di token al secondo, ciò corrispondeva a un aumento da una media di 21.9 (SD = 1.97) token al secondo a una media di 47.5 (SD = 5.8) token al secondo.
Abbiamo anche osservato che l'accelerazione offerta da DeepSpeed si è leggermente attenuata su entrambe le configurazioni hardware con l'aumentare delle dimensioni delle sequenze di input. Tuttavia, in tutte le condizioni, l'inferenza con le ottimizzazioni GPT-J di DeepSpeed era ancora sostanzialmente più veloce della linea di base. Ad esempio, nell'istanza g4dn, le riduzioni della latenza massima e minima erano rispettivamente del 31% (dimensione della sequenza di input = 50) e del 15% (dimensione della sequenza di input = 1000). E nell'istanza p3, le riduzioni della latenza massima e minima erano rispettivamente del 62% (dimensione della sequenza di input = 50) e del 40% (dimensione della sequenza di input = 1000).
Distribuzione di GPT-J con DeepSpeed su un endpoint di inferenza SageMaker
Oltre ad aumentare notevolmente la velocità di generazione del testo per GPT-J, il motore di inferenza di DeepSpeed è semplice da integrare in un endpoint di inferenza SageMaker. Prima di aggiungere DeepSpeed al nostro stack di inferenza, i nostri endpoint erano in esecuzione su un'immagine Docker personalizzata basata su un'immagine PyTorch ufficiale. SageMaker semplifica la distribuzione di endpoint di inferenza personalizzati e l'integrazione di DeepSpeed è stata semplice come includere la dipendenza e scrivere alcune righe di codice. La guida open source al flusso di lavoro di distribuzione per distribuire GPT-J con DeepSpeed è disponibile su GitHub.
Conclusione
Mantium è dedicato a guidare l'innovazione in modo che tutti possano costruire rapidamente con l'IA. Dall'automazione dei processi basata sull'intelligenza artificiale alle rigorose impostazioni di sicurezza e conformità, la nostra piattaforma completa fornisce tutti gli strumenti necessari per sviluppare e gestire applicazioni di intelligenza artificiale solide e responsabili su larga scala e riduce la barriera all'ingresso. SageMaker aiuta aziende come Mantium a raggiungere rapidamente il mercato.
Per scoprire come Mantium può aiutarti a creare flussi di lavoro complessi basati sull'intelligenza artificiale per la tua organizzazione, visita il sito www.mantiumai.com.
Circa gli autori
Joe Hoover è un Senior Applied Scientist nel team di ricerca e sviluppo AI di Mantium. È appassionato di sviluppo di modelli, metodi e infrastrutture che aiutano le persone a risolvere i problemi del mondo reale con sistemi NLP all'avanguardia. Nel tempo libero gli piace fare lo zaino in spalla, fare giardinaggio, cucinare e uscire con la sua famiglia.
Dhawal Patel è un Principal Machine Learning Architect presso AWS. Ha lavorato con organizzazioni che vanno dalle grandi imprese alle startup di medie dimensioni su problemi legati all'informatica distribuita e all'intelligenza artificiale. Si concentra sull'apprendimento profondo, inclusi i domini della PNL e della visione artificiale. Aiuta i clienti a ottenere l'inferenza del modello ad alte prestazioni su SageMaker.
Sunil Padmanabhan è un architetto di soluzioni di avvio presso AWS. In qualità di ex fondatore di startup e CTO, è appassionato di machine learning e si concentra sull'aiutare le startup a sfruttare AI/ML per i loro risultati di business e progettare e distribuire soluzioni ML/AI su larga scala.
- Coinsmart. Il miglior scambio di bitcoin e criptovalute d'Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. ACCESSO LIBERO.
- Criptofalco. Radar Altcoin. Prova gratuita.
- Fonte: https://aws.amazon.com/blogs/machine-learning/how-mantium-achieves-low-latency-gpt-j-inference-with-deepspeed-on-amazon-sagemaker/
- "
- 000
- 100
- 28
- 7
- 9
- a
- Chi siamo
- Assoluta
- accesso
- di conseguenza
- Il mio account
- Raggiungere
- operanti in
- aggiunta
- aggiuntivo
- influenzare
- AI
- Tutti
- Sebbene il
- sempre
- Amazon
- .
- chiunque
- api
- API
- App
- applicazioni
- applicato
- approccio
- circa
- applicazioni
- architettura
- artificiale
- intelligenza artificiale
- Automatico
- Automazione
- disponibile
- media
- AWS
- barriera
- Linea di base
- perché
- prima
- vantaggi
- Miliardo
- Bloccare
- costruire
- costruttore
- Costruzione
- affari
- aziende
- casi
- Challenge
- sfide
- Cloud
- cloud Platform
- codice
- collaborazione
- combinazione
- combinazioni
- combinato
- Comunicazione
- Aziende
- completamento di una
- complesso
- conformità
- globale
- computer
- informatica
- condizioni
- Nucleo
- potuto
- CTO
- costume
- Clienti
- bordo tagliente
- dedicato
- deep
- fornisce un monitoraggio
- dimostrare
- Dipendente
- dipende
- schierare
- schierato
- distribuzione
- deployment
- descrivere
- Design
- progettato
- sviluppare
- sviluppato
- in via di sviluppo
- Mercato
- distribuito
- calcolo distribuito
- docker
- domini
- drammaticamente
- facilmente
- effetto
- impiega
- Abilita
- da un capo all'altro
- endpoint
- motore
- Ingegneria
- Ingegneri
- assicurando
- aziende
- attrezzato
- valutare
- tutti
- esempio
- Cambi Merce
- esperienza
- esperimento
- estensivo
- straordinaria
- Faccia
- Fattori
- famiglia
- FAST
- più veloce
- caratteristica
- Caratteristiche
- figura
- Nome
- concentrato
- si concentra
- i seguenti
- Orma
- fondatore
- Contesto
- da
- pieno
- Inoltre
- generare
- la generazione di
- ELETTRICA
- generativo
- globali
- la governance
- GPU
- Crescita
- guida
- Hardware
- Aiuto
- aiutare
- aiuta
- qui
- Alta
- vivamente
- Come
- Tuttavia
- HTTPS
- centinaia
- ideale
- Immagine
- implementazione
- Compreso
- Aumento
- crescente
- Innovazione
- creativi e originali
- ingresso
- esempio
- integrare
- integrazioni
- Intelligence
- da solo
- IT
- Lingua
- grandi
- superiore, se assunto singolarmente.
- maggiore
- strato
- principale
- IMPARARE
- apprendimento
- Livello
- livelli
- Leva
- Biblioteca
- Linee
- Caricamento in corso
- Lunghi
- cerca
- macchina
- machine learning
- make
- FA
- gestire
- gestione
- Rappresentanza
- si intende
- Memorie
- metodi
- Microsoft
- forza
- ordine
- ML
- modello
- modelli
- monitoraggio
- mese
- Scopri di più
- Naturale
- necessaria
- Nvidia
- ostacolo
- offrire
- offerto
- ufficiale
- aprire
- open source
- Operazioni
- ottimizzazione
- ottimizzati
- ottimizzazione
- organizzazione
- organizzazioni
- proprio
- appassionato
- Persone
- performance
- prospettiva
- piattaforma
- Termini e Condizioni
- politica
- Popolare
- posizione
- positivo
- possibile
- energia
- Previsioni
- piuttosto
- Direttore
- un bagno
- problemi
- processi
- Automazione di Processo
- i processi
- lavorazione
- Produzione
- fornitore
- fornitori
- fornisce
- fornitura
- qualificarsi
- rapidamente
- R&D
- aumentare
- che vanno
- raggiungere
- riducendo
- riflettere
- rilasciato
- Uscite
- rappresentazione
- richiedere
- necessario
- Requisiti
- richiede
- risposta
- responsabile
- Risultati
- Correre
- running
- Sicurezza
- Suddetto
- Scala
- Scienziato
- secondo
- prodotti
- sentimento
- Serie
- servizio
- set
- Un'espansione
- singolo
- Taglia
- So
- Software
- Soluzioni
- RISOLVERE
- alcuni
- sofisticato
- in particolare
- velocità
- velocità
- Spendere
- pila
- Standard
- inizia a
- startup
- Startup
- state-of-the-art
- stati
- Ancora
- strategie
- Strategia
- più forte
- supporto
- supporti
- SISTEMI DI TRATTAMENTO
- team
- Consulenza
- condizioni
- test
- test
- I
- perciò
- migliaia
- Attraverso
- tempo
- volte
- di oggi
- insieme
- token
- Tokens
- strumenti
- tradizionalmente
- Training
- tipicamente
- ui
- per
- Aggiornamenti
- uso
- utenti
- vario
- visione
- modi
- sito web
- Che
- Ruota
- se
- senza
- lavorato
- flussi di lavoro
- scrittura
- Trasferimento da aeroporto a Sharm