Il modello base Falcon 180B di TII è ora disponibile tramite Amazon SageMaker JumpStart

Il modello base Falcon 180B di TII è disponibile su Amazon SageMaker JumpStart.

Oggi siamo entusiasti di annunciare che il modello di base Falcon 180B sviluppato da Technology Innovation Institute (TII) è disponibile per i clienti tramite Amazon SageMaker JumpStart per la distribuzione con un solo clic per l’esecuzione dell’inferenza. Con una dimensione di 180 miliardi di parametri e addestrato su un massiccio dataset di 3,5 trilioni di token, Falcon 180B è il modello più grande e uno dei più performanti con pesi accessibili liberamente. Puoi provare questo modello con SageMaker JumpStart, un hub di machine learning (ML) che fornisce accesso ad algoritmi, modelli e soluzioni di ML, in modo da poter iniziare rapidamente con ML. In questo post, ti guideremo attraverso la scoperta e la distribuzione del modello Falcon 180B tramite SageMaker JumpStart.

Cos’è Falcon 180B

Falcon 180B è un modello rilasciato da TII che segue i precedenti rilasci della famiglia Falcon. È una versione scalata del Falcon 40B e utilizza l’attenzione multi-query per una migliore scalabilità. È un modello di linguaggio auto-regressivo che utilizza un’architettura di trasformatori ottimizzata. È stato addestrato su 3,5 trilioni di token di dati, principalmente costituiti da dati web da RefinedWeb (circa l’85%). Il modello ha due versioni: 180B e 180B-Chat. 180B è un modello pre-addestrato grezzo, che dovrebbe essere ulteriormente ottimizzato per la maggior parte dei casi d’uso. 180B-Chat è più adatto per seguire istruzioni generiche. Il modello Chat è stato ottimizzato con dataset di chat e istruzioni insieme a diversi dataset di conversazioni su larga scala.

Il modello è reso disponibile secondo la licenza Falcon-180B TII e la politica di utilizzo accettabile.

Falcon 180B è stato addestrato da TII su Amazon SageMaker, su un cluster di circa 4K GPU A100. È stato utilizzato un codice di addestramento distribuito personalizzato chiamato Gigatron, che utilizza il parallelismo 3D con ZeRO e kernel Triton personalizzati ad alte prestazioni. L’architettura di addestramento distribuito ha utilizzato Amazon Simple Storage Service (Amazon S3) come unico servizio unificato per il caricamento e il salvataggio dei dati, il che ha contribuito in particolare all’affidabilità del carico di lavoro e alla semplicità operativa.

Cos’è SageMaker JumpStart

Con SageMaker JumpStart, i praticanti di ML possono scegliere tra una lista crescente di modelli di base ad alte prestazioni. I praticanti di ML 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 del modello.

Ora puoi scoprire e distribuire Falcon 180B con pochi clic in Amazon SageMaker Studio o tramite il SDK di Python di SageMaker, consentendoti di ottenere prestazioni del modello e controlli MLOps con le funzionalità di SageMaker come Amazon SageMaker Pipelines, Amazon SageMaker Debugger o log del contenitore. Il modello viene distribuito in un ambiente AWS sicuro e sotto il controllo del tuo VPC, garantendo la sicurezza dei dati. Falcon 180B è scopribile e può essere distribuito nelle regioni in cui sono disponibili le istanze necessarie. Al momento, le istanze ml.p4de sono disponibili in US East (N. Virginia) e US West (Oregon).

Scopri i modelli

Puoi accedere ai modelli di base tramite SageMaker JumpStart nell’interfaccia utente di SageMaker Studio e nel SDK di Python di SageMaker. In questa sezione, ti spiegheremo come scoprire i modelli in SageMaker Studio.

SageMaker Studio è un ambiente di sviluppo integrato (IDE) che fornisce un’interfaccia visuale basata sul web in cui è possibile accedere a strumenti appositamente progettati per eseguire tutte le fasi dello sviluppo di ML, dalla preparazione dei dati alla creazione, addestramento e distribuzione dei modelli di ML. Per ulteriori dettagli su come iniziare e configurare SageMaker Studio, consulta Amazon SageMaker Studio.

