Falcon AI Il nuovo modello di linguaggio open source di grandi dimensioni
Falcon AI il nuovo modello open source di grandi dimensioni.
Introduzione
Dal lancio di GPT (Generative Pre Trained) da parte di Open AI, il mondo è stato travolto dall’AI Generativa. Da quel momento in poi, molti Modelli Generativi sono entrati in scena. Con ogni nuova versione di Grandi Modelli Linguistici Generativi, l’AI si avvicinava sempre di più all’Intelligenza Umana. Tuttavia, la comunità di Open AI ha reso la famiglia di potenti Grandi Modelli Linguistici GPT proprietaria. Fortunatamente, Falcon AI, un Modello Generativo altamente capace, superiore a molti altri LLM, è ora open source, disponibile per chiunque lo voglia utilizzare.
Obiettivi di Apprendimento
- Comprendere perché Falcon AI si è classificato al primo posto nella classifica dei LLM
- Conoscere le capacità di Falcon AI
- Osservare le prestazioni di Falcon AI
- Configurare Falcon AI in Python
- Testare Falcon AI in LangChain con Prompts personalizzati
Questo articolo è stato pubblicato come parte del Data Science Blogathon.
Cos’è Falcon AI?
Falcon AI, principalmente Falcon LLM 40B, è un Grande Modello Linguistico rilasciato dall’Institute of Technology Innovation (TII) degli Emirati Arabi Uniti. Il 40B indica i 40 miliardi di parametri utilizzati da questo Grande Modello Linguistico. Il TII ha sviluppato anche un modello da 7B, cioè con 7 miliardi di parametri, addestrato su 1500 miliardi di token. In confronto, il modello Falcon LLM 40B è addestrato su 1 trilione di token di RefinedWeb. Ciò che rende questo LLM diverso dagli altri è che è trasparente e open source.
Il Falcon è un modello decoder-autoregressivo. L’addestramento di Falcon AI è stato effettuato su AWS Cloud continuativamente per due mesi con 384 GPU collegate. I dati di pre-addestramento consistevano principalmente di dati pubblici, con alcune fonti di dati prese da articoli di ricerca e conversazioni sui social media.
- Da GPT-1 a GPT-4 Un’analisi esaustiva e confronto dei modelli di linguaggio in evoluzione di OpenAI
- Quando la visione artificiale funziona più come un cervello, vede più come fanno le persone
- Prevedi la probabilità di guasto della flotta di veicoli utilizzando Amazon SageMaker Jumpstart
Perché Falcon AI?
I Grandi Modelli Linguistici sono influenzati dai dati su cui vengono addestrati. La loro sensibilità varia con i cambiamenti dei dati. Abbiamo creato su misura i dati utilizzati per addestrare Falcon, che includevano estratti di dati di alta qualità provenienti da siti web (Dataset di RefinedWeb). Abbiamo eseguito vari processi di filtraggio e deduplica su questi dati, oltre all’utilizzo di fonti di dati prontamente disponibili. L’architettura di Falcon lo rende ottimizzato per l’uso inferenziale. Falcon supera nettamente i modelli state-of-the-art come Google, Anthropic, Deepmind, LLaMa, ecc. nella classifica OpenLLM Leaderboard.
Oltre a tutto questo, il principale fattore differenziante è che è open source, consentendo quindi un utilizzo commerciale senza restrizioni. Quindi chiunque può ottimizzare Falcon con i propri dati per creare la propria applicazione da questo Grande Modello Linguistico. Falcon è disponibile anche in versioni Instruct chiamate Falcon-7B-Instruct e Falcon-40B-Instruct, che sono state ottimizzate per dati conversazionali. Queste possono essere utilizzate direttamente per creare applicazioni di chat.
Prima Occhiata: Falcon Large Language Model
In questa sezione, proveremo uno dei modelli di Falcon. Quello che useremo è il modello Falcon-40B, che si posiziona al primo posto nella classifica OpenLLM Leaderboard. Utilizzeremo specificamente la versione Instruct di Falcon-40B, cioè Falcon-40B-Instruct, che è già stata ottimizzata per i dati conversazionali, quindi possiamo iniziare rapidamente. Un modo per interagire con il modello Falcon Instruct è tramite gli HuggingFace Spaces. HuggingFace ha creato uno Spazio per il modello Falcon-40B-Instruct chiamato Falcon-Chat demo. Clicca qui per visitare il sito.
Dopo aver aperto il sito, scorri verso il basso per vedere la sezione chat, simile all’immagine sopra. Nel campo “Digita un input e premi Invio”, inserisci la domanda che desideri porre al modello Falcon e premi Invio per avviare la conversazione. Facciamo una domanda al modello Falcon e vediamo la sua risposta.
Nell’Immagine 1 possiamo vedere la risposta generata. È stata una buona risposta del modello Falcon-40B alla domanda posta. Abbiamo visto il funzionamento di Falcon-40B-Instruct negli HuggingFace Spaces. Ma cosa succede se vogliamo lavorare con esso in un codice specifico? Possiamo farlo utilizzando la libreria Transformers. Ora passeremo attraverso i passaggi necessari.
Scarica i Pacchetti
!pip install transformers accelerate einops xformers
Installiamo il pacchetto transformers per scaricare e lavorare con i modelli di ultima generazione che sono pre-addestrati, come il Falcon. Il pacchetto accelerate ci consente di eseguire modelli PyTorch su qualsiasi sistema con cui stiamo lavorando, e attualmente stiamo utilizzando Google Colab. Einops e xformers sono gli altri pacchetti che supportano il modello Falcon.
Ora dobbiamo importare queste librerie per scaricare e iniziare a lavorare con il modello Falcon. Il codice sarà:
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model = "tiiuae/falcon-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map="auto",
max_length=200,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id
)
Passaggi
- Prima di tutto, dobbiamo fornire il percorso al modello che testeremo. Qui lavoreremo con il modello Falcon-7B-Instruct perché occupa meno spazio nella GPU e può essere utilizzato con il livello gratuito di Google Colab.
- Il collegamento al modello Falcon-7B-Instruct Large Language Model è memorizzato nella variabile di modello.
- Per scaricare il tokenizer per questo modello, scriviamo il metodo from_pretrained() della classe AutoTokenizer presente in transformers.
- A questo, forniamo il percorso LLM, che scarica il Tokenizer che funziona per questo modello.
- Creiamo ora una pipeline. Quando creiamo le pipeline, forniamo le opzioni necessarie, come il modello con cui stiamo lavorando e il tipo di modello, cioè “text-generation” per il nostro caso d’uso.
- Il tipo di tokenizer e altri parametri sono forniti all’oggetto pipeline.
Proviamo a osservare l’output del modello di istruzione Falcon 7B fornendo al modello una query. Per testare il modello Falcon, scriveremo il codice seguente.
sequences = pipeline(
"Crea una lista di 3 cose importanti per ridurre il riscaldamento globale"
)
for seq in sequences:
print(f"Risultato: {seq['generated_text']}")
Abbiamo chiesto al Falcon Large Language Model di elencare le tre cose importanti per ridurre il riscaldamento globale. Vediamo l’output generato da questo modello.
Possiamo vedere che il modello Falcon 7B Instruct ha prodotto un buon risultato. Ha individuato i problemi principali alla base della causa del riscaldamento globale e ha anche fornito la soluzione appropriata per affrontare le questioni, riducendo così il riscaldamento globale.
Falcon AI con LangChain
Langchain è una libreria Python che aiuta a costruire applicazioni con Large Language Applications. LangChain ha una pipeline chiamata HuggingFacePipeline per i modelli ospitati in HuggingFace. Quindi, in pratica, dovrebbe essere possibile utilizzare Falcon con LangChain.
Installa il Pacchetto LangChain
!pip install langchain
Questo scaricherà l’ultima versione del pacchetto langchain. Ora dobbiamo creare una pipeline per il modello Falcon, che faremo nel seguente modo
from langchain import HuggingFacePipeline
llm = HuggingFacePipeline(pipeline = pipeline, model_kwargs = {'temperature':0})
- Chiamiamo l’oggetto HuggingFacePipeline() e passiamo la pipeline e i parametri del modello.
- Qui stiamo utilizzando la pipeline dalla sezione “Primo Sguardo: Falcon Large Language Model”.
- Per i parametri del modello, forniamo alla temperatura un valore di 0, che fa sì che il modello non generi molte risposte (hallucinazioni).
- Tutto ciò lo passiamo a una variabile chiamata llm, che memorizza il nostro Large Language Model.
Ora sappiamo che LangChain contiene PromptTemplate, che ci consente di modificare le risposte prodotte dal Large Language Model. E abbiamo LLMChain, che unisce il PromptTempalte e il LLM insieme. Scriviamo il codice con questi metodi.
from langchain import PromptTemplate, LLMChain
template = """
Sei un chatbot intelligente. La tua risposta dovrebbe essere divertente.
Domanda: {query}
Risposta:"""
prompt = PromptTemplate(template=template, input_variables=["query"])
llm_chain = LLMChain(prompt=prompt, llm=llm)
Passaggi
- Innanzitutto, definiamo un modello per il Prompt. Il modello descrive come il nostro LLM dovrebbe comportarsi, cioè come dovrebbe rispondere alle domande poste dall’utente.
- Questo viene quindi passato al metodo PromptTemplate() e memorizzato in una variabile.
- Ora dobbiamo concatenare insieme il Large Language Model e il Prompt, che facciamo fornendoli al metodo LLMChain().
Ora il nostro modello è pronto. Secondo il Prompt, il modello deve rispondere in modo divertente a una determinata domanda. Proviamolo con un esempio di codice.
query = "Come raggiungere la luna?"
print(llm_chain.run(query))
Abbiamo quindi dato al modello la domanda “Come raggiungere la luna?”. La risposta è la seguente:
La risposta generata dal modello Falcon-7B-Instruct è davvero divertente. Ha seguito il Prompt da noi fornito e ha generato la risposta appropriata alla domanda posta. Questa è solo una delle poche cose che possiamo ottenere con questo nuovo Modello Open Source.
Conclusioni
In questo articolo, abbiamo discusso di un nuovo Large Language Model chiamato Falcon. Questo modello si è aggiudicato il primo posto nella classifica di OpenLLM, superando modelli di punta come Llama, MPT, StableLM e molti altri. La cosa migliore di questo modello è che è Open Source, il che significa che chiunque può sviluppare applicazioni con Falcon per scopi commerciali.
Punti Chiave
- Falcon-40B è attualmente in cima alla classifica di OpenLLM
- Flacon ha reso open source sia i modelli da 40 miliardi che da 7 miliardi
- Puoi lavorare con i modelli Instruct di Falcon, che sono pre-istrainati su conversazioni, per iniziare rapidamente.
- Ottimizza l’architettura di Falcon per l’Inferenza.
- Personalizza questo modello per creare diverse applicazioni.
Domande Frequenti
I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.