Sin dal lancio di GPT (Generative Pre Trained) di Open AI, il mondo è stato preso d'assalto da Generative AI. Da quel periodo in poi, sono entrati in scena molti Modelli Generativi. Con ogni rilascio di nuovi modelli generativi di linguaggi di grandi dimensioni, l'IA ha continuato ad avvicinarsi all'intelligenza umana. Tuttavia, la comunità Open AI ha reso closed source la famiglia GPT di potenti Large Language Models. Fortunatamente, Falcon AI, un modello generativo altamente capace, supera molti altri LLM, ed è ora open source, disponibile per chiunque.
Indice su Falcon AI il modello LLM open source , cos'è e come usarlo
Capire perché Falcon AI è in cima alla classifica LLM
Spprendere le capacità di Falcon AI
Osservare le prestazioni di Falcon AI
Configurare Falcon AI in Python
Testare Falcon AI con LangChain e prompt personalizzati
Cos'è Falcon AI ?
Falcon AI, o Falcon LLM 40B, è un Large Language Model rilasciato dal Technology Innovation Institute (TII) degli Emirati Arabi Uniti. Il 40B indica i 40 miliardi di parametri utilizzati da questo Large Language Model . Il TII ha persino sviluppato un modello 7B, ovvero 7 miliardi di parametri, addestrato su 1500 miliardi di token. In confronto, il modello Falcon LLM 40B viene addestrato su 1 trilione di token di RefinedWeb. Ciò che rende questo LLM diverso dagli altri è che questo modello è trasparente e Open Source. Il Falcon è un modello solo decodificatore autoregressivo. L'addestramento di Falcon AI è stato su AWS Cloud ininterrottamente per due mesi con 384 GPU collegate. I dati di pre-formazione consistevano in gran parte in dati pubblici, con poche fonti di dati tratte da documenti di ricerca e conversazioni sui social media.
Perché Falcon AI?
I modelli di linguaggio di grandi dimensioni sono influenzati dai dati su cui vengono addestrati. La loro sensibilità varia al variare dei dati. Abbiamo personalizzato i dati utilizzati per addestrare Falcon, che includevano estratti di dati di alta qualità presi da siti Web (RefinedWeb Dataset). Abbiamo eseguito vari processi di filtraggio e deduplicazione su questi dati oltre a utilizzare fonti di dati prontamente disponibili. L'architettura del Falcon lo rende ottimizzato per l'inferenza. Falcon supera chiaramente i modelli all'avanguardia come Google, Anthropic, Deepmind, LLaMa, ecc., nella classifica OpenLLM.
Oltre a tutto questo, il principale elemento di differenziazione è che è open source, consentendo quindi un uso commerciale senza restrizioni. Quindi chiunque può mettere a punto Falcon con i propri dati per creare la propria applicazione da questo Large Language Model. Falcon viene fornito anche con versioni di Instruct chiamate Falcon-7B-Instruct e Falcon-40B-Instruct, che vengono ottimizzate sui dati conversazionali. Questi possono essere utilizzati direttamente per creare applicazioni di chat.
Primo sguardo: Falcon Large Language Model
In questa sezione proveremo uno dei modelli del Falcon. Quello con cui andremo è il modello Falcon-40B, che è in cima alle classifiche OpenLLM Leaderboard. Useremo in modo specifico la versione Instruct di Falcon-40B, ovvero il Falcon-40B-Instruct, che è già stato messo a punto sui dati conversazionali, in modo da poter iniziare rapidamente con esso. Un modo per interagire con il modello Falcon Instruct è attraverso gli spazi HuggingFace. HuggingFace ha creato uno spazio per il modello Falcon-40B-Instruct chiamato demo Falcon-Chat.
Clicca qui per visitare il sito.
Dopo aver aperto il sito, scorri verso il basso per vedere la sezione della chat, che è simile all'immagine sopra. Nel campo "Digita un input e premi Invio", inserisci la query che desideri porre al Falcon Model e premi Invio per avviare la conversazione. Facciamo una domanda al Falcon Model e vediamo il suo output.
Nell'immagine 2, possiamo vedere la risposta generata. Questa è stata una buona risposta dal modello Falcon-40B alla domanda. Cosa succede se vogliamo lavorare con esso in un progetto python? Possiamo farlo usando la libreria Transformers. Passeremo ora attraverso i passaggi necessari.
Utilizzare Falcon AI con Python
!pip install transformers accelerate einops xformers #per colab
pip install transformers accelerate einops xformers #in locale
Installiamo il pacchetto Transformers da scaricare e lavorare con i modelli all'avanguardia che sono pre-treno, come il Falcon. Il pacchetto di accelerazione ci consente di eseguire i 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 da 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
)
Passi
In primo luogo, 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 possibile con il livello gratuito in Google Colab.
Il collegamento Falcon-7B-Instruct Large Language Model è memorizzato nella variabile del modello.
Per scaricare il tokenizer per questo modello, scriviamo il metodo from_pretrained() dalla classe AutoTokenizer presente nei trasformatori.
A questo, forniamo il percorso LLM, che quindi scarica il Tokenizer che funziona per questo modello.
Ora creiamo una pipeline. Durante la creazione delle pipeline, forniamo le opzioni necessarie, come il modello con cui stiamo lavorando e il tipo di modello, ovvero "generazione di testo" per il nostro caso d'uso.
Il tipo di tokenizer e altri parametri vengono forniti all'oggetto pipeline.
Proviamo a osservare l'output del modello di istruzione 7B di Falcon fornendo al modello una query. Per testare il modello Falcon, scriveremo il codice seguente.
sequences = pipeline(
"Create a list of 3 important things to reduce global warming"
)
for seq in sequences:
print(f"Result: {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 sottolineato i problemi alla radice della causa del riscaldamento globale e ha persino fornito la soluzione appropriata per affrontare i problemi, riducendo così il riscaldamento globale.
Falcon AI con LangChain
Langchain è una libreria Python che aiuta a creare applicazioni con Large Language Applications. LangChain ha una pipeline chiamata HuggingFacePipeline per i modelli ospitati in HuggingFace. Quindi, in pratica, deve essere possibile utilizzare Falcon con LangChain. Installa il pacchetto LangChain :
!pip install -U langchain
Questo scaricherà l'ultimo pacchetto langchain. Ora, dobbiamo creare una pipeline per il modello Falcon, con cui lo faremo
from langchain import HuggingFacePipeline
llm = HuggingFacePipeline(pipeline = pipeline, model_kwargs = {'temperature':0})
Chiamiamo l'oggetto HuggingFacePipeline() e passiamo la pipeline ei parametri del modello.
Per i parametri del modello, stiamo fornendo alla temperatura un valore pari a 0, il che rende il modello non molto allucinato (creando le proprie risposte).
Tutto questo, passiamo a una variabile chiamata llm , che memorizza il nostro Large Language Model.
Ora sappiamo che LangChain contiene PromptTemplate, che ci permette di modificare le risposte prodotte dal Large Language Model. E abbiamo LLMChain, che concatena insieme PromptTempalte e LLM. Scriviamo codice con questi metodi.
from langchain import PromptTemplate, LLMChain
template = """
You are a intelligent chatbot. You reply should be in a funny way.
Question: {query}
Answer:"""
prompt = PromptTemplate(template=template, input_variables=["query"])
llm_chain = LLMChain(prompt=prompt, llm=llm)
Passi
Innanzitutto, definiamo un modello per il Prompt. Il template descrive come deve comportarsi il nostro LLM, ovvero come deve rispondere alle domande poste dall'utente.
Questo viene quindi passato al metodo PromptTemplate() e memorizzato in una variabile
Ora dobbiamo concatenare il Large Language Model e il Prompt insieme, cosa 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. Proviamo con un codice di esempio.
query = "How to reach the moon?"
print(llm_chain.run(query))
Quindi abbiamo dato la domanda "Come raggiungere la luna?" al modello. La risposta è qui sotto:
La risposta generata dal modello Falcon-7B-Instruct è davvero divertente. Ha seguito il suggerimento da noi fornito e ha generato la risposta appropriata alla domanda data. Questa è solo una delle poche cose che possiamo ottenere con questo nuovo Modello Open Source.
Conclusione su Falcon AI
In questo articolo, abbiamo discusso di un nuovo modello di linguaggio esteso chiamato Falcon. Questo modello ha conquistato il primo posto nella classifica OpenLLM battendo 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.
Domande frequenti su Falcon AI
D1. Cos'è l'intelligenza artificiale di Falcon?
Il Technology Innovation Institute ha sviluppato Falcon, il nome del Large Language Model. Abbiamo addestrato questa IA su 384 GPU, dedicando 2800 giorni di elaborazione al suo pre-addestramento.
D2. Quanti modelli Falcon esistono?
Ci sono due modelli Falcon. Uno è il Falcon-40B, che è il modello da 40 miliardi di parametri, e l'altro è la sua versione più piccola Falcon-7B, il modello da 7 miliardi di parametri.
D3. Quanto è buono il modello Falcon-40B?
Falcon-40B ha raggiunto la vetta della classifica nella classifica OpenLLM. Ha superato modelli all'avanguardia come Llama, MPT, StableLM e molti altri. Il Falcon ha un'architettura ottimizzata per le attività di inferenza.
D4. Possiamo creare applicazioni con modelli Falcon per uso commerciale?
Sì. Il Falcon Model è un modello Open Source. È esente da diritti d'autore e può essere utilizzato per creare applicazioni commerciali.
Q5. Quanto sono grandi i modelli Falcon?
Il Falcon-7B richiede circa 15 GB di memoria GPU e la sua versione più grande, il modello Falcon-40B, richiede circa 90 GB di memoria GPU.
Comments