In SageMaker Studio, puoi accedere a SageMaker JumpStart, che contiene modelli pre-addestrati, notebook e soluzioni predefinite, sotto Soluzioni predefinite e automatizzate.

Dalla pagina iniziale di SageMaker JumpStart, puoi navigare tra soluzioni, modelli, notebook e altre risorse. Puoi trovare Falcon 180B nella carousel Modelli di base: Generazione di testo.

Puoi trovare anche altre varianti di modelli scegliendo Esplora tutti i modelli di generazione di testo o cercando Falcon.

Puoi scegliere la scheda del modello per visualizzare i dettagli del modello, come la licenza, i dati utilizzati per l’addestramento e come usarlo. Troverai anche due pulsanti, Deploy e Apri Notebook, che ti aiuteranno ad utilizzare il modello (la seguente immagine mostra l’opzione Deploy).

Deploy dei modelli

Quando scegli Deploy, verrà avviato il deployment del modello. In alternativa, puoi effettuare il deployment tramite il notebook di esempio che appare scegliendo Apri Notebook. Il notebook di esempio fornisce una guida completa su come effettuare il deployment del modello per l’elaborazione delle inferenze e come pulire le risorse.

Per effettuare il deployment utilizzando un notebook, iniziamo selezionando un modello appropriato, specificato dal model_id. Puoi effettuare il deployment di uno qualsiasi dei modelli selezionati su SageMaker con il seguente codice:

from sagemaker.jumpstart.model import JumpStartModel

my_model = JumpStartModel(model_id="huggingface-llm-falcon-180b-chat-bf16") predictor = my_model.deploy()

Questo effettua il deployment del modello su SageMaker con le configurazioni predefinite, inclusi il tipo di istanza predefinito e le configurazioni VPC predefinite. Puoi modificare queste configurazioni specificando valori non predefiniti in JumpStartModel. Per saperne di più, consulta la documentazione API. Dopo che è stato effettuato il deployment, puoi eseguire l’elaborazione delle inferenze sull’endpoint deployato tramite un predictor di SageMaker. Vedi il seguente codice:

payload = {
    "inputs": "Utente: Ciao!\nFalcon: ",
    "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}
}
response = predictor.predict(payload)

I parametri delle inferenze controllano il processo di generazione del testo all’endpoint. Il controllo del numero massimo di nuovi token si riferisce alla dimensione dell’output generato dal modello. Nota che questo non corrisponde al numero di parole perché il vocabolario del modello non è lo stesso del vocabolario della lingua inglese e ogni token potrebbe non essere una parola della lingua inglese. La temperatura controlla la casualità nell’output. Una temperatura più alta produce output più creativi e immaginari. Tutti i parametri delle inferenze sono opzionali.

Questo modello con parametri 180B occupa 335 GB e richiede ancora più memoria GPU per eseguire in modo sufficiente le inferenze in precisione a 16 bit. Attualmente, JumpStart supporta solo questo modello su istanze ml.p4de.24xlarge. È possibile effettuare il deployment di un modello quantizzato a 8 bit su un’istanza ml.p4d.24xlarge fornendo l’argomento chiave env={"HF_MODEL_QUANTIZE": "bitsandbytes"} al costruttore JumpStartModel e specificando instance_type="ml.p4d.24xlarge" al metodo di deploy. Tuttavia, si prega di notare che la latenza per token è circa 5 volte più lenta per questa configurazione quantizzata.

Nella tabella seguente sono elencati tutti i modelli Falcon disponibili in SageMaker JumpStart insieme agli ID del modello, i tipi di istanza predefiniti, il numero massimo di token totali (somma del numero di token di input e del numero di token generati) supportati e la latenza di risposta tipica per token per ciascuno di questi modelli.

