このリポジトリには、スタンフォードアルパカに基づいたイタリアの命令チューンされたラマであり、低ランク適応(LORA)で訓練されたCamoscioのコードが含まれています。このレポのコンパニオンペーパーは、次のURLで入手できます。
レポのコードの一部は、Alpaca-LoraとCabritaに基づいています。これらの以前のアプローチに続いて、Stanford Alpaca命令調整データセットをChatGPT APIを使用してイタリア語に翻訳しました。翻訳されたデータセット( camoscio_data.json -hugging faceのデータセット)、モデル(hugging hugging faceのハブで利用可能)、および結果を再現するコードを提供します。
このモデルは、イタリア語の既存の訓練されたモデルに匹敵するゼロショットパフォーマンスを提供し(評価については論文を参照)、Raspberry Pi(研究用)で実行できます。
イタリアのデータセットでモデルを微調整するには、Cabritaからスクリプトを適応させ、1日間単一の3090でトレーニングを実行しました(詳細を参照)。
モデル出力には、偏った、陰謀主義者、攻撃的、または不適切で潜在的に有害なコンテンツが含まれている可能性が高いことに注意してください。このモデルは、研究目的のみを目的としており、お客様の責任で注意して使用する必要があります。生産の使用は許可されていません。
[1] llama:オープンで効率的な基礎言語モデル。ヒューゴ・トーブロン、ティボー・ラヴリル、ゴーティエ・イザカード、ザビエル・マルティネット、マリー・アン・ラッコー、ティモテ・ラクロア、バプティスト・ロジエール、ナマン・ゴイヤル、エリック・ハンブロ、フェイサル・アズハル、アウレリエン・ロドリゲス、アーマンド・ジュウルン、エドゥーヤード・グラップ、エドゥーヤード・グラップ、 https://arxiv.org/abs/2302.13971v1
[2]自己インストラクション:自己生成命令を備えた言語モデルを調整します。 Yizhong Wang、Yeganeh Kordi、Swaroop Mishra、Alisa Liu、Noah A. Smith、Daniel Khashabi、Hannaneh Hajishirzi。 https://arxiv.org/abs/2212.10560
Google Colabでノートブックを開き、Gradioでデモを試してみるために、上記の「Colabで開く」ボタンをクリックしてください!

