Ce référentiel contient du code pour Camoscio, un lama italien réglé par l'instruction basé sur Stanford alpaca et formé avec une adaptation de faible rang (LORA). Le journal de compagnie de ce dépôt est disponible sur l'URL suivant.
Une partie du code dans le dépôt est basée sur Alpaca-Lora et Cabrita. Suite à ces approches précédentes, nous avons traduit l'ensemble de données d'instructions de Stanford Alpaca en italien à l'aide de l'API Chatgpt. Nous fournissons l'ensemble de données traduit ( camoscio_data.json - maintenant également sur les ensembles de données de Hugging Face), le modèle (disponible sur le hub du visage étreint) et le code pour reproduire les résultats.
Le modèle fournit des performances zéro-tir comparables aux modèles formés existants pour l'italien (voir notre article pour l'évaluation) et peut fonctionner sur un PI de framboise (pour la recherche).
Pour Finetune le modèle de l'ensemble de données italien, nous avons adapté les scripts de Cabrita et exécuté la formation sur un seul 3090 pour 1 jour (voir les détails ci-dessous).
Veuillez noter qu'il est très possible que la sortie du modèle contienne un contenu biaisé, conspiraciste, offensant ou autrement inapproprié et potentiellement nocif. Le modèle est destiné à des fins de recherche uniquement et doit être utilisé avec prudence à vos propres risques. L'utilisation de la production n'est pas autorisée.
[1] LLAMA: modèles de langue de base ouverts et efficaces. Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothee Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, Guillaume Lample. https://arxiv.org/abs/2302.13971v1
[2] Auto-instruction: Alignez le modèle de langue avec des instructions auto-générées. Yizhong Wang, Yeganeh Kordi, Swaroop Mishra, Alisa Liu, Noah A. Smith, Daniel Khashabi, Hannaneh Hajishirzi. https://arxiv.org/abs/2212.10560
Clic le bouton "Ouvrir dans Colab" ci-dessus pour ouvrir le cahier dans Google Colab et essayer la démo dans Gradio!

Nous fournissons un exemple de cahier sur la façon de charger et d'utiliser le modèle ici.
from peft import PeftModel
from transformers import LlamaTokenizer , LlamaForCausalLM , GenerationConfig
tokenizer = LlamaTokenizer . from_pretrained ( "linhvu/decapoda-research-llama-7b-hf" )
model = LlamaForCausalLM . from_pretrained (
"linhvu/decapoda-research-llama-7b-hf" ,
load_in_8bit = True ,
device_map = "auto" ,
)
model = PeftModel . from_pretrained ( model , "teelinsan/camoscio-7b-llama" ) pip install -r requirements.txt
translate_data.py ) Téléchargez l'ensemble de données à partir d'ici et placez-le dans le dossier data . Puis courez:
python script/translate_data.py
train.py )Exécutez simplement la commande (modifiez les hyperparamètres au besoin):
python scripts/train.py
Vous pouvez utiliser le script checkpoint_exporter.py dans ce dépôt pour fusionner les poids d'origine de Llama avec les poids Camoscio Lora (LLAMA Checkpoint + Camoscio Lora Checkpoints = Camoscio). Le modèle obtenu avec cette procédure est le modèle final de Camoscio qui équivaut à un modèle LLAMA adapté à l'italien (même architecture et nombre de paramètres) et peut être utilisé pour la financement sur votre tâche en aval.
Pour utiliser le script, exécutez simplement la commande python scripts/checkpoint_exporter.py
Découvrez également le script export_hf_checkpoint.py du repo Alpaca-Lora d'origine pour exporter le point de contrôle au format HuggingFace ou le script export_state_dict_checkpoint.py pour exporter le point de contrôle au format pytorch.
Si vous recherchez une inférence rapide et efficace, jetez un œil à des projets comme Llama.cpp ou alpaca.cpp.
Tutoriel: Si vous recherchez une explication approfondie de la façon de installer votre LM sur votre tâche en aval, consultez ce tutoriel sur CLIC-IT 2023 par @ CRUX82 et @BASTAN.
Pour Finetune Camoscio sur votre propre tâche en italien, vous pouvez utiliser le script finetune.py dans le dossier scripts .
instruction, input, output . Voir data/camoscio_data.json pour un exemple.python scripts/checkpoint_exporter.py .finetune.py avec la commande suivante: python scripts/finetune.py
--base_model= ' {path_camoscio_merged_ckpt} '
--tokenizer_name= ' decapoda-research/llama-7b-hf '
--data_path= ' {your_dataset_path.json} '
--train_on_inputs=False
--num_epochs=10
--cutoff_len=512
--group_by_length
--output_dir= ' ./outdir '
--lora_target_modules= ' [q_proj,k_proj,v_proj,o_proj] '
--lora_r=16
--micro_batch_size=8
--prompt_template_name ' camoscio ' Pour d'autres questions, ouvrez un problème ou contactez-moi sur Twitter.
Les résultats sur les ensembles de données d'évaluation sont disponibles dans le document.
Nous fournissons tous les résultats sur les ensembles de données d'évaluation (Newsum-it, squad-it, xformal it) dans le dossier eval/results .
Ces résultats sont obtenus en exécutant le script eval/eval.sh Les scores finaux inclus dans le document sont obtenus via le ordinateur portable compute_eval_scores.ipynb
Instruction : Riassumi la Storia di Pinocchio.
Alpaca-Lora : Il était une fois, il y avait une marionnette en bois nommée Pinocchio qui rêvait de devenir un vrai garçon. Il a été créé par une sculpteur sur bois nommé Geppetto, qui l'aimait beaucoup. Pinocchio était une marionnette espiègle qui a souvent eu des ennuis, mais il a toujours essayé de faire la bonne chose à la fin. Un jour, Pinocchio a rencontré une fée qui lui a offert la possibilité de devenir un vrai garçon s'il se réalisait être courageux, véridique et altruiste. Pinocchio a accepté l'offre de la fée et s'est lancée sur une série de l'Avent
Chatgpt : La Storia di Pinocchio Raconta di Un Burattino di Legno, Crearo Dal Falegname Geppetto, Che Prende Vita Grazie Alla Fata Turchina. Pinocchio ha un forte desiderio di Diventare un Bambino Vero, ma cade in Numerose Avventure E inganni, Spesso Guidato Dal Suo Istinto e Dalla Sua Ingenuità. Nel Corso della Storia, Pinocchio Viene ingannato da un gatto e una volpe, viène Imprigionato e trasformato in Un asino, ma alla fine dimostra il suo coraggio, la sua lealtà e la sua generosterà salvando il padre e ottenendo la sua trasforminon dans un bambino vero.
Camoscio : La Storia di Pinocchio Raconta di Un Bambino di Nome Pinocchio Che Vive Con I Suoi Genitori dans un Piccolo Villaggio. Un giorno, pinocchio inconstra un burattino magco de che gli dona la possibilità di diventare un vero bambino. Pinocchio inizia una serie di aventure mentre Cerca di Diventare un Vero Bambino. Durante il suo viaggio, pinocchio fa amicizia con molti personaggi e impara molte lezioni di vita. Alla fine, pinocchio raggiunge il suo obiettivo e diventa un vero bambino.
Instruction : Dimmi di Più sul Presidente Della Repubblica italiana del 2019.
Alpaca-Lora : Le président de la République d'Italie en 2019 est Sergio Mattarella. Il a été élu en 2015 et réélu en 2018. Il est le 12e président de la République d'Italie.
Chatgpt : IL Président della Repubblica Italiana Del 2019 Era Sergio Mattarella. OTAN A Palerme Nel 1941, Mattarella è Stato Eletto Presidente Nel 2015, Succedendo a Giorgio Napolitano. Prima di Diventare Presidente, ha ricoperto Importmi Incarichi Politici, Tra Cui Quello di Ministro della DifeSa, Della Pubblica Istruzione E della Giustizia. Durante il Suo Mandato, Mattarella è Stato Impegnato Nella promozione dell'Unità nazionale e nella différences della costituzione italiana. Ha anche Sostenuto L'Integrazione Europea e la Cooperazione Interazionale. NEL 2018, HA SVOLTO UN RUOLO IMPRÉPARTEMENT NELLA FORMAZIONE DEL GOVERNO Italiano, Che ha Visto la Nomina di un Governo di Coalizione Tra iL Movimento 5 Stelle e la Lega. Mattarella è Stato Molto attivo nella différentiel dei diritti umani e della giustizia sociale, promuovendo iniziative par combattere la povertà e la disuguaglianza.
Camoscio : IL Président della Repubblica italiana del 2019 è Sergio Mattarella, Che è Stato Eletto il 31 Gennaio 2015 E Ha Prestato Giuramento IL 31 Gennaio 2015.
Instruction : Dimmi Quattro Parole Che Fanno Rima Con 'Gatto'.
Alpaca-lora : chat, chapeau, tapis, rat.
Chatgpt : Piatto, Matto, Spratto, Grattò.
Camoscio : «Cattivo, Cattivo, Cattivo, Cattivo».
Instruction : Scrivi Una Breve Biografia Su Dante Aligheri
Alpaca-Lora : Dante Alighieri (1265-1321) était un poète italien, un philosophe et une figure politique. Il est surtout connu pour son poème épique, The Divine Comedy, qui est largement considéré comme l'une des plus grandes œuvres de littérature jamais écrites. Dante est né à Florence, en Italie, et a passé une grande partie de sa vie en exil. Il a écrit la comédie divine en exil, et elle raconte l'histoire de son voyage à travers l'enfer, le purgatoire et le paradis. Dante est considéré comme l'un des fondateurs de la langue italienne, et
Chatgpt : Dante Aligheri è Stato uno dei più grandi poeti italiani del Medioevo. Nato A Firenze Nel 1265, Ha Studiato Nella Prestigiosa Scuola di Santa Croce E Ha Mostrato Fin da Giovane Una Grande Passione Per La Poesia. Ha Scritto la Sua Prima Opera, "Il convivio", all'età di 30 anni, ma è soprattto noto per sua opéra più famosa, "la divina commedia". Questo Poema Epico, Scritto in Terzine, Descrive il Viaggio Immaginario di Dante Attrateo L'Inferno, il Purgatorio e il Paradiso, E Rappresenta Una Sintesi della Cultura Medievale, della filosofia e della teologia. Dante ha anche avuto una vita politica attiva, partecipando alla vita pubblica di Firenze e sostenendo la fazione guelfa. TUTTAVIA, DOPO ESSERE STATO ESiliato Dalla Città Nel 1302, Ha Trascorso il Resto della Sua Vita dans Esilio, Scrivendo le Sue Opere Più IMMORDI E CERCANDO DI RIENTR.
Camoscio : Dante Aligheri (1265-1321) È Considération uno dei più grandi poeti e scrittori italiani di tutti i tempi. Nato A Firenze, è Conosciuto Principalmentation Per il Suo Poema Epico la Divina Commedia, Che è Considestato Uno dei Capolavori della Letteratura Occidentale.
Instruction : Dimmi Tutte le Regioni Italiane dans Ordine Alfabetico.
Alpaca-Lora : Abruzzo, basilicata, Calabre, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Puglia, Sardegna, Sicilia, Toscana, Trentino-Alto Adige, Umbria, Vieto.
ChatGPT : Abruzzo, Basilicata, Calabria, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Puglia, Sardegna, Sicilia, Toscana, Trentino-Alto Adige/Südtirol, Umbria, Valle D'Aosta / Vallée d'Aoste, Veneto.
Camoscio : Le Regioni italiane dans l'Ordine Alfabetico Sono: Abruzzo, Basilicata, Calabre, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Puglia, Sardegna, Sicilia OMBRIA, Valle d'Aosta, Vénéto.
Instruction : Scrivi Un Programma Che Stampa I Numeri da 1 a 100. Ma Per I Multipli di Tre Stampa 'Fizz' Al posto del Numero E Per I Multipli di Cinque Stampa 'Buzz'. Per i Numeri Che sono multipli sia di tre che di cinque Stampa 'Fizzbuzz'.
Alpaca-lora :
for i in range ( 1 , 101 ):
if i % 3 == 0 and i % 5 == 0 :
print ( "FizzBuzz" )
elif i % 3 == 0 :
print ( "Fizz" )
elif i % 5 == 0 :
print ( "Buzz" )
else :
print ( i )Chatgpt :
for i in range ( 1 , 101 ):
if i % 3 == 0 and i % 5 == 0 :
print ( "FizzBuzz" )
elif i % 3 == 0 :
print ( "Fizz" )
elif i % 5 == 0 :
print ( "Buzz" )
else :
print ( i )Camoscio :
for i in range ( 1 , 101 ):
if i % 3 == 0 and i % 5 == 0 :
print ( "FizzBuzz" )
elif i % 3 == 0 :
print ( "Fizz" )
elif i % 5 == 0 :
print ( "Buzz" )
else :
print ( i )Si vous utilisez Camoscio ou l'ensemble de données Camoscio dans votre recherche, veuillez citer notre article:
@misc { santilli2023camoscio ,
title = { Camoscio: an Italian Instruction-tuned LLaMA } ,
author = { Andrea Santilli and Emanuele Rodolà } ,
year = { 2023 } ,
eprint = { 2307.16456 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}Vous devez également citer le papier lama d'origine [1], le papier d'auto-instruction [2], le repo Alpaca Stanford et le repo Alpaca-Lora.