Oggi siamo lieti di annunciare che il modello di base Falcon 180B sviluppato dal Technology Innovation Institute (TII) e addestrato su Amazon SageMaker è disponibile per i clienti tramite Amazon SageMaker JumpStart per la distribuzione con un clic per l'esecuzione dell'inferenza. Con una dimensione di 180 miliardi di parametri e addestrato su un enorme set di dati di 3,5 trilioni di token, Falcon 180B è il modello più grande e uno dei più performanti con pesi liberamente accessibili. Puoi provare questo modello con SageMaker JumpStart, un hub di machine learning (ML) che fornisce accesso ad algoritmi, modelli e soluzioni ML in modo da poter iniziare rapidamente con il ML. In questo post spiegheremo come scoprire e distribuire il modello Falcon 180B tramite SageMaker JumpStart.
Cos'è il Falcon 180B
Falcon 180B è un modello rilasciato da TII che segue le versioni precedenti della famiglia Falcon. È una versione ingrandita di Falcon 40B e utilizza l'attenzione multi-query per una migliore scalabilità. È un modello linguistico autoregressivo che utilizza un'architettura di trasformatore ottimizzata. È stato addestrato su 3,5 trilioni di token di dati, costituiti principalmente da dati web provenienti da Web raffinato (circa 85%). Il modello ha due versioni: 180B e 180B-Chat. 180B è un modello grezzo e preaddestrato, che dovrebbe essere ulteriormente perfezionato per la maggior parte dei casi d'uso. 180B-Chat è più adatto a ricevere istruzioni generiche. Il modello Chat è stato perfezionato sui set di dati di chat e istruzioni insieme a diversi set di dati conversazionali su larga scala.
Il modello è reso disponibile con il Licenza TII Falcon-180B E Politica di utilizzo accettabile.
Falcon 180B è stato addestrato da TII su Amazon SageMaker, su un cluster di circa GPU A100 4K. Ha utilizzato una base di codice di addestramento distribuito personalizzata denominata Gigatron, che utilizza il parallelismo 3D con ZeRO e kernel Triton personalizzati e ad alte prestazioni. L'architettura di formazione distribuita utilizzava Amazon Simple Storage Service (Amazon S3) come unico servizio unificato per il caricamento dei dati e la scrittura e lettura dei checkpoint, il che ha contribuito in particolare all'affidabilità del carico di lavoro e alla semplicità operativa.
Che cos'è SageMaker JumpStart
Con SageMaker JumpStart, i professionisti del machine learning possono scegliere da un elenco crescente di modelli di base con le migliori prestazioni. I professionisti del machine learning possono distribuire modelli di base su istanze SageMaker dedicate all'interno di un ambiente isolato di rete e personalizzare i modelli utilizzando Amazon SageMaker per l'addestramento e la distribuzione dei modelli.
Ora puoi scoprire e distribuire Falcon 180B con pochi clic in Amazon SageMaker Studio o a livello di programmazione tramite SageMaker Python SDK, consentendoti di derivare prestazioni del modello e controlli MLOps con funzionalità SageMaker come Amazon SageMaker Pipelines, Amazon SageMaker Debugger o log di container. Il modello viene distribuito in un ambiente sicuro AWS e sotto i controlli VPC, contribuendo a garantire la sicurezza dei dati. Falcon 180B è rilevabile e può essere distribuito nelle regioni in cui sono disponibili le istanze richieste. Al momento, le istanze ml.p4de sono disponibili negli Stati Uniti orientali (Virginia settentrionale) e negli Stati Uniti occidentali (Oregon).
Scopri i modelli
Puoi accedere ai modelli di base tramite SageMaker JumpStart nell'interfaccia utente di SageMaker Studio e SageMaker Python SDK. In questa sezione, esamineremo come scoprire i modelli in SageMaker Studio.
SageMaker Studio è un ambiente di sviluppo integrato (IDE) che fornisce un'unica interfaccia visiva basata sul Web in cui è possibile accedere a strumenti specifici per eseguire tutte le fasi di sviluppo ML, dalla preparazione dei dati alla creazione, formazione e distribuzione dei modelli ML. Per ulteriori dettagli su come iniziare e configurare SageMaker Studio, fare riferimento ad Amazon SageMaker Studio.
In SageMaker Studio è possibile accedere a SageMaker JumpStart, che contiene modelli pre-addestrati, notebook e soluzioni predefinite, in Soluzioni predefinite e automatizzate.
Dalla pagina di destinazione JumpStart di SageMaker è possibile cercare soluzioni, modelli, notebook e altre risorse. Puoi trovare Falcon 180B nel Modelli di fondazione: generazione di testo giostra.
Puoi trovare anche altre varianti del modello scegliendo Esplora tutti i modelli di generazione di testo o cercando Falco
.
Puoi scegliere la scheda del modello per visualizzare i dettagli sul modello come licenza, dati utilizzati per l'addestramento e modalità di utilizzo. Troverai anche due pulsanti, Distribuire E Apri il taccuino, che ti aiuterà a utilizzare il modello (lo screenshot seguente mostra il file Distribuire opzione).
Distribuire i modelli
Quando scegli Distribuire, verrà avviata la distribuzione del modello. In alternativa, è possibile eseguire la distribuzione tramite il notebook di esempio visualizzato scegliendo Apri il taccuino. Il notebook di esempio fornisce indicazioni end-to-end su come distribuire il modello per l'inferenza e pulire le risorse.
Per eseguire la distribuzione utilizzando un notebook, iniziamo selezionando un modello appropriato, specificato dal modello_id
. Puoi distribuire uno qualsiasi dei modelli selezionati su SageMaker con il seguente codice:
Questo distribuisce il modello su SageMaker con configurazioni predefinite, inclusi il tipo di istanza predefinito e le configurazioni VPC predefinite. È possibile modificare queste configurazioni specificando valori non predefiniti in Modello JumpStart
. Per saperne di più fare riferimento al Documentazione dell'API. Dopo la distribuzione, puoi eseguire l'inferenza sull'endpoint distribuito tramite un predittore SageMaker. Vedere il seguente codice:
I parametri di inferenza controllano il processo di generazione del testo all'endpoint. Il controllo massimo di nuovi token si riferisce alla dimensione dell'output generato dal modello. Tieni presente che questo non è lo stesso numero di parole perché il vocabolario del modello non è lo stesso del vocabolario della lingua inglese e ciascun token potrebbe non essere una parola della lingua inglese. La temperatura controlla la casualità nell'output. Una temperatura più elevata si traduce in risultati più creativi e allucinati. Tutti i parametri di inferenza sono facoltativi.
Questo modello con parametri da 180B è di 335 GB e richiede ancora più memoria GPU per eseguire un'inferenza sufficiente con una precisione a 16 bit. Attualmente, JumpStart supporta questo modello solo su istanze ml.p4de.24xlarge. È possibile distribuire un modello quantizzato a 8 bit su un'istanza ml.p4d.24xlarge fornendo il env={"HF_MODEL_QUANTIZE": "bitsandbytes"}
argomento della parola chiave per il Modello JumpStart
costruttore e specificazione tipo_istanza="ml.p4d.24xlarge"
al metodo di distribuzione. Tuttavia, tieni presente che la latenza per token è circa 5 volte più lenta per questa configurazione quantizzata.
La tabella seguente elenca tutti i modelli Falcon disponibili in SageMaker JumpStart insieme agli ID modello, ai tipi di istanza predefiniti, al numero massimo di token totali (somma del numero di token di input e numero di token generati) supportati e alla tipica latenza di risposta per token per ciascuno di questi modelli.
Nome del modello | ID modello | Tipo di istanza predefinito | Gettoni totali massimi | Latenza per token* |
Falco7B | abbracciandoface-llm- falco-7b-bf16 |
ml.g5.2xgrande | 2048 | 34 ms |
Falcon 7B Istruttore | abbracciandoface-llm- falcon-7b-istruire-bf16 |
ml.g5.2xgrande | 2048 | 34 ms |
Falco 40B | abbracciandoface-llm- falco-40b-bf16 |
ml.g5,12xgrande | 2048 | 57 ms |
Falcon 40B Istruttore | abbracciandoface-llm- falcon-40b-istruire-bf16 |
ml.g5,12xgrande | 2048 | 57 ms |
Falco 180B | abbracciandoface-llm- falco-180b-bf16 |
ml.p4de.24xlarge | 2048 | 45 ms |
Chatta sul Falcon 180B | abbracciandoface-llm- falco-180b-chat-bf16 |
ml.p4de.24xlarge | 2048 | 45 ms |
*la latenza per token è fornita per il tempo di risposta mediano dei prompt di esempio forniti in questo blog; questo valore varierà in base alla lunghezza delle sequenze di input e output.
Inferenza e suggerimenti di esempio per Falcon 180B
I modelli Falcon possono essere utilizzati per il completamento del testo per qualsiasi parte di testo. Attraverso la generazione del testo, puoi eseguire una serie di attività, come rispondere a domande, tradurre la lingua, analizzare il sentiment e molto altro. L'endpoint accetta il seguente schema di payload di input:
Puoi esplorare la definizione di questi parametri del cliente e i loro valori predefiniti all'interno del repository di inferenza di generazione di testo.
Di seguito sono riportati alcuni esempi di prompt e il testo generato dal modello. Tutti gli output qui sono generati con parametri di inferenza {"max_new_tokens": 768, "stop": ["<|endoftext|>", "###"]}
.
La creazione di un sito web può essere eseguita in 10 semplici passaggi:
Potresti notare che questo modello preaddestrato genera lunghe sequenze di testo che non sono necessariamente ideali per i casi d'uso dei dialoghi. Prima di mostrare come funziona il modello di chat ottimizzato per un insieme più ampio di istruzioni basate su dialoghi, i prossimi due esempi illustrano come utilizzare i modelli Falcon con l'apprendimento contestuale a poche riprese, in cui forniamo esempi di formazione disponibili per il modello. Tieni presente che il "few-shot learning" non modifica i pesi del modello: durante questo processo eseguiamo solo inferenze sul modello distribuito, fornendo al contempo alcuni esempi nel contesto di input per aiutare l'output del modello di gilda.
Inferenza e suggerimenti di esempio per Falcon 180B-Chat
Con i modelli Falcon 180B-Chat, ottimizzati per i casi d'uso del dialogo, l'input agli endpoint del modello di chat può contenere la cronologia precedente tra l'assistente chat e l'utente. Puoi porre domande contestuali alla conversazione avvenuta finora. Puoi anche fornire la configurazione del sistema, come i personaggi, che definiscono il comportamento dell'assistente chat. Il carico utile in ingresso all'endpoint è lo stesso del modello Falcon 180B tranne il input
il valore stringa deve utilizzare il seguente formato:
Di seguito sono riportati alcuni esempi di prompt e il testo generato dal modello. Tutti gli output sono generati con parametri di inferenza {"max_new_tokens":256, "stop": ["\nUtente:", "<|endoftext|>", " Utente:", "###"]}.
Nell'esempio seguente, l'utente ha avuto una conversazione con l'assistente sui siti turistici di Parigi. Successivamente, l'utente chiede quale sia la prima opzione consigliata dall'assistente chat.
Ripulire
Dopo aver terminato l'esecuzione del notebook, assicurati di eliminare tutte le risorse create nel processo in modo che la fatturazione venga interrotta. Utilizza il seguente codice:
Conclusione
In questo post ti abbiamo mostrato come iniziare con Falcon 180B in SageMaker Studio e distribuire il modello per l'inferenza. Poiché i modelli di base sono pre-addestrati, possono contribuire a ridurre i costi di formazione e infrastruttura e consentire la personalizzazione per il tuo caso d'uso. Visita subito SageMaker JumpStart in SageMaker Studio per iniziare.
Risorse
Riguardo agli Autori
Dottor Kyle Ulrich è uno scienziato applicato del team JumpStart di Amazon SageMaker. I suoi interessi di ricerca includono algoritmi scalabili di apprendimento automatico, visione artificiale, serie temporali, parametri bayesiani non parametrici e processi gaussiani. Ha conseguito il dottorato di ricerca presso la Duke University e ha pubblicato articoli su NeurIPS, Cell e Neuron.
Dottor Ashish Khetan è uno scienziato applicato senior presso Amazon SageMaker JumpStart e aiuta a sviluppare algoritmi di apprendimento automatico. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois Urbana-Champaign. È un ricercatore attivo nel campo dell'apprendimento automatico e dell'inferenza statistica e ha pubblicato numerosi articoli nelle conferenze NeurIPS, ICML, ICLR, JMLR, ACL e EMNLP.
Olivier CruchanÈ Principal Machine Learning Specialist Solutions Architect presso AWS, con sede in Francia. Olivier aiuta i clienti AWS, dalle piccole startup alle grandi imprese, a sviluppare e distribuire applicazioni di machine learning di livello produttivo. Nel tempo libero gli piace leggere articoli di ricerca ed esplorare la natura selvaggia con amici e familiari.
Karl Albertsen guida l'hub del modello di base, gli algoritmi e i team di partnership di Amazon SageMaker.
lascia un commento