🚀 INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1
INSAITが開発した、GoogleのGemma 2 9Bをベースにした、ウクライナ語と英語に対応した言語モデルです。高い性能を持ち、特定のベンチマークで大規模モデルを上回る結果を示しています。
🚀 クイックスタート
INSAITはMamayLM-Gemma-2-9B-IT-v0.1を導入しました。これは、google/gemma-2-9bとgoogle/gemma-2-9b-itをベースにした、最も性能の高いウクライナ語言語モデルです。MamayLM-Gemma-2-9B-IT-v0.1は無料で使用でき、Gemma Terms of Useの下で配布されています。このモデルは、ブルガリアのソフィアにあるソフィア大学スト・クリメント・オヒリスキー校の一部であるINSAIT
によって作成されました。

✨ 主な機能
- GoogleのGemma 2 9Bオープンモデルをベースに構築されています。
- データミキシングとモデルマージを組み合わせて、大規模な事前フィルタリングされたデータセット(合計75Bトークンのウクライナ語と英語のデータ)で継続的に事前学習されています。
- 英語の性能を維持しながら、ウクライナの文化や言語能力を獲得しています。
- 新しく構築されたウクライナ語命令データセットで命令微調整されています。
📦 インストール
まず、transformersライブラリの最新バージョンをインストールします。
pip install -U 'transformers[torch]'
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1",
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
device_map="auto",
)
高度な使用法
推奨パラメータ
最適なパフォーマンスを得るために、以下のパラメータを推奨します。
from transformers import GenerationConfig
generation_params = GenerationConfig(
max_new_tokens=2048,
temperature=0.1,
top_k=25,
top_p=1,
repetition_penalty=1.1,
eos_token_id=[1,107],
do_sample=True
)
原則として、temperatureを上げることも適切に機能するはずです。
命令形式
命令微調整を活用するために、プロンプトは開始トークン<bos>
で始め、Gemma 2チャットテンプレートでフォーマットする必要があります。<bos>
はチャットシーケンスの最初のトークンである必要があります。
例:
<bos><start_of_turn>user
Хто такий Козак Мамай?<end_of_turn>
<start_of_turn>model
この形式は、apply_chat_template()
メソッドを介してチャットテンプレートとしても利用できます。
tokenizer = AutoTokenizer.from_pretrained(
"INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1",
use_default_system_prompt=False,
)
messages = [
{"role": "user", "content": "Хто такий Козак Мамай?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
return_tensors="pt",
add_generation_prompt=True,
return_dict=True
)
outputs = model.generate(
**input_ids,
generation_config=generation_params
)
print(tokenizer.decode(outputs[0]))
vLLMでの使用例
from vllm import LLM, SamplingParams
from vllm.inputs import TokensPrompt
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1",
use_default_system_prompt=False,
)
sampling_params = SamplingParams(
max_tokens=2048,
temperature=0.1,
top_k=25,
top_p=1,
repetition_penalty=1.1,
stop_token_ids=[1, 107],
)
llm = LLM(
model="INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1",
dtype="bfloat16",
enforce_eager=True
)
messages = [
{"role": "user", "content": "Хто такий Козак Мамай?"},
]
formatted_prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
input_ids = tokenizer(
formatted_prompt,
add_special_tokens=False
).input_ids
prompt = TokensPrompt(prompt_token_ids=input_ids)
output = llm.generate(
prompt,
sampling_params
)
generated_text = output[0].outputs[0].text
print(generated_text)
GGML / llama.cppでの使用
GGUF形式のモデルと使用説明は、INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1-GGUFで入手できます。
📚 ドキュメント
モデルの説明
このモデルは、GoogleのGemma 2 9Bオープンモデルをベースに構築されています。データミキシングとモデルマージを組み合わせて、大規模な事前フィルタリングされたデータセット(合計75Bトークンのウクライナ語と英語のデータ)で継続的に事前学習されています。これにより、モデルは英語の性能を維持しながら、ウクライナの文化や言語能力を獲得することができます。事前学習段階では、ウクライナ語のウェブクロールデータ(FineWeb2)、Wikipediaなどの無料で利用可能なデータセット、さまざまな専門的なウクライナ語データセット、人気のある英語データセットの機械翻訳など、さまざまなデータセットを使用しています。その後、現在の最高の英語データセットの機械翻訳とウクライナ語コミュニティによって準備された専門的なウクライナ語データセットを使用して作成された、新しく構築されたウクライナ語命令データセットで命令微調整されています。詳細情報については、ブログ記事を確認してください(英語、ウクライナ語)。
ベンチマークと結果


モデルは、一連の標準的な英語ベンチマーク、それらのウクライナ語翻訳バージョン、および収集したウクライナ語固有のベンチマークで評価されています。
- Winogrande challenge:世界知識と理解能力のテスト
- Hellaswag:文章完成能力のテスト
- ARC Easy/Challenge:論理的推論能力のテスト
- TriviaQA:雑学知識のテスト
- GSM-8k:高校数学の選択問題の解決能力のテスト
- MMLU:多くのトピックに関する知識のテスト
- IFEval:命令追従能力のテスト
- ZNO:ウクライナ語と文学、歴史、数学、地理に関するウクライナ高校カリキュラムの知識のテスト
これらのベンチマークは、モデルの論理的推論、数学、知識、言語理解などのスキルをテストしており、https://github.com/insait-institute/lm-evaluation-harness-uk で提供されています。上のグラフは、MamayLM 9Bの他の大規模オープンモデルとのパフォーマンスを示しています。結果は、MamayLMのウクライナ語における優れた能力を示しており、これにより、アリババのQwen 2.5 72BやメタのLlama3.1 70Bなどのはるかに大きなモデルを上回ることができます。最後に、モデルは、ベースとなっている元のGoogle Gemma 2モデルから引き継いだ優れた英語の性能を維持しています。

コミュニティフィードバック
MamayLMの改善に役立つコミュニティからのフィードバックを歓迎します。提案がある場合、問題に遭遇した場合、または改善案がある場合は、以下の方法でお知らせください。
実際の使用事例や洞察は、さまざまなユースケースに対するモデルのパフォーマンスと動作を最適化するのに役立ちます。
要約
📄 ライセンス
MamayLMはGemma Terms of Useの下で配布されています。