ここでモデルをロードして使用する方法についてのノートブックの例を提供します。
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 )ここからデータセットをダウンロードして、 dataフォルダーに入れます。その後、実行:
python script/translate_data.py
train.py )コマンドを実行するだけです(必要に応じてハイパーパラメーターを変更します):
python scripts/train.py
このレポでスクリプトcheckpoint_exporter.pyを使用して、Llamaの元の重みをCamoscio Lora Weights(Llama Checkpoint + Camoscio Lora Checkpoints = camoscio)とマージできます。この手順で取得されたモデルは、イタリア語に合わせたラマモデル(同じアーキテクチャとパラメーターの数)に相当する最終的なカモスシオモデルであり、ダウンストリームタスクでの微調整に使用できます。
スクリプトを使用するには、コマンドpython scripts/checkpoint_exporter.pyを実行するだけです
また、元のAlpaca-Lora Repoからスクリプトexport_hf_checkpoint.pyチェックアウトして、チェックポイントをHuggingface形式またはスクリプトExport_State_Dict_CheckPoint.pyにエクスポートして、チェックポイントをPytorch形式にエクスポートします。
高速で効率的な推論を探している場合は、llama.cppやalpaca.cppなどのプロジェクトをご覧ください。
チュートリアル:ダウンストリームタスクでLMを指導する方法の徹底的な説明を探している場合は、 @crux82および@basteranによってClic-it 2023のこのチュートリアルをチェックしてください。
イタリア語で独自のタスクでCamoscioをFintuneするには、 scriptsフォルダーでfinetune.pyスクリプトを使用できます。
instruction, input, outputのJSONである必要があります。例については、 data/camoscio_data.jsonを参照してください。python scripts/checkpoint_exporter.pyを実行します。finetune.pyスクリプトを実行します。 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 ' 他の質問については、問題を開いたり、Twitterで私に連絡してください。
評価データセットの結果は、論文で入手できます。
フォルダーのeval/resultsに、評価データセット(Newssum-It、Squad-It、Xformal It)のすべての結果を提供します。
これらの結果は、スクリプトeval/eval.shを実行することによって取得されます。論文に含まれる最終スコアは、ノートブックcompute_eval_scores.ipynbを介して取得されます
指導:Riassumi La Storia di Pinocchio。
Alpaca-Lora :昔々、本物の男の子になることを夢見ていたPinocchioという名前の木製の人形がいました。彼はGeppettoという名前の木彫りによって作成されました。彼は彼をとても愛していました。ピノキオはいたずらな人形であり、しばしばトラブルに巻き込まれましたが、彼は常に最終的に正しいことをしようとしました。ある日、ピノキオは妖精に会いました。妖精は、彼が勇敢で真実で、利己的であることを証明した場合、本当の男の子になる機会を彼に提供しました。ピノキオは妖精の申し出を受け入れ、一連の出現に出発しました
Chatgpt :La Storia di Pinocchio Racconta di un burattino di legno、creato 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 suaingenuità。ネル・コルソ・デラ・ストーリア、ピノッキオ・ヴィエン・インガンナト・ダ・ガット・エ・ウナ・ヴォルペ、ヴィエン・インピリジオノート・エ・トラスファート・ウン・アシノ、マサチューセッツ・アッラ・ファイン・ディモ・イル・スー・レアルタ・ラ・スア・スア・ゼロシタ・サルバンド・イル・パドレ・パドレ・パドレ・スア・スア・トレンゼン・バンビノ
Camoscio :La Storia di Pinocchio racconta di un bambino di nome pinocchio che vive con i suoi genitori in un piccolo villaggio。 Un Giorno、Pinocchio incentra un burattino magico ch gli dona lapossibilitàdiventareun Vero Bambino。 Pinocchio inizia una serie di avventure mentre cerca di Diventare un Vero Bambino。 Durante Il Suo Viaggio、Pinocchio fa amicizia con molti personaggi e ipara molte lezioni di vita。 Alla Fine、Pinocchio raggiunge il suo obiettivo e Diventa un Vero Bambino。
指導:Dimmi DiPiùsulPresidente Della Repubblica Italiana del 2019。
Alpaca-Lora :2019年のイタリア共和国の大統領はセルジオ・マタレラです。彼は2015年に選出され、2018年に再選されました。彼はイタリア共和国の第12代大統領です。
ChatGpt :IL Presidente Della Repubblica Italiana del 2019 ERA Sergio Mattarella。 NATO A PALERMO NEL 1941、MattarellaèStatoEletto Presidente Nel 2015、Succendo a Giorgio Napolitano。 Prima di Diventare Presidente、ha ricoperto falityi corcarichi politici、tra cui quello di ministro della della della della della della della istruzione e della giustizia。 Durante Il Suo Mandato、MattarellaèStato Impegnato Nella PromozioneDell'unitànazionaleenella della della costituzione yatiana。 Ha Anche Sostenuto L'Integrazione Europea e La Cooperazione Internazionale。 Nel 2018、ha svolto un ruolo falye nella formazione del Governo Italiano、Che ha visto la nomina di un govero di coalizione tra il movimento 5 stelle e la rega。 MattarellaèStatoMolto Attivo nella difesa dei diritti umani e della giustizia sociale、promuovendoは、disugualianzaをlapovertàelapovertàela disugualianza
Camoscio :Il Presidente Della Repubblica Italiana del 2019èSergio Mattarella、CheèStatoEletto IL 31 Gennaio 2015 E Ha Prestato Giuramento IL 31 Gennaio 2015。
指導:Dimmi Quattro Parole Che Fanno Rima Con 'Gatto'。
Alpaca-Lora :猫、帽子、マット、ラット。
ChatGpt :Piatto、Matto、Spratto、Grattò。
Camoscio :「cattivo、cattivo、cattivo、cattivo。」
指導:Scrivi Una Breve Biografia su dante alighieri
Alpaca-Lora :Dante Alighieri(1265-1321)は、イタリアの詩人、哲学者、政治的人物でした。彼は彼の壮大な詩である神のコメディで最もよく知られています。これは、これまでに書かれた最も偉大な文学作品の1つであると広く考えられています。ダンテはイタリアのフィレンツェで生まれ、彼の人生の大部分を亡命に費やしました。彼は亡命中に神のコメディを書いて、それは地獄、煉獄、そして天国を通る彼の旅の物語を語っています。ダンテはイタリア語の創設者の一人であると考えられており、
ChatGpt :DanteAlighierièStatoUno DeiPiùGrandiPoeti 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 Posia。 ha scritto la sua prima Opera、 "il convivio"、all'etàdi30 anni、maèsoprattuttonoto per la sua operapiùfamosa、 "la Divina Commedia"。 Questo Poema Epico、テルジンのスクリット、Descrive Il viaggio maggio didane attraverso l'ienfno、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 DallaCittàNel1302、Ha Trascorso il resto della sua vita in esilio、scrivendo le sue operepiı重要
Camoscio :Dante Alighieri(1265-1321)èsentialatouno deipiùgrandipoeti e scrittori yialiani di tutti i tempi。 Nato a firenze、èconosciutoの主体は、suo poepa epico la divina commedia、cheèsentialatouno dei dei capolavori della leteratura occidentale。
指導:Ordine AlfabeticoのDimmi Tutte Le Regioni Italiane。
Alpaca-Lora :Abruzzo、Basilicata、Calabria、Campania、Emilia-Romagna、Friuli-Venezia Giulia、Lazio、Liguria、Lombardia、Marche、Molise、Piemonte、Puglia、Sardegna、Sicilia、Toscana、Trentino-Altino-Altino-Altino-alto Adige、
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éed'Aoste、Veneto。
Camoscio :Ordine Alfabetico SonoのLe地域イタリア語:Abruzzo、Basilicata、Calabria、Campania、Emilia-Romagna、Friuli-Venezia Giulia、Lazio、Liguria、Lombardia、Marche、Molise、Piemonte、Puglia、Puglia、Sardegna、Sichiline、Ticiiline、Timeinウンブリア、ヴァル・ダオスタ、ベネト。
指導:Scrivi Un Programma Che Stampa I Numeri da 1100。MABER I MULTIPLI DI TRE TRE TRE STAMPA 'AL POSTO DEL NUMERO E PER I PER I MULTIPLI DI CINQUE STAMPA' BUZZ '。私はnumeri che sono multipli sia di tre ch di cinque sppta '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 )研究でCamoscioまたはCamoscioデータセットを使用している場合は、私たちの論文を引用してください。
@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 }
}また、オリジナルのLlama Paper [1]、自己インストラクションペーパー[2]、Stanford Alpaca Repo、およびAlpaca-Lora Repoを引用する必要があります。