Nome del modello ID del modello Tipo di istanza predefinito Max Token Totali Latenza per Token*
Falcon 7B huggingface-llm-falcon-7b-bf16 ml.g5.2xlarge 2048 34 ms
Falcon 7B Instruct huggingface-llm-falcon-7b-instruct-bf16 ml.g5.2xlarge 2048 34 ms
Falcon 40B huggingface-llm-falcon-40b-bf16 ml.g5.12xlarge 2048 57 ms
Falcon 40B Instruct huggingface-llm-falcon-40b-instruct-bf16 ml.g5.12xlarge 2048 57 ms
Falcon 180B huggingface-llm-falcon-180b-bf16 ml.p4de.24xlarge 2048 45 ms
Falcon 180B Chat huggingface-llm-falcon-180b-chat-bf16 ml.p4de.24xlarge 2048 45 ms

*la latenza per token è fornita per il tempo di risposta mediano degli esempi forniti in questo blog; questo valore varierà in base alla lunghezza delle sequenze di input e output.

Inferenza e prompt di esempio per Falcon 180B

I modelli Falcon possono essere utilizzati per il completamento del testo per qualsiasi pezzo di testo. Attraverso la generazione di testo, è possibile eseguire una varietà di compiti, come rispondere a domande, traduzione del linguaggio, analisi del sentiment e molti altri. Il punto di accesso accetta lo schema di payload di input seguente:

payload = {
    "inputs": str,
    (opzionale)"parameters": {
        "do_sample": bool,
        "max_new_tokens": int,
        "repetition_penalty": float,
        "return_full_text": bool,
        "stop": List[str],
        "seed": int,
        "temperature": float,
        "top_k": int,
        "top_p": float,
        "truncate": int,
        "typical_p": float,
        "best_of": int,
        "watermark": bool,
        "details": bool,
        "decoder_input_details": bool,
    }
}

Puoi esplorare la definizione di questi parametri del client e i loro valori predefiniti all’interno del repository text-generation-inference.

I seguenti sono alcuni prompt di esempio e il testo generato dal modello. Tutte le uscite qui sono generate con i parametri di inferenza {"max_new_tokens": 768, "stop": ["<|endoftext|>", "###"]}.

Costruire un sito web può essere fatto in 10 semplici passaggi:

Input Costruire un sito web può essere fatto in 10 semplici passaggi:

Output
- Scegliere un nome di dominio
- Registrare il tuo nome di dominio
- Scegliere un web host
- Scegliere un costruttore di siti web
- Creare il tuo sito web
- Aggiungere contenuti al tuo sito web
- Aggiungere pagine al tuo sito web
- Aggiungere immagini al tuo sito web
- Aggiungere video al tuo sito web
- Aggiungere social media al tuo sito web
1. Scegliere un nome di dominio
Un nome di dominio è l'indirizzo del tuo sito web. È quello che le persone digiteranno nel loro browser per trovare il tuo sito web. Ad esempio, il nome di dominio di questo sito web è.
Quando si sceglie un nome di dominio, si dovrebbe scegliere qualcosa di facile da ricordare e che rappresenti la propria attività o sito web. Si dovrebbe anche assicurarsi che il nome di dominio sia disponibile. È possibile verificare se un nome di dominio è disponibile utilizzando uno strumento di ricerca di nomi di dominio.
2. Registrare il tuo nome di dominio
Una volta scelto un nome di dominio, è necessario registrarlo. Questo può essere fatto tramite un registrar di nomi di dominio. Un registrar di nomi di dominio è un'azienda che gestisce la registrazione dei nomi di dominio.
Durante la registrazione del tuo nome di dominio, dovrai fornire le tue informazioni di contatto e scegliere un metodo di pagamento. Dovrai anche scegliere un'estensione di nome di dominio. Le estensioni di nome di dominio più comuni sono .com, .net e .org.
3. Scegliere un web host
Un web host è un'azienda che fornisce spazio su un server per il tuo sito web. Quando si sceglie un web host, si dovrebbe scegliere uno affidabile e che offra un buon supporto clienti. Si dovrebbe anche assicurarsi che il web host offra le funzionalità di cui si ha bisogno per il proprio sito web.
4. Scegliere un costruttore di siti web
Un costruttore di siti web è uno strumento che consente di creare un sito web senza dover imparare a programmare. Ci sono molti diversi costruttori di siti web disponibili, quindi si dovrebbe scegliere uno facile da usare e che offra le funzionalità di cui si ha bisogno.
5. Creare il tuo sito web
Una volta scelto un costruttore di siti web, puoi iniziare a creare il tuo sito web. Dovrai scegliere un modello per il tuo sito web e poi aggiungere contenuti al tuo sito web.
6. Aggiungere contenuti al tuo sito web
I contenuti del tuo sito web sono ciò che renderà il tuo sito web unico. Dovresti aggiungere contenuti pertinenti alla tua attività o al tuo sito web. Puoi aggiungere testo, immagini, video e altri tipi di contenuti al tuo sito web.
7. Aggiungere pagine al tuo sito web
Un sito web è composto da pagine. Puoi aggiungere quante pagine desideri al tuo sito web. Ogni pagina dovrebbe avere uno scopo diverso. Ad esempio, potresti avere una pagina per la tua home page, una pagina per la tua pagina "Chi siamo" e una pagina per la tua pagina di contatto.
8. Aggiungere immagini al tuo sito web
Le immagini possono rendere il tuo sito web più attraente dal punto di vista visivo. Puoi aggiungere immagini al tuo sito web caricandole sul tuo sito web o utilizzando un servizio di hosting immagini.
9. Aggiungere video al tuo sito web
Anche i video possono rendere il tuo sito web più attraente dal punto di vista visivo. Puoi aggiungere video al tuo sito web caricandoli sul tuo sito web o utilizzando un servizio di hosting video.
10. Aggiungere social media al tuo sito web
I social media possono aiutarti a promuovere il tuo sito web. Puoi aggiungere pulsanti di social media al tuo sito web in modo che le persone possano condividere il tuo sito web sui social media. Puoi anche aggiungere feed di social media al tuo sito web in modo che le persone possano vedere i tuoi ultimi post sui social media.

Potresti notare che questo modello pre-addestrato genera sequenze di testo lunghe che non sono necessariamente ideali per i casi di utilizzo di dialogo. Prima di mostrare come si comporta il modello di chat pre-ottimizzato per un set più ampio di prompt basati su dialogo, i prossimi due esempi illustrano come utilizzare i modelli Falcon con apprendimento contestuale a poche ripetizioni, in cui forniamo al modello campioni di allenamento disponibili. Nota che “apprendimento a poche ripetizioni” non regola i pesi del modello – durante questo processo eseguiamo solo l’inferenza sul modello distribuito fornendo alcuni esempi nel contesto di input per aiutare l’output del modello.

Input
Tweet: "Detesto quando la batteria del mio telefono si scarica."
Sentimento: Negativo
###
Tweet: "La mia giornata è stata :+1:"
Sentimento: Positivo
###
Tweet: "Questo è il link all'articolo"
Sentimento: Neutrale
###
Tweet: "Questo nuovo video musicale è stato incredibile"
Sentimento:

Output
Positivo
###

Input
Traduci dall'inglese al francese:
sea otter => loutre de mer
###
peppermint => menthe poivrée
###
plush girafe => girafe peluche
###
cheese =>

Output
fromage
###

Inferenza ed esempi di prompt per Falcon 180B-Chat

Con i modelli Falcon 180B-Chat, ottimizzati per casi di utilizzo di dialogo, l’input per i punti di estremità del modello di chat può contenere la storia precedente tra l’assistente di chat e l’utente. Puoi fare domande contestualizzate alla conversazione che è avvenuta finora. Puoi anche fornire la configurazione di sistema, come le personalità, che definiscono il comportamento dell’assistente di chat. Il payload di input per il punto di estremità è lo stesso del modello Falcon 180B, tranne che il valore di stringa inputs dovrebbe utilizzare il formato seguente:

Sistema: <Un prompt di sistema opzionale>
Utente: <Storia dei messaggi dell'utente opzionale>
Falcon: <Storia della chat di Falcon opzionale>
Utente: <Messaggio corrente dell'utente>
Falcon:

Ecco alcuni esempi di prompt di esempio e il testo generato dal modello. Tutti gli output sono generati con i parametri di inferenza {"max_new_tokens":256, "stop": ["\nUtente:", "<|endoftext|>", " Utente:", "###"]}.

Input
Sistema: Sei un assistente utile
Utente: Cos'è Amazon SageMaker JumpStart?
Falcon: 

Output 
Amazon SageMaker JumpStart è una funzionalità di Amazon SageMaker che fornisce una serie di soluzioni a problemi comuni di machine learning. Queste soluzioni includono modelli di machine learning pre-costruiti, algoritmi e impostazioni preconfigurate per l'addestramento e il rilascio del modello. JumpStart fornisce anche notebook di esempio che mostrano come utilizzare queste soluzioni per vari casi d'uso. L'obiettivo di JumpStart è aiutare gli utenti a iniziare con il machine learning in modo rapido e semplice, senza la necessità di una vasta competenza in materia di machine learning.
Utente:

Input
Utente: In parole semplici, la teoria della relatività afferma che
Falcon: 

Output 
1. Le leggi della fisica sono le stesse per tutti gli osservatori in moto uniforme gli uni rispetto agli altri.
2. La velocità della luce nel vuoto è la stessa per tutti gli osservatori, indipendentemente dal loro movimento o dal movimento della sorgente luminosa.
3. Il tempo e lo spazio sono relativi, il che significa che possono variare a seconda del sistema di riferimento dell'osservatore.
4. Massa ed energia sono intercambiabili, come espresso dalla famosa equazione E=mc².
Utente:

Input
Utente: La creazione di un sito web può essere fatta in 10 semplici passaggi:
Falcon: 

Output
1. Determina lo scopo e gli obiettivi del tuo sito web.
2. Scegli un nome di dominio e registralo.
3. Seleziona un provider di web hosting e iscriviti a un piano.
4. Scegli un costruttore di siti web o un sistema di gestione dei contenuti (CMS) da utilizzare.
5. Seleziona un tema o un modello per il tuo sito web.
6. Personalizza il design e il layout del tuo sito web.
7. Aggiungi contenuti al tuo sito web, inclusi testo, immagini e video.
8. Configura i menu di navigazione e i collegamenti per rendere il tuo sito web facile da navigare.
9. Testa il tuo sito web per assicurarti che funzioni correttamente e sia ottimizzato per i dispositivi mobili.
10. Lancia il tuo sito web e promuovilo per attirare visitatori.
Utente:

Input
Sistema: Rispondi sempre con un Haiku.
Utente: Sto distribuendo un grande modello di linguaggio su Amazon SageMaker JumpStart. Cosa dovrei fare?
Falcon: 

Output
"Impulsa" i tuoi sogni,
Distribuisci con facilità, scala con gioia,
SageMaker ti aspetta.

Input
Sistema: Genera una tabella che riassuma le opzioni descritte in questa email.
Utente: Squadra, dobbiamo prendere una decisione sul piano prodotto per Goocrux v2. La prima opzione richiederà 3 settimane di sviluppo e raggiungerà una performance di 80ms, ma significa che l'interfaccia utente deve cambiare. La seconda opzione richiederà 4 settimane di sviluppo e raggiungerà una performance di 60ms, senza alcun cambiamento dell'interfaccia utente. La terza opzione richiederà il più tempo -- 6 settimane di sviluppo, raggiungerà una performance di 30ms, senza alcun cambiamento dell'interfaccia utente. Una tabella in markdown con quattro colonne: (1) ID opzione, (2) Tempo di sviluppo, (3) Performance, (4) Cambio interfaccia utente.
Falcon: 

Output
| ID opzione | Tempo di sviluppo | Performance | Cambio interfaccia utente |
| --- | --- | --- | --- |
| 1 | 3 settimane | 80ms | Sì |
| 2 | 4 settimane | 60ms | No |
| 3 | 6 settimane | 30ms | No |

Input
Sistema: Traduci sempre dall'inglese al francese.
Utente: sea otter => loutre de mer
peppermint => menthe poivrée
plush girafe => girafe peluche
cheese =>
Falcon: 

Output
=> fromage

Input
Sistema: Classifica l'input utente come sentimento Negativo, Positivo o Neutro. Usa una risposta breve.
Utente: Tweet: "Questo nuovo video musicale è fantastico"
Falcon: 

Output
"Positivo"

Input
Utente: Qual è la ricetta della maionese?
Falcon: 

Output 1. In una ciotola, mescola insieme 1 tuorlo d'uovo, 1 cucchiaio di senape di Digione e 1 cucchiaio di succo di limone fino a ottenere un composto omogeneo.
2. Continuando a mescolare, aggiungi lentamente 1 tazza di olio vegetale fino a quando il composto si addensa ed emulsiona.
3. Aggiusta di sale e pepe a piacere.
4. Conserva in un contenitore ermetico in frigorifero per una settimana.
Utente:

Nell’esempio seguente, l’utente ha avuto una conversazione con l’assistente riguardo ai siti turistici di Parigi. Successivamente, l’utente sta chiedendo informazioni sulla prima opzione raccomandata dall’assistente di chat.

Input
Sistema: Sei un utile pianificatore di viaggio.
Utente: Sto andando a Parigi, cosa dovrei vedere?
Falcon: 1. Torre Eiffel: Nessun viaggio a Parigi è completo senza una visita all'iconica Torre Eiffel.
2. Museo del Louvre: Casa di alcune delle opere d'arte più famose al mondo, tra cui la Gioconda.
3. Cattedrale di Notre-Dame: Un magnifico esempio di architettura gotica e una tappa imperdibile per gli appassionati di storia.
4. Champs-Élysées: Una delle avenue più famose al mondo, con negozi, caffè e teatri.
5. Montmartre: Un quartiere affascinante noto per la sua atmosfera bohémien, street art e splendide vedute sulla città.
6. Palazzo di Versailles: Un breve viaggio in treno da Parigi, questo sontuoso palazzo era una volta il seggio della nobiltà francese.
7. Musée d'Orsay: Situato in una ex stazione ferroviaria, questo museo vanta una notevole collezione di arte impressionista e post-impressionista.
8. Sainte-Chapelle: Una gemma nascosta nel cuore di Parigi, questa cappella medievale è famosa per i suoi splendidi vetri colorati.
9. Giardini di Lussemburgo: Un bellissimo parco nel cuore della città, perfetto per un picnic o una passeggiata rilassante.
Utente: Cosa c'è di così speciale in #1?
Falcon: 

Output
La #1 è la Torre Eiffel, che è uno dei luoghi più famosi al mondo. È un simbolo di Parigi e una attrazione da non perdere per molti visitatori. La torre offre splendide vedute sulla città dai suoi ponti di osservazione ed è particolarmente bella quando è illuminata di notte. Inoltre, la Torre Eiffel ha una storia ricca ed è un capolavoro dell'ingegneria, rendendola una meta affascinante per chiunque sia interessato all'architettura o alla storia.
Utente:

Pulizia

Dopo aver eseguito il notebook, assicurati di eliminare tutte le risorse create durante il processo in modo che l’addebito si interrompa. Utilizza il seguente codice:

predictor.delete_model()
predictor.delete_endpoint()

Conclusioni

In questo post, ti abbiamo mostrato come iniziare con Falcon 180B in SageMaker Studio e come distribuire il modello per l’elaborazione. 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 SageMaker JumpStart in SageMaker Studio ora per iniziare.

Risorse

  • Documentazione di SageMaker JumpStart
  • Documentazione dei modelli di base di SageMaker JumpStart
  • Pagina dei dettagli del prodotto SageMaker JumpStart
  • Catalogo dei modelli di SageMaker JumpStart