StableBeluga2 è un modello di linguaggio sviluppato da Stability AI. È un modello auto-regressivo fine-tuned su Llama2 70B e è stato addestrato su un dataset di stile Orca interno.
Per iniziare a usare StableBeluga2 per la generazione di testo, è possibile seguire il seguente codice snippet. Innanzitutto, bisogna importare le librerie necessarie: import torch
e from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
. Poi, si crea il tokenizer: tokenizer = AutoTokenizer.from_pretrained("stabilityai/StableBeluga2", use_fast=False)
e il modello: model = AutoModelForCausalLM.from_pretrained("stabilityai/StableBeluga2", torch_dtype=torch.float16, low_cpu_mem_usage=True, device_map="auto")
.
Per generare un testo, ad esempio un poema, si può definire un prompt come il seguente: system_prompt = "### System:\nYou are Stable Beluga, an AI that follows instructions extremely well. Help as much as you can. Remember, be safe, and don't do anything illegal.\n\n"
seguito da message = "Write me a poem please"
e quindi prompt = f"{system_prompt}### User: {message}\n\n### Assistant:\n"
. Dopo aver creato il prompt, si tokenizza e si invia al modello per ottenere l'output: inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
seguito da output = model.generate(**inputs, do_sample=True, top_p=0.95, top_k=0, max_new_tokens=256)
e infine si decodifica l'output per ottenere il testo generato: print(tokenizer.decode(output[0], skip_special_tokens=True))
.
StableBeluga2 ha alcune caratteristiche importanti. È stato sviluppato utilizzando la libreria HuggingFace Transformers e la sua licenza è la STABLE BELUGA NON-COMMERCIAL COMMUNITY LICENSE AGREEMENT. Inoltre, è stato addestrato con una procedura di fine-tuning supervisionato sui dataset menzionati precedentemente, in precisione mista (BF16) e ottimizzato con AdamW.
Come ogni modello di linguaggio di grandi dimensioni, StableBeluga2 ha alcune considerazioni etiche e limitazioni. Poiché è una nuova tecnologia, porta dei rischi con l'uso. I test condotti finora sono stati in inglese e non hanno coperta, né potrebbero coprire, tutti i scenari. Di conseguenza, come per tutti i modelli di linguaggio di grandi dimensioni, le possibili risposte di StableBeluga2 non possono essere previste in anticipo e il modello potrebbe in alcuni casi produrre risposte inaccurate, sbilanciate o altre inaccettabili alle richieste degli utenti. Perciò, prima di distribuire qualsiasi applicazione basata su StableBeluga2, i sviluppatori dovrebbero effettuare test di sicurezza e ottimizzazione specifici per le loro applicazioni.
Inoltre, attualmente questo modello non ha abbastanza attività per essere distribuito all'Inference API (serverless), ma è possibile aumentare la sua visibilità sociale e controllare nuovamente in seguito oppure distribuirlo agli Inference Endpoints (dedicated).
StableBeluga2 è utilizzato in molti spazi e progetti, come ad esempio quelli elencati nel leaderboard degli open-llm. È un modello interessante per la generazione di testo e offre molte possibilità agli sviluppatori e agli utenti interessati alla tecnologia dei modelli di linguaggio di grandi dimensioni.