🚀 CroissantLLMChat (190k steps + Chat)
このモデルはCroissantLLMイニシアチブの一部で、190kステップ(2.99Tトークン)と最終的なChat微調整フェーズ後のチェックポイントに対応しています。
https://arxiv.org/abs/2402.00786
最良のパフォーマンスを得るには、温度を0.3以上に設定し、以下に示す正確なテンプレートを使用する必要があります。
chat = [
{"role": "user", "content": "Que puis-je faire à Marseille en hiver?"},
]
chat_input = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
これは以下に相当します。
chat_input = """<|im_start|>user
{USER QUERY}<|im_end|>
<|im_start|>assistant\n"""
🚀 クイックスタート
このモデルを使用するには、上記のテンプレートを用い、温度を0.3以上に設定することで最適なパフォーマンスを得ることができます。
✨ 主な機能
- 3Tの英語とフランス語のトークンで事前学習された1.3Bの言語モデルで、高性能かつ完全にオープンソースのバイリンガルモデルです。
- 独自のバイリンガルモデルを訓練するアプローチを開拓し、1:1の英語とフランス語の事前学習データ比率、カスタムトークナイザー、バイリンガル微調整データセットを使用しています。
- 新しいベンチマークであるFrenchBenchを作成し、フランス語でのモデルパフォーマンスの様々な側面を評価しています。
📦 インストール
このモデルを使用するには、以下のようにライブラリをインストールする必要があります。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "croissantllm/CroissantLLMChat-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
💻 使用例
基本的な使用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "croissantllm/CroissantLLMChat-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
generation_args = {
"max_new_tokens": 256,
"do_sample": True,
"temperature": 0.3,
"top_p": 0.90,
"top_k": 40,
"repetition_penalty": 1.05,
"eos_token_id": [tokenizer.eos_token_id, 32000],
}
chat = [
{"role": "user", "content": "Qui est le président francais actuel ?"},
]
chat_input = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(chat_input, return_tensors="pt").to(model.device)
tokens = model.generate(**inputs, **generation_args)
print(tokenizer.decode(tokens[0]))
print([(tokenizer.decode([tok]), tok) for tok in tokens[0].tolist()])
📚 ドキュメント
概要
私たちはCroissantLLMを紹介します。これは、3Tの英語とフランス語のトークンで事前学習された1.3Bの言語モデルで、研究および産業界に、消費者向けのローカルハードウェアで迅速に動作する高性能かつ完全にオープンソースのバイリンガルモデルを提供することを目的としています。
そのために、私たちは1:1の英語とフランス語の事前学習データ比率、カスタムトークナイザー、およびバイリンガル微調整データセットを使用して、本質的にバイリンガルなモデルを訓練するアプローチを開拓しました。私たちは、特に手動で選り抜かれた高品質で多様なデータソースを含むフランス語の分割を含む訓練データセットを公開しています。
英語以外のパフォーマンスを評価するために、私たちは分類と生成タスクの配列からなる新しいベンチマークであるFrenchBenchを作成し、フランス語でのモデルパフォーマンスの様々な直交する側面をカバーしています。さらに、透明性に基づき、さらなる大規模言語モデルの研究を促進するために、私たちはコードベース、および様々なモデルサイズ、訓練データ分布、および訓練ステップにわたる数十のチェックポイント、ならびに微調整されたChatモデル、および強力な翻訳モデルを公開しています。私たちはFMTIフレームワークを通じてモデルを評価し、透明性基準の81%を検証しており、ほとんどのオープンイニシアチブのスコアをはるかに上回っています。この研究は、言語モデルにおける多言語性の理解を強化するために、以前の英語中心の研究から脱却し、NLPの状況を豊かにします。
引用
私たちの研究は以下のように引用できます。
@misc{faysse2024croissantllm,
title={CroissantLLM: A Truly Bilingual French-English Language Model},
author={Manuel Faysse and Patrick Fernandes and Nuno M. Guerreiro and António Loison and Duarte M. Alves and Caio Corro and Nicolas Boizard and João Alves and Ricardo Rei and Pedro H. Martins and Antoni Bigata Casademunt and François Yvon and André F. T. Martins and Gautier Viaud and Céline Hudelot and Pierre Colombo},
year={2024},
eprint={2402.00786},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
🔧 技術詳細
モデルの制限
評価結果から、このモデルは同サイズのカテゴリで強力であり、文章作成タスクや内部知識に関しては妥当なパフォーマンスを示し、翻訳タスクでは非常に強力なパフォーマンスを発揮します。しかし、CroissantLLMモデルのサイズが小さいため、少なくとも一般的なベースモデルまたはChatモデルのバージョンにおいて、ゼロショットまたはフューショットの方法では、より複雑な推論ベースのタスクを実行する能力が制限されます。これは同サイズの他のモデルと一致しており、より抽象的なタスクにおけるスケールの重要性を強調しています。
知識のカットオフ
モデルの訓練データセットは、2023年11月のWikipediaダンプに対応するデータカットオフ日を持っています。これは、私たちのベースモデルの事実上の知識カットオフ日ですが、多くの情報はさらに以前のものです。更新されたバージョンは、継続的な事前学習またはその後の微調整によって訓練することができます。
多言語パフォーマンス
CroissantLLMは主にフランス語と英語のモデルです。コードパフォーマンスは比較的制限されており、SlimPajama訓練セットに他の言語のデータが含まれているものの、他の言語でのそのままのパフォーマンスは期待できません。ただし、一部のヨーロッパ言語はかなり良好に動作します。
幻覚
CroissantLLMは幻覚を起こし、事実に誤ったデータを出力することがあります。特に複雑なトピックに関してはこの傾向が強いです。これはモデルサイズが小さいために予想されることで、MT-Bench実験以外で定量的な評価は行われていませんが、同サイズカテゴリのほとんどのモデルよりも幻覚率が低いようです。
📄 ライセンス
このモデルはMITライセンスの下で公開されています。
データセット
Property |
Details |
Model Type |
テキスト生成モデル |
Training Data |
croissantllm/croissant_dataset、croissantllm/CroissantLLM - 2201 - sft、cerebras/SlimPajama - 627B、uonlp/CulturaX、pg19、bigcode/starcoderdata |
Language |
フランス語、英語 |
Pipeline Tag |
テキスト生成 |
Tags |
法律、コード、テキスト生成推論、アート |