Oggi, i modelli di intelligenza artificiale generativa coprono una varietà di attività, dal riepilogo del testo, alle domande e risposte e alla generazione di immagini e video. Per migliorare la qualità dei risultati, approcci come n-short learning, Prompt engineering, Recupero della generazione aumentata (RAG) e vengono utilizzati la messa a punto. La messa a punto ti consente di adattare questi modelli di intelligenza artificiale generativa per ottenere prestazioni migliori nelle attività specifiche del tuo dominio.
Con Amazon Sage Maker, ora puoi eseguire un lavoro di formazione SageMaker semplicemente annotando il tuo codice Python con @decoratore remoto. SDK Python di SageMaker traduce automaticamente l'ambiente di lavoro esistente e qualsiasi codice di elaborazione dati e set di dati associati in un lavoro di formazione SageMaker eseguito sulla piattaforma di formazione. Ciò ha il vantaggio di scrivere il codice in un modo più naturale e orientato agli oggetti e utilizza comunque le funzionalità di SageMaker per eseguire processi di formazione su un cluster remoto con modifiche minime.
In questo post, mostriamo come ottimizzare a Falco-7B Foundation Models (FM) utilizzando il decoratore @remote di SageMaker Python SDK. Utilizza anche La messa a punto efficiente dei parametri di Hugging Face (PEFT) libreria e tecniche di quantizzazione attraverso bitsandbytes per supportare la messa a punto. Il codice presentato in questo blog può essere utilizzato anche per mettere a punto altri FM, come Lama-2 13b.
Le rappresentazioni completamente precise di questo modello potrebbero avere difficoltà ad adattarsi alla memoria su uno o anche più Unità di elaborazione grafica (GPU) - o potrebbe anche aver bisogno di un'istanza più grande. Pertanto, per mettere a punto questo modello senza aumentare i costi, utilizziamo la tecnica nota come LLM quantizzati con adattatori di basso rango (QLoRA). QLoRA è un approccio efficiente di perfezionamento che riduce l'utilizzo della memoria degli LLM mantenendo prestazioni molto buone.
Vantaggi dell'utilizzo di @remote decorator
Prima di andare oltre, capiamo come il decoratore remoto migliora la produttività degli sviluppatori mentre lavora con SageMaker:
- @remote decorator attiva un processo di formazione direttamente utilizzando il codice Python nativo, senza l'invocazione esplicita di SageMaker Estimators e dei canali di input SageMaker
- Barriera bassa per l'ingresso per i modelli di formazione degli sviluppatori su SageMaker.
- Non è necessario cambiare Ambienti di sviluppo integrati (IDE). Continua a scrivere il codice nell'IDE che preferisci e richiama i processi di formazione di SageMaker.
- Non è necessario conoscere i contenitori. Continua a fornire le dipendenze in a
requirements.txt
e fornirlo al decoratore remoto.
Prerequisiti
È necessario un account AWS con un file Gestione dell'identità e dell'accesso di AWS (AWS-IAM) ruolo che dispone delle autorizzazioni per gestire le risorse create come parte della soluzione. Per i dettagli, fare riferimento a Creazione di un account AWS.
In questo post, usiamo Amazon Sage Maker Studio con la Data Science 3.0
immagine e a ml.t3.medium
istanza di avvio veloce. Tuttavia, puoi utilizzare qualsiasi ambiente di sviluppo integrato (IDE) di tua scelta. Devi solo configurare il tuo Interfaccia della riga di comando di AWS (AWS CLI) correttamente. Per ulteriori informazioni, fare riferimento a Configura l'AWS CLI.
Per la messa a punto, il Falcon-7B, an ml.g5.12xlarge
l'istanza è utilizzata in questo post. Assicurati che la capacità dell'account AWS sia sufficiente per questa istanza.
Devi clonare questo Repository Github per aver replicato la soluzione mostrata in questo post.
Panoramica della soluzione
- Installa i prerequisiti per mettere a punto il modello Falcon-7B
- Configura le configurazioni del decoratore remoto
- Preelaborare il set di dati contenente le domande frequenti sui servizi AWS
- Ottimizza Falcon-7B sulle domande frequenti sui servizi AWS
- Testa i modelli di ottimizzazione su domande di esempio relative ai servizi AWS
1. Installare i prerequisiti per mettere a punto il modello Falcon-7B
Avvia il notebook falcon-7b-qlora-remote-decorator_qa.ipynb in SageMaker Studio selezionando l'opzione Imago as Data Science
ed nocciolo as Python 3
. Installa tutte le librerie richieste menzionate nel file requirements.txt
. Alcune librerie devono essere installate sull'istanza del notebook stessa. Esegui altre operazioni necessarie per l'elaborazione del set di dati e l'attivazione di un processo di formazione SageMaker.
2. Configurare le configurazioni del decoratore remoto
Crea un file di configurazione in cui sono specificate tutte le configurazioni relative al processo di formazione di Amazon SageMaker. Questo file viene letto da @remote decorator durante l'esecuzione del processo di training. Questo file contiene impostazioni come dipendenze, immagine di training, istanza e ruolo di esecuzione da utilizzare per il processo di training. Per un riferimento dettagliato di tutte le impostazioni supportate dal file di configurazione, consulta Configurazione e utilizzo delle impostazioni predefinite con SageMaker Python SDK.
Non è obbligatorio utilizzare il config.yaml
file per poter lavorare con il decoratore @remote. Questo è semplicemente un modo più semplice per fornire tutte le configurazioni al decoratore @remote. Ciò mantiene i parametri relativi a SageMaker e AWS fuori dal codice con un unico sforzo per impostare il file di configurazione utilizzato da tutti i membri del team. Tutte le configurazioni potrebbero anche essere fornite direttamente negli argomenti del decoratore, ma ciò riduce la leggibilità e la manutenibilità delle modifiche a lungo termine. Inoltre, il file di configurazione può essere creato da un amministratore e condiviso con tutti gli utenti in un ambiente.
Preelaborare il set di dati contenente le domande frequenti sui servizi AWS
Il passaggio successivo consiste nel caricare e preelaborare il set di dati per renderlo pronto per il lavoro di training. Innanzitutto, diamo un'occhiata al set di dati:
Mostra le domande frequenti per uno dei servizi AWS. Oltre a QLoRA, bitsanbytes
viene utilizzato per convertire in precisione a 4 bit per quantizzare LLM congelato in 4 bit e allegarlo LORA adattatori su di esso.
Crea un modello di prompt per convertire ogni esempio di domande frequenti in un formato di prompt:
Il passaggio successivo consiste nel convertire gli input (testo) in ID token. Questo viene fatto da a Tokenizer di Transformers con il volto abbracciato.
Ora usa semplicemente il file prompt_template
funzione per convertire tutte le domande frequenti nel formato prompt e impostare il training e il test dei set di dati.
4. Ottimizzare Falcon-7B sulle domande frequenti sui servizi AWS
Ora puoi preparare lo script di allenamento e definire la funzione di allenamento train_fn
e inserisci @remote decorator nella funzione.
La funzione di formazione effettua le seguenti operazioni:
- tokenizza e suddivide in blocchi il set di dati
- impostare
BitsAndBytesConfig
, che specifica che il modello deve essere caricato a 4 bit ma mentre il calcolo deve essere convertito inbfloat16
. - Carica il modello
- Trova i moduli di destinazione e aggiorna le matrici necessarie utilizzando il metodo di utilità
find_all_linear_names
- Creare LORA configurazioni che specificano la classificazione delle matrici di aggiornamento (
s
), fattore di scala (lora_alpha
), i moduli per applicare le matrici di aggiornamento LoRA (target_modules
), probabilità di abbandono per gli strati Lora(lora_dropout
),task_type
, ecc. - Avviare la formazione e la valutazione
E invocare il train_fn()
Il processo di ottimizzazione verrà eseguito sul cluster di formazione Amazon SageMaker. Attendi il completamento del lavoro di ottimizzazione.
5. Testare i modelli di messa a punto su domande di esempio relative ai servizi AWS
Ora è il momento di eseguire alcuni test sul modello. Per prima cosa carichiamo il modello:
Ora carica una domanda di esempio dal set di dati di addestramento per vedere la risposta originale, quindi poni la stessa domanda dal modello ottimizzato per vedere la risposta a confronto.
Ecco un esempio di domanda dal set di formazione e la risposta originale:
Ora, la stessa domanda viene posta per mettere a punto il modello Falcon-7B:
Ciò conclude l'implementazione della messa a punto di Falcon-7B sul set di dati delle domande frequenti sui servizi AWS utilizzando il decoratore @remote dell'SDK Python di Amazon SageMaker.
Pulire
Completa i seguenti passaggi per ripulire le tue risorse:
- Arresta le istanze di Amazon SageMaker Studio per evitare di incorrere in costi aggiuntivi.
- Pulisci il tuo Amazon Elastic File System (AmazonEFS) directory cancellando la directory della cache di Hugging Face:
Conclusione
In questo post, ti abbiamo mostrato come utilizzare in modo efficace le funzionalità del decoratore @remote per mettere a punto il modello Falcon-7B utilizzando QLoRA, Hugging Face PEFT con bitsandbtyes
senza applicare modifiche significative nel notebook di formazione e ha utilizzato le funzionalità di Amazon SageMaker per eseguire processi di formazione su un cluster remoto.
Tutto il codice mostrato come parte di questo post per mettere a punto Falcon-7B è disponibile nel file Repository GitHub. Il repository contiene anche un taccuino che mostra come mettere a punto Llama-13B.
Come passo successivo, ti invitiamo a controllare il Funzionalità del decoratore @remote ed API dell'SDK di Python e usalo nella tua scelta di ambiente e IDE. Ulteriori esempi sono disponibili in amazon-sagemaker-esempi repository per iniziare rapidamente. Puoi anche consultare i seguenti post:
Informazioni sugli autori
Bruno Pistone è un AI/ML Specialist Solutions Architect per AWS con sede a Milano. Lavora con grandi clienti aiutandoli a comprendere a fondo le loro esigenze tecniche e a progettare soluzioni di intelligenza artificiale e machine learning che sfruttano al meglio il cloud AWS e lo stack Amazon Machine Learning. Le sue competenze includono: machine learning end-to-end, industrializzazione del machine learning e intelligenza artificiale generativa. Gli piace passare il tempo con i suoi amici ed esplorare nuovi posti, oltre a viaggiare verso nuove destinazioni.
Vikesh Pandey è un Machine Learning Specialist Solutions Architect presso AWS, che aiuta i clienti del settore finanziario a progettare e creare soluzioni basate su AI e ML generativi. Al di fuori del lavoro, a Vikesh piace provare diverse cucine e praticare sport all'aria aperta.
- 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/fine-tune-falcon-7b-and-other-llms-on-amazon-sagemaker-with-remote-decorator/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 12
- 13
- 150
- 28
- 31
- 40
- 7
- 8
- 9
- a
- WRI
- accesso
- Il mio account
- Raggiungere
- operanti in
- aggiungere
- aggiunta
- aggiuntivo
- Vantaggio
- AI
- Modelli AI
- AI / ML
- Tutti
- consentire
- consente
- anche
- Amazon
- Apprendimento automatico di Amazon
- Amazon Sage Maker
- Amazon Sage Maker Studio
- Amazon Web Services
- an
- ed
- rispondere
- risposte
- in qualsiasi
- APPLICA
- AMMISSIONE
- approccio
- approcci
- architettura
- SONO
- argomenti
- AS
- chiedere
- associato
- At
- allegare
- aumentata
- gli autori
- auto
- automaticamente
- disponibile
- evitare
- AWS
- barriera
- basato
- BE
- perché
- essendo
- MIGLIORE
- maggiore
- Blog
- bnb
- costruire
- ma
- by
- Cache
- Materiale
- funzionalità
- Ultra-Grande
- sfide
- Modifiche
- dai un'occhiata
- scegliere
- depuratore
- Radura
- Cloud
- Cluster
- codice
- confronto
- calcolo
- Configurazione
- Tecnologie Container
- contiene
- continua
- convertire
- convertito
- Costo
- Costi
- potuto
- coprire
- creato
- Credenziali
- costume
- Clienti
- dati
- elaborazione dati
- dataset
- defaults
- definire
- dimostrato
- dipendenze
- Design
- Destinazioni
- dettagliati
- dettagli
- Costruttori
- sviluppatori
- Mercato
- dispositivo
- diverso
- direttamente
- effettua
- fatto
- giù
- ogni
- in maniera efficace
- efficiente
- sforzo
- altro
- incoraggiare
- fine
- Ingegneria
- garantire
- iscrizione
- Ambiente
- ambienti
- eccetera
- Anche
- Esempi
- esecuzione
- esistente
- competenza
- Esplorare
- Faccia
- fattore
- falso
- FAQ
- FAST
- Caratteristiche
- pochi
- Compila il
- finanziario
- industrie finanziarie
- sottile
- finire
- Nome
- in forma
- i seguenti
- Nel
- formato
- essere trovato
- Fondazione
- amici
- da
- congelati
- pieno
- function
- ulteriormente
- ELETTRICA
- generativo
- AI generativa
- ottenere
- andando
- buono
- GPU
- Avere
- he
- aiutare
- quindi
- il suo
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- Identità
- ids
- if
- Immagine
- implementazione
- importare
- competenze
- migliorata
- migliora
- in
- includere
- crescente
- industrie
- informazioni
- ingresso
- Ingressi
- install
- installato
- esempio
- integrato
- ai miglioramenti
- IT
- stessa
- Lavoro
- Offerte di lavoro
- jpg
- ad appena
- conosciuto
- grandi
- lanciare
- IMPARARE
- apprendimento
- lasciare
- biblioteche
- Biblioteca
- piace
- linea
- LLM
- caricare
- Lunghi
- Guarda
- macchina
- machine learning
- Mantenere
- make
- gestire
- obbligatorio
- Maggio..
- Utenti
- Memorie
- menzionato
- forza
- MILANO
- minimo
- ML
- modello
- modelli
- Moduli
- moduli
- Scopri di più
- Nome
- nomi
- nativo
- Naturale
- necessaria
- Bisogno
- di applicazione
- esigenze
- New
- GENERAZIONE
- no
- Nessuna
- taccuino
- adesso
- numero
- of
- on
- ONE
- Operazioni
- or
- minimo
- i
- Altro
- su
- produzione
- al di fuori
- parametri
- parte
- Eseguire
- performance
- permessi
- Partner
- piattaforma
- Platone
- Platone Data Intelligence
- PlatoneDati
- gioco
- per favore
- Post
- Post
- Precisione
- Preparare
- prerequisiti
- presentata
- Stampa
- lavorazione
- della produttività
- purché
- fornitura
- metti
- Python
- Domande e risposte
- qualità
- domanda
- Domande
- rapidamente
- casuale
- Posizione
- Leggi
- pronto
- riduce
- riferimento
- relazionato
- a distanza
- deposito
- necessario
- Requisiti
- richiede
- Risorse
- ritorno
- Ruolo
- Correre
- running
- corre
- sagemaker
- stesso
- scala
- Scienze
- copione
- sdk
- vedere
- Selezione
- Servizi
- set
- regolazione
- impostazioni
- flessibile.
- alcuni
- condiviso
- dovrebbero
- vetrina
- ha mostrato
- mostrato
- Spettacoli
- significativa
- semplicemente
- singolo
- soluzione
- Soluzioni
- alcuni
- specialista
- specificato
- Spendere
- Sports
- pila
- inizia a
- iniziato
- step
- Passi
- Ancora
- studio
- tale
- sufficiente
- in dotazione
- fornire
- supporto
- supportato
- Interruttore
- sistema
- Target
- task
- team
- Membri del team
- Consulenza
- tecniche
- modello
- test
- test
- testo
- che
- Il
- loro
- Li
- poi
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- Attraverso
- tempo
- a
- token
- tokenize
- torcia
- Totale
- Treni
- Training
- trasformatori
- innescando
- cerca
- capire
- unità
- Aggiornanento
- us
- Impiego
- uso
- utilizzato
- utenti
- usa
- utilizzando
- utilità
- varietà
- molto
- Video
- aspettare
- Modo..
- we
- sito web
- servizi web
- WELL
- quale
- while
- wikipedia
- con
- senza
- Lavora
- lavoro
- lavori
- sarebbe
- scrittura
- ancora
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro