🚀 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。如果您有建议、遇到任何问题或有改进想法,请通过以下方式与我们联系:
您的实际使用经验和见解对于我们优化模型在各种用例中的性能和行为非常有价值。