🚀 INSAIT-Institute/MamayLM-Gemma-2-9B-IT-v0.1
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使用條款進行分發。該模型由保加利亞索非亞的索非亞大學聖克萊門特奧裡季斯基分校的INSAIT
創建。

🚀 快速開始
安裝transformers庫
首先,安裝最新版本的transformers庫:
pip install -U 'transformers[torch]'
加載模型
然後,在transformers中加載模型:
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",
)
✨ 主要特性
- 多語言能力:該模型基於Google的Gemma 2 9B開放模型構建,通過在大規模預過濾數據集(總共750億個烏克蘭語和英語數據標記)上進行持續預訓練,結合數據混合和模型合併技術,使模型在保留英語性能的同時,獲得了出色的烏克蘭文化和語言能力。
- 優秀性能:在一系列標準英語基準測試、烏克蘭語翻譯版本測試以及特定的烏克蘭語基準測試中表現出色,能夠超越許多更大規模的模型,如阿里巴巴的Qwen 2.5 72B和Meta的Llama3.1 70B。
- 免費使用:遵循Gemma使用條款,可免費使用。
📦 安裝指南
安裝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
)
指令格式
為了利用指令微調,你的提示應以序列開始標記 <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開放模型構建。通過在大規模預過濾數據集(總共750億個烏克蘭語和英語數據標記)上進行持續預訓練,結合數據混合和模型合併技術,使模型在保留英語性能的同時,獲得了出色的烏克蘭文化和語言能力。
在預訓練階段,使用了各種數據集,包括烏克蘭網絡爬取數據(FineWeb2)、免費可用的數據集(如維基百科)、一系列專業的烏克蘭數據集以及流行英語數據集的機器翻譯。然後,在一個新構建的烏克蘭指令數據集上進行指令微調,該數據集使用當前最佳英語數據集的機器翻譯和烏克蘭社區準備的專業烏克蘭數據集創建。
更多信息請查看我們的博客文章(英文,烏克蘭文)。
基準測試和結果

我們在一系列標準英語基準測試、烏克蘭語翻譯版本測試以及特定的烏克蘭語基準測試中對模型進行了評估:
- Winogrande挑戰:測試世界知識和理解能力
- Hellaswag:測試句子完成能力
- ARC Easy/Challenge:測試邏輯推理能力
- TriviaQA:測試常識知識
- GSM-8k:解決高中數學選擇題
- MMLU:測試多領域知識
- IFEval:測試指令跟隨能力
- ZNO:測試烏克蘭高中課程中烏克蘭語言與文學、歷史、數學和地理的知識
這些基準測試可在https://github.com/insait-institute/lm-evaluation-harness-uk獲取。
推薦參數
為了獲得最佳性能,我們推薦以下文本生成參數:
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
)
原則上,提高溫度也應該能正常工作。
指令格式
為了利用指令微調,你的提示應以序列開始標記 <bos>
開頭,並按照Gemma 2聊天模板進行格式化。<bos>
應僅為聊天序列中的第一個標記。
例如:
<bos><start_of_turn>user
Хто такий Козак Мамай?<end_of_turn>
<start_of_turn>model
也可以通過 apply_chat_template()
方法使用聊天模板。
🔧 技術細節
該模型基於Google的Gemma 2 9B開放模型,通過持續預訓練和指令微調,結合數據混合和模型合併技術,在大規模預過濾數據集上進行訓練,從而獲得了出色的烏克蘭文化和語言能力。
在預訓練階段,使用了多種數據集,包括烏克蘭網絡爬取數據、免費可用的數據集、專業的烏克蘭數據集以及流行英語數據集的機器翻譯。在指令微調階段,使用了新構建的烏克蘭指令數據集,該數據集使用當前最佳英語數據集的機器翻譯和烏克蘭社區準備的專業烏克蘭數據集創建。
📄 許可證
MamayLM遵循Gemma使用條款進行分發。
📋 模型信息
💬 社區反饋
我們歡迎社區提供反饋,以幫助改進MamayLM。如果您有建議、遇到任何問題或有改進想法,請通過以下方式與我們聯繫:
您的實際使用經驗和見解對於我們優化模型在各種用例中的性能和行為非常有價值。