Questo è un guest post scritto in collaborazione con Michael Feil di Gradient.
La valutazione delle prestazioni dei modelli linguistici di grandi dimensioni (LLM) è un passaggio importante del processo di pre-formazione e messa a punto prima della distribuzione. Quanto più velocemente e frequentemente riesci a convalidare le prestazioni, maggiori saranno le possibilità di migliorare le prestazioni del modello.
At Gradiente, lavoriamo allo sviluppo LLM personalizzato e proprio di recente abbiamo lanciato il nostro Laboratorio di sviluppo dell'intelligenza artificiale, offrendo alle organizzazioni aziendali un servizio di sviluppo end-to-end personalizzato per creare LLM privati e personalizzati e co-piloti di intelligenza artificiale (AI). Nell'ambito di questo processo, valutiamo regolarmente le prestazioni dei nostri modelli (ottimizzati, addestrati e aperti) rispetto a benchmark aperti e proprietari. Mentre lavoriamo con il team AWS per addestrare i nostri modelli AWSTrainium, ci siamo resi conto che eravamo limitati sia alla VRAM che alla disponibilità di istanze GPU quando si trattava dello strumento principale per la valutazione LLM, lm-imbracatura-di-valutazione. Questo framework open source ti consente di assegnare punteggi a diversi modelli linguistici generativi attraverso varie attività di valutazione e benchmark. Viene utilizzato da classifiche come Abbracciare il viso per il benchmarking pubblico.
Per superare queste sfide, abbiamo deciso di creare e rendere open source la nostra soluzione: l'integrazione Neurone AWS, la biblioteca dietro AWS Inferenza e Trainium, in lm-evaluation-harness
. Questa integrazione ha reso possibile il benchmarking v-alpha-tross, una prima versione del nostro modello Albatross, rispetto ad altri modelli pubblici durante il processo formativo e dopo.
Per contesto, questa integrazione viene eseguita come una nuova classe modello all'interno di lm-evaluation-harness, astraendo l'inferenza dei token e la stima della verosimiglianza delle sequenze senza influenzare l'effettiva attività di valutazione. La decisione di spostare la nostra pipeline di test interni a Cloud di calcolo elastico di Amazon (Amazon EC2) Istanze di Inf2 (con tecnologia AWS Inferentia2) ci ha permesso di accedere fino a 384 GB di memoria dell'acceleratore condiviso, adattandosi facilmente a tutte le nostre attuali architetture pubbliche. Utilizzando le istanze Spot di AWS, siamo stati in grado di sfruttare la capacità EC2 inutilizzata nel cloud AWS, consentendo risparmi sui costi scontati fino al 90% rispetto ai prezzi on-demand. Ciò ha ridotto al minimo il tempo necessario per i test e ci ha permesso di eseguire test più frequentemente perché siamo stati in grado di testare più istanze prontamente disponibili e rilasciare le istanze una volta terminato.
In questo post forniamo un'analisi dettagliata dei nostri test, delle sfide che abbiamo incontrato e un esempio di utilizzo del cablaggio di test su AWS Inferentia.
Benchmarking su AWS Inferentia2
L'obiettivo di questo progetto era generare punteggi identici come mostrato nel file Apri la classifica LLM (per molti modelli CausalLM disponibili su Hugging Face), pur mantenendo la flessibilità necessaria per confrontarlo con benchmark privati. Per vedere altri esempi di modelli disponibili, vedere AWS Inferentia e Trainium sul Volto che abbraccia.
Il codice cambia richiesto per trasferire un modello dai trasformatori Hugging Face all'Hugging Face Neurone ottimale La libreria Python era piuttosto bassa. Perché lm-evaluation-harness utilizza AutoModelForCausalLM
, si verifica un calo nella sostituzione utilizzando NeuronModelForCausalLM
. Senza un modello precompilato, il modello viene compilato automaticamente al momento, il che potrebbe aggiungere 15-60 minuti a un lavoro. Questo ci ha dato la flessibilità necessaria per distribuire test per qualsiasi istanza AWS Inferentia2 e modello CausalLM supportato.
Risultati
A causa del modo in cui funzionano i benchmark e i modelli, non ci aspettavamo che i punteggi corrispondessero esattamente nelle diverse sessioni. Tuttavia, dovrebbero essere molto vicini in base alla deviazione standard, e lo abbiamo osservato costantemente, come mostrato nella tabella seguente. I benchmark iniziali che abbiamo eseguito su AWS Inferentia2 sono stati tutti confermati dalla classifica Hugging Face.
In lm-evaluation-harness
, ci sono due flussi principali utilizzati da diversi test: generate_until
ed loglikelihood
. Il test gsm8k utilizza principalmente generate_until
per generare risposte proprio come durante l'inferenza. Loglikelihood
viene utilizzato principalmente nel benchmarking e nei test ed esamina la probabilità che vengano prodotti risultati diversi. Entrambi funzionano in Neuron, ma il loglikelihood
Il metodo nell'SDK 2.16 utilizza passaggi aggiuntivi per determinare le probabilità e può richiedere più tempo.
Risultati del cablaggio di valutazione Lm | ||
Configurazione hardware | Sistema originale | AWS Inferentia inf2.48xlarge |
Tempo con batch_size=1 per valutare mistralai/Mistral-7B-Instruct-v0.1 su gsm8k | 103 minuti | 32 minuti |
Punteggio su gsm8k (ottieni risposta – esatta_corrispondenza con std) | 0.3813 – 0.3874 (± 0.0134) | 0.3806 – 0.3844 (± 0.0134) |
Inizia con Neuron e l'imbracatura di valutazione lm
Il codice in questa sezione può aiutarti a utilizzare lm-evaluation-harness
ed eseguilo con i modelli supportati su Hugging Face. Per vedere alcuni modelli disponibili, visita AWS Inferentia e Trainium sul Volto che abbraccia.
Se hai familiarità con l'esecuzione di modelli su AWS Inferentia2, potresti notare che non esiste num_cores
impostazione passata. Il nostro codice rileva quanti core sono disponibili e passa automaticamente quel numero come parametro. Ciò ti consente di eseguire il test utilizzando lo stesso codice indipendentemente dalla dimensione dell'istanza che stai utilizzando. Potresti anche notare che stiamo facendo riferimento al modello originale, non a una versione compilata da Neuron. L'imbracatura compila automaticamente il modello secondo necessità.
I passaggi seguenti mostrano come distribuire il gradiente gradientai/v-alpha-tross
modello che abbiamo testato. Se vuoi testare un esempio più piccolo su un'istanza più piccola, puoi utilizzare il file mistralai/Mistral-7B-v0.1
modello.
- La quota predefinita per l'esecuzione di istanze Inf on-demand è 0, quindi dovresti richiedere un aumento tramite Service Quotas. Aggiungi un'altra richiesta per tutte le richieste di istanze Spot informazioni in modo da poter testare con le istanze Spot. Avrai bisogno di una quota di 192 vCPU per questo esempio utilizzando un'istanza inf2.48xlarge o una quota di 4 vCPU per un'istanza inf2.xlarge di base (se stai distribuendo il modello Mistral). Le quote sono specifiche della regione AWS, quindi assicurati di richiederle
us-east-1
orus-west-2
. - Decidi la tua istanza in base al tuo modello. Perché
v-alpha-tross
è un'architettura da 70B, abbiamo deciso di utilizzare un'istanza inf2.48xlarge. Distribuisci un inf2.xlarge (per il modello 7B Mistral). Se stai testando un modello diverso, potrebbe essere necessario modificare l'istanza in base alle dimensioni del modello. - Distribuisci l'istanza utilizzando il file Versione DLAMI del viso abbracciato 20240123, in modo che tutti i driver necessari siano installati. (Il prezzo indicato include il costo dell'istanza e non sono previsti costi aggiuntivi per il software.)
- Regola la dimensione dell'unità su 600 GB (100 GB per Mistral 7B).
- Clona e installa
lm-evaluation-harness
sull'istanza. Specifichiamo una build in modo da sapere che qualsiasi variazione è dovuta a modifiche del modello, non a modifiche di test o di codice.
- Correre
lm_eval
con il tipo di modello hf-neuron e assicurati di avere un collegamento al percorso di ritorno al modello su Hugging Face:
Se esegui l'esempio precedente con Mistral, dovresti ricevere il seguente output (sul più piccolo inf2.xlarge, potrebbero essere necessari 250 minuti per l'esecuzione):
ripulire
Al termine, assicurati di arrestare le istanze EC2 tramite la console Amazon EC2.
Conclusione
I team Gradient e Neuron sono entusiasti di vedere un'adozione più ampia della valutazione LLM con questa versione. Provalo tu stesso ed esegui il framework di valutazione più popolare sulle istanze AWS Inferentia2. Ora puoi beneficiare della disponibilità on demand di AWS Inferentia2 durante l'utilizzo sviluppo LLM personalizzato da Gradient. Inizia a ospitare modelli su AWS Inferentia con questi esercitazioni.
Informazioni sugli autori
Michael Feil è un ingegnere AI presso Gradient e in precedenza ha lavorato come ingegnere ML presso Rodhe & Schwarz e ricercatore presso Max-Plank Institute for Intelligent Systems e Bosch Rexroth. Michael è uno dei principali collaboratori di varie librerie di inferenza open source per LLM e progetti open source come StarCoder. Michael ha conseguito una laurea in meccatronica e informatica presso la KIT e un master in robotica presso l'Università Tecnica di Monaco.
Jim Burtoft è Senior Startup Solutions Architect presso AWS e lavora direttamente con startup come Gradient. Jim è un CISSP, parte della AWS AI/ML Technical Field Community, un Neuron Ambassador e collabora con la comunità open source per consentire l'uso di Inferentia e Trainium. Jim ha conseguito una laurea in matematica presso la Carnegie Mellon University e un master in economia presso l'Università della Virginia.
- 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. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/gradient-makes-llm-benchmarking-cost-effective-and-effortless-with-aws-inferentia/
- :È
- :non
- $ SU
- 1
- 10
- 100
- 16
- 250
- 32
- 600
- 7
- a
- capace
- acceleratore
- accesso
- operanti in
- presenti
- aggiungere
- aggiuntivo
- regolare
- Adozione
- Vantaggio
- che interessano
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- AI
- AI / ML
- Tutti
- permesso
- anche
- Amazon
- Amazon EC2
- Amazon Web Services
- Ambassador
- an
- ed
- Un altro
- in qualsiasi
- architettura
- architetture
- SONO
- artificiale
- intelligenza artificiale
- Intelligenza artificiale (AI)
- AS
- At
- automaticamente
- disponibilità
- disponibile
- AWS
- AWS Inferenza
- precedente
- basato
- basic
- BE
- perché
- prima
- dietro
- essendo
- Segno di riferimento
- analisi comparativa
- parametri di riferimento
- beneficio
- entrambi
- Branch di società
- Guasto
- più ampia
- costruire
- ma
- by
- è venuto
- Materiale
- Ultra-Grande
- Carnegie Mellon
- CD
- sfide
- probabilità
- Modifiche
- carica
- Procedi all'acquisto
- classe
- Chiudi
- codice
- comunità
- compilato
- Calcolare
- CONFERMATO
- costantemente
- consolle
- contesto
- collaboratore
- Costo
- risparmi
- costo effettivo
- potuto
- Corrente
- costume
- deciso
- decisione
- Predefinito
- Laurea
- Dipendente
- schierare
- distribuzione
- deployment
- dettagliati
- Determinare
- Mercato
- deviazione
- diverso
- direttamente
- scontato
- fatto
- guidare
- driver
- Cadere
- dovuto
- durante
- e
- Presto
- Economia
- senza sforzo
- senza sforzo
- enable
- abilitato
- da un capo all'altro
- ingegnere
- Impresa
- valutare
- valutazione
- esattamente
- di preciso
- esamina
- esempio
- Esempi
- eccitato
- esistente
- attenderti
- extra
- Faccia
- familiare
- più veloce
- campo
- filtro
- adatto
- Flessibilità
- i seguenti
- Nel
- Contesto
- frequente
- frequentemente
- da
- ha dato
- generare
- generativo
- ottenere
- Idiota
- Dare
- scopo
- GPU
- GUEST
- Ospite Messaggio
- cintura da arrampicata
- Avere
- Aiuto
- superiore
- detiene
- di hosting
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- identico
- if
- importante
- competenze
- in
- inclusi
- Aumento
- inizialmente
- install
- installazione
- installato
- esempio
- Istituto
- integrazione
- Intelligence
- Intelligente
- interno
- ai miglioramenti
- IT
- Jim
- Lavoro
- jpg
- ad appena
- Sapere
- Lingua
- grandi
- lanciato
- leaderboard
- classifiche
- principale
- Consente di
- biblioteche
- Biblioteca
- piace
- LIMITE
- LINK
- LLM
- Basso
- fatto
- Principale
- principalmente
- corrente principale
- make
- FA
- molti
- master
- partita
- matematica
- Maggio..
- Mellon
- Memorie
- metodo
- metrico
- Michael
- forza
- Minuti
- ML
- modello
- modelli
- momento
- Scopri di più
- maggior parte
- Più popolare
- cambiano
- multiplo
- necessaria
- Bisogno
- di applicazione
- New
- no
- Nessuna
- Avviso..
- adesso
- numero
- of
- offerta
- on
- On-Demand
- su
- aprire
- open source
- or
- organizzazioni
- i
- Altro
- nostro
- su
- produzione
- uscite
- ancora
- Superare
- parametro
- parte
- Passato
- Passi
- sentiero
- performance
- Personalizzata
- scegliere
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- Popolare
- possibile
- Post
- alimentato
- precedente
- in precedenza
- prezzo
- Prezzi
- principalmente
- un bagno
- probabilità
- processi
- Prodotto
- progetto
- progetti
- proprio
- la percezione
- Python
- abbastanza
- prontamente
- realizzato
- ricevere
- recentemente
- riferimento
- Indipendentemente
- regione
- regolarmente
- rilasciare
- sostituzione
- deposito
- richiesta
- richieste
- necessario
- ricercatore
- risposte
- limitato
- Risultati
- di ritegno
- robotica
- Correre
- running
- corre
- stesso
- Risparmio
- Nero
- Punto
- punteggi
- sdk
- Sezione
- vedere
- visto
- anziano
- servizio
- Servizi
- regolazione
- condiviso
- dovrebbero
- mostrare attraverso le sue creazioni
- mostrato
- Taglia
- inferiore
- So
- Software
- Soluzioni
- alcuni
- Fonte
- specifico
- Spot
- Standard
- iniziato
- startup
- Startup
- step
- Passi
- Fermare
- flussi
- tale
- supportato
- sicuro
- SISTEMI DI TRATTAMENTO
- tavolo
- Fai
- Task
- task
- team
- le squadre
- Consulenza
- test
- testato
- Testing
- test
- che
- I
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- questo
- tempo
- a
- Tokens
- ha preso
- torcia
- Treni
- allenato
- Training
- trasformatori
- prova
- sintonizzato
- seconda
- Digitare
- Università
- non usato
- us
- uso
- utilizzato
- usa
- utilizzando
- CONVALIDARE
- vario
- versione
- molto
- via
- Virginia
- Visita
- volere
- Prima
- Modo..
- we
- sito web
- servizi web
- sono stati
- Che
- quando
- quale
- while
- volere
- con
- entro
- senza
- Lavora
- lavorato
- lavoro
- lavori
- Tu
- Trasferimento da aeroporto a Sharm
- te stesso
- zefiro