模型简介
模型特点
模型能力
使用案例
🚀 Llama-3.1-Sherkala-8B-Chat
Llama-3.1-Sherkala-8B-Chat(简称Sherkala)是一款最先进的80亿参数指令微调大语言模型(LLM),主要为哈萨克语设计,同时在英语、俄语和土耳其语方面也保持着出色的性能。该模型由Inception(G42旗下公司)、MBZUAI与Cerebras Systems合作开发,利用多语言数据的平衡混合和自定义分词器,克服了哈萨克语数据稀缺的挑战。此模型针对下游任务、安全文本生成和文化对齐进行了优化。
🚀 快速开始
以下是使用该模型的示例代码。以下代码在transformers==4.46.2版本上进行了测试。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path="inceptionai/Llama-3.1-Sherkala-8B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map="auto")
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer.chat_template="{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role']+'<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %} {% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}"
def get_response(text):
conversation = [
{"role": "user", "content": text}
]
input_ids = tokenizer.apply_chat_template(
conversation=conversation,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt").to(device)
# Generate a response
gen_tokens = model.generate(
input_ids,
max_new_tokens=500,
stop_strings=["<|eot_id|>"],
tokenizer=tokenizer
)
# Decode and print the generated text along with generation prompt
gen_text = tokenizer.decode(gen_tokens[0][len(input_ids[0]): -1])
return gen_text
question = 'Қазақстанның жақсы тағамдарын ұсына аласыз ба?'
print(get_response(question))
回复:
- Бешбармақ:这可能是哈萨克斯坦最著名的菜肴。这是一道传统菜肴,将肉(通常是羊肉、牛肉或马肉)煮至软烂,并搭配有小肉块的配菜。通常用手抓着吃,大多搭配汤一起食用。
- Казыбек:这是一种由发酵牛奶制成的传统哈萨克甜点。它以柔软和略带酸味的口感而闻名。可以单独食用,也可以涂抹在面包或汤上。
- Бауырсақ:这是一种用肉和洋葱填充的美味圆形面包。它是许多哈萨克菜肴的基础。
- Қуырылған тауық:这是烤马肉,但它的制作方法很特别。将马肉用调味料和酸奶腌制,然后烤至金黄。
- Шашлык:这类似于烤肉串,在全世界都很有名。烤肉串通常由马肉、羊肉或牛肉等肉块制成,在明火上烤制。
- Борщ:这是一种加入了甜菜根、胡萝卜、土豆和肉的红色汤。这是一道在寒冷天气中经常供应的美味热汤。
- Кәстрөл:这是一道由肉(通常是羊肉或牛肉)、土豆、洋葱和其他蔬菜制成的炖菜。通常搭配面包一起食用。
- Жал-жая:这是一道由羊肉、土豆、洋葱和调味料制成的炖菜。通常搭配煮熟的米饭一起食用。
- Қуырылған кеспе:这是一种由内脏、肉和蔬菜制成的汤。通常搭配面包一起食用。
- Бал шырыны:这是一种由蜂蜜和牛奶制成的甜饮料。它提神又有益健康。
✨ 主要特性
- 多语言支持:主要支持哈萨克语,同时在英语、俄语和土耳其语方面也有出色表现。
- 数据稀缺问题的解决方案:利用多语言数据的平衡混合和自定义分词器,克服了哈萨克语数据稀缺的挑战。
- 优化设计:针对下游任务、安全文本生成和文化对齐进行了优化。
📦 安装指南
文档未提及具体安装步骤,可参考示例代码中的依赖安装:确保安装torch
和transformers
库,示例代码在transformers==4.46.2
版本上进行了测试。
💻 使用示例
基础用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path="inceptionai/Llama-3.1-Sherkala-8B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map="auto")
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer.chat_template="{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role']+'<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %} {% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}"
def get_response(text):
conversation = [
{"role": "user", "content": text}
]
input_ids = tokenizer.apply_chat_template(
conversation=conversation,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt").to(device)
# Generate a response
gen_tokens = model.generate(
input_ids,
max_new_tokens=500,
stop_strings=["<|eot_id|>"],
tokenizer=tokenizer
)
# Decode and print the generated text along with generation prompt
gen_text = tokenizer.decode(gen_tokens[0][len(input_ids[0]): -1])
return gen_text
question = 'Қазақстанның жақсы тағамдарын ұсына аласыз ба?'
print(get_response(question))
📚 详细文档
Sherkala详情
属性 | 详情 |
---|---|
开发方 | Inception(G42旗下公司)、MBZUAI、Cerebras Systems |
支持语言 | 哈萨克语(主要)、英语、俄语、土耳其语 |
输入 | 文本 |
输出 | 生成的文本 |
模型大小 | 80亿参数 |
上下文长度 | 8192个标记 |
技术报告 | Sherkala技术报告 |
许可证 | cc-by-nc-sa-4.0 |
模型架构
Sherkala基于Llama - 3.1 - 8B架构构建,这是一个因果、仅解码器的Transformer模型,采用了RoPE位置编码和分组查询注意力机制。为了更好地捕捉哈萨克语丰富的形态特征,我们将基础词汇表扩展了25%,加入了高频哈萨克语标记。这种扩展减少了分词的冗余性(即每个单词的平均子词数量),提高了训练和推理效率。
训练数据
Sherkala在来自各种来源的453亿个标记上进行持续预训练,涵盖哈萨克语和英语,并加入了俄语和土耳其语,以便通过跨语言能力迁移在哈萨克语上实现更好的性能。预训练数据使用标准技术进行预处理,包括特定语言的标准化、过滤、清理以及使用局部敏感哈希进行去重。
为了实现强大的指令遵循和安全对话生成,Sherkala在大规模多语言指令数据集上进行微调,该数据集包含哈萨克语、英语和俄语的提示 - 响应示例。指令数据集广泛覆盖了所有三种语言的一般任务和能力。同时,还纳入了一个专门的安全数据集(使用直接和对抗性提示混合创建),以减少有害或有偏见的输出,并确保文化对齐。更多信息可在Sherkala技术报告中找到。
训练细节
训练超参数
- 学习率:1.5e - 4
- 批量大小:400万个标记
- 优化器:AdamW(β1 = 0.9,β2 = 0.95,ε = 1e - 5)
- 权重衰减:0.1
- 梯度范数裁剪:1.0
- 学习率调度:
- 线性预热(110步)
- 10倍余弦衰减直至11433步
训练基础设施
- 训练过程在Cerebras Condor Galaxy 2(CG - 2)AI超级计算机上进行。
- 在16个Cerebras CS - 2系统上执行训练。
- 并行性:跨多个CS - 2系统的纯数据并行。
评估
Sherkala在下游任务、开放式生成和安全指标方面进行了广泛评估。以下各节详细介绍评估结果。
下游评估
使用lm - evaluation - harness
在零样本设置下,在哈萨克语、俄语和英语的多个任务上对Sherkala进行基准测试。评估标准涵盖多个维度,包括:
- 知识:模型回答事实性问题的能力。
- 推理:模型回答需要推理的问题的能力。
- 错误信息/偏差:评估模型生成虚假或误导性信息的可能性以及其中立性。
哈萨克语基准测试结果
模型 | AVG | KazMMLU | MMLU | Belebele | HS | PIQA | BoolQA | SIQA | ARC | OBQA | NIS | COPA | T - QA | CS - Pairs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BLOOM (7.1B) | 37.6 | 29.3 | 27.9 | 26.4 | 29.9 | 52.0 | 62.1 | 36.7 | 23.6 | 33.6 | 22.0 | 47.2 | 49.2 | 49.1 |
BLOOMZ (7.1B) | 36.9 | 29.2 | 27.8 | 22.1 | 30.4 | 50.8 | 54.4 | 36.8 | 24.4 | 31.0 | 23.0 | 51.8 | 48.1 | 50.1 |
Gemma - 2 (9B) | 35.7 | 26.1 | 27.5 | 26.0 | 28.3 | 51.9 | 62.0 | 33.5 | 23.6 | 28.4 | 17.0 | 45.2 | 47.1 | 47.5 |
Gemma - 2 - it (9B) | 36.9 | 31.4 | 28.4 | 23.8 | 27.9 | 51.0 | 63.5 | 36.0 | 24.0 | 30.6 | 22.0 | 48.8 | 49.3 | 42.6 |
Qwen - 2.5 (7B) | 38.5 | 35.1 | 31.3 | 26.3 | 31.2 | 53.4 | 54.8 | 38.0 | 27.1 | 30.2 | 36.0 | 46.0 | 48.0 | 42.6 |
Qwen - 2.5 - Instruct (7B) | 40.8 | 37.8 | 33.2 | 31.1 | 31.5 | 52.3 | 60.9 | 38.1 | 27.8 | 31.6 | 38.0 | 47.2 | 51.0 | 49.3 |
LLama3.1 (8B) | 39.8 | 38.3 | 31.3 | 25.9 | 37.8 | 57.2 | 63.7 | 38.1 | 29.6 | 32.8 | 20.0 | 47.8 | 51.3 | 43.9 |
LLama3.1 - Instruct (8B) | 40.4 | 38.9 | 32.4 | 27.0 | 37.5 | 57.5 | 67.5 | 37.9 | 30.3 | 32.6 | 22.0 | 48.2 | 49.7 | 43.2 |
LLama3.1 - KazLLM - 1.0 (8B) | 43.7 | 37.0 | 31.5 | 27.8 | 46.0 | 62.8 | 69.8 | 44.7 | 35.5 | 34.2 | 32.0 | 50.4 | 50.9 | 45.0 |
Irbis - 7b - v0.1 (7B) | 37.7 | 29.5 | 27.8 | 26.1 | 31.3 | 53.9 | 52.4 | 37.8 | 24.8 | 30.0 | 25.0 | 54.4 | 46.6 | 50.9 |
mGPT - 13B (13B) | 37.7 | 28.5 | 26.7 | 27.9 | 31.4 | 54.6 | 56.4 | 38.5 | 24.0 | 32.0 | 23.0 | 49.4 | 47.9 | 49.8 |
Sherkala (Ours) | 45.7 | 51.6 | 37.7 | 25.9 | 53.1 | 68.1 | 66.9 | 42.2 | 38.1 | 37.0 | 18.0 | 51.0 | 50.3 | 54.3 |
Sherkala - chat (Ours - chat) | 47.6 | 41.4 | 34.6 | 30.6 | 55.2 | 65.9 | 75.8 | 48.1 | 42.9 | 37.4 | 28.0 | 53.2 | 52.5 | 53.3 |
平均分(AVG)代表所有任务的平均性能,数值越高表示在所有指标上的结果越好。缩写“HS”、“ARC”、“OBQA”、“NIS”、“T - QA”和“CS - Pairs”分别对应HellaSwag、ARC - Challenge(Easy)、OpenBookQA、NIS - Math和TruthfulQA以及CrowS - Pairs。
英语基准测试结果
模型 | AVG | MMLU | RACE | HS | PIQA | BoolQA | SIQA | ARC | OBQA | T - QA | CrowS - Pairs |
---|---|---|---|---|---|---|---|---|---|---|---|
BLOOM (7.1B) | 48.5 | 29.1 | 36.5 | 59.6 | 73.6 | 62.2 | 46.5 | 33.4 | 35.8 | 38.9 | 68.9 |
BLOOMZ (7.1B) | 57.0 | 36.7 | 45.6 | 63.1 | 77.4 | 90.7 | 59.7 | 43.6 | 42.0 | 45.2 | 65.6 |
Gemma - 2 (9B) | 39.4 | 27.4 | 27.8 | 33.2 | 59.1 | 62.2 | 37.6 | 24.2 | 26.4 | 46.4 | 49.3 |
Gemma - 2 - it (9B) | 53.2 | 37.7 | 46.7 | 65.4 | 69.5 | 80.1 | 44.1 | 40.7 | 29.6 | 62.1 | 56.5 |
Qwen - 2.5 (7B) | 60.8 | 44.0 | 41.4 | 78.9 | 79.9 | 84.5 | 51.9 | 51.4 | 47.2 | 56.4 | 71.9 |
Qwen - 2.5 - Instruct (7B) | 62.1 | 46.7 | 46.3 | 80.5 | 80.3 | 86.4 | 48.7 | 54.9 | 48.8 | 64.8 | 63.2 |
LLama3.1 (8B) | 56.6 | 39.6 | 38.9 | 79.0 | 81.3 | 65.3 | 52.6 | 53.5 | 45.0 | 45.2 | 65.5 |
LLama3.1 - Instruct (8B) | 60.1 | 41.7 | 44.9 | 79.2 | 81.0 | 79.4 | 52.7 | 55.0 | 43.6 | 54.0 | 69.0 |
LLama3.1 - KazLLM - 1.0 (8B) | 58.6 | 39.7 | 44.3 | 77.9 | 80.8 | 72.8 | 51.5 | 54.6 | 43.0 | 51.0 | 70.0 |
Sherkala (Ours) | 58.7 | 46.8 | 39.2 | 78.3 | 80.5 | 77.2 | 51.3 | 52.1 | 46.0 | 49.6 | 65.9 |
Sherkala - chat (Ours - chat) | 59.1 | 40.5 | 41.6 | 78.1 | 79.1 | 84.8 | 58.0 | 52.6 | 42.6 | 51.3 | 62.2 |
这里的平均分代表所有任务的平均得分,所有指标上分数越高越好。“HS”、“ARC”、“OBQA”、“T - QA”和“CS - Pairs”分别表示HellaSwag、ARC - Challenge(Easy)、OpenBookQA、TruthfulQA和CrowS - Pairs。关于评估的更多详细信息,包括俄语的额外结果,可在Sherkala技术报告中找到。
生成评估
我们进一步使用GPT - 4作为评判者评估了开放式文本生成。下表显示了模型在MT和Vicuna基准测试中,在哈萨克语、俄语和英语上的平均生成得分(带标准差):
模型 | 哈萨克语MT (avg ± sd) | 哈萨克语Vicuna (avg ± sd) | 俄语MT (avg ± sd) | 俄语Vicuna (avg ± sd) | 英语MT (avg ± sd) | 英语Vicuna (avg ± sd) |
---|---|---|---|---|---|---|
GPT - 4o | 8.81 ± 1.51 | 9.32 ± 0.61 | 8.89 ± 1.59 | 9.79 ± 0.41 | 8.36 ± 1.35 | 9.03 ± 0.59 |
Qwen - 2.5 - 7B - Instruct | 3.52 ± 3.52 | 3.23 ± 1.73 | 5.81 ± 2.36 | 6.05 ± 3.07 | 7.40 ± 1.85 | 8.06 ± 1.22 |
Llama - 3.1 - 8B - Instruct | 3.76 ± 2.11 | 3.75 ± 1.91 | 0.85 ± 1.20 | 0.82 ± 1.55 | 6.55 ± 2.03 | 7.41 ± 1.28 |
KazLLM - 1.0 - 8B | 3.98 ± 2.15 | 4.88 ± 2.01 | 0.72 ± 1.06 | 0.28 ± 0.71 | 6.00 ± 2.15 | 6.66 ± 1.24 |
Sherkala - chat | 5.99 ± 2.73 | 7.39 ± 1.89 | 1.02 ± 1.41 | 0.97 ± 1.70 | 5.78 ± 2.43 | 6.55 ± 1.59 |
预期用途
我们在以下许可下发布Sherkala:
- Meta的Llama 3.1社区许可证,用户必须遵守许可证的条款和条件、Meta的[可接受使用政策](https://www.llama.com/llama3/use - policy/)、Meta的隐私政策以及适用于特定用例和地区的适用政策、法律和法规;
- CC BY - NC - SA 4.0许可证,用户必须遵守[许可证](https://creativecommons.org/licenses/by - nc - sa/4.0/legalcode.en)的条款和条件。
Sherkala旨在用于哈萨克语自然语言处理研究,包括:
- 聊天助手:为哈萨克语使用者量身定制的对话代理。
- 问答与内容生成:能够提供符合文化背景、事实准确且上下文丰富的响应的系统。
- 多语言自然语言处理:支持哈萨克语以及英语、俄语和土耳其语的应用程序。
我们相信许多受众将从我们的模型中受益:
- 学术界:从事哈萨克语自然语言处理研究的人员。
- 企业:针对哈萨克语受众的公司。
- 开发者:在应用程序中集成哈萨克语功能的人员。
超出适用范围的使用
虽然Sherkala是一款强大的语言模型,适用于哈萨克语和英语,但了解其局限性和潜在的滥用可能性至关重要。
不建议将Sherkala用于以下方面:
- 商业用途:Sherkala不得用于任何商业目的,包括任何主要旨在获取商业利益或金钱补偿的用途。
- 恶意使用:该模型不应用于生成有害、误导性或不适当的内容。这包括但不限于:
- 生成或传播仇恨言论、暴力或歧视性内容;
- 传播错误信息或虚假新闻;
- 从事非法活动或宣传非法活动;
- 处理敏感信息:该模型不应用于处理或生成个人、机密或敏感信息。
- 所有语言的通用化:Sherkala仅针对哈萨克语和英语进行了优化。不应假设它在其他语言或方言上具有同等的熟练度。
- 高风险决策:在没有人工监督的情况下,该模型不应用于做出高风险决策。这包括医疗、法律、金融或安全关键决策等。
🔧 技术细节
模型架构
基于Llama - 3.1 - 8B架构,采用RoPE位置编码和分组查询注意力机制,扩展词汇表以提升哈萨克语处理能力。
训练数据处理
使用标准技术对预训练数据进行预处理,包括特定语言的标准化、过滤、清理和去重。
训练超参数和基础设施
明确了学习率、批量大小、优化器等超参数,以及在Cerebras Condor Galaxy 2(CG - 2)AI超级计算机上的训练设置。
📄 许可证
Sherkala根据CC - BY - NC - SA 4.0许可证提供。除非遵守许可证规定,否则不得使用Sherkala。您可以在https://creativecommons.org/licenses/by - nc - sa/4.0/获取许可证副本。
除非适用法律要求或书面同意,否则Sherkala按“原样”分发,不提供任何形式的明示或暗示保证或条件。请参阅许可证条款,了解许可证下的具体语言权限和限制。
⚠️ 重要提示
尽管已采取广泛措施减轻偏差并确保安全输出,但Sherkala与所有大语言模型一样,仍可能产生不准确、误导性或有偏差的内容。用户在敏感或高风险环境中部署该模型时,应采取额外的安全措施并进行全面评估。
💡 使用建议
使用Sherkala即表示您承认并接受,与任何大语言模型一样,它可能会生成不正确、误导性和/或冒犯性的信息或内容。该信息不旨在作为建议,不应以任何方式依赖,我们也不对其使用产生的任何内容或后果负责。我们一直在努力开发功能更强大的模型,因此欢迎您提供有关该模型的任何反馈。
注意:截至2025年2月20日,模型文件已更新到最新版本。
引用信息
@misc{koto2025sherkala,
title={Llama-3.1-Sherkala-8B-Chat: An Open Large Language Model for Kazakh},
author={Fajri Koto, Rituraj Joshi, Nurdaulet Mukhituly, Yuxia Wang, Zhuohan Xie, Rahul Pal, Daniil Orel, Parvez Mullah, Diana Turmakhan, Maiya Goloburda, Mohammed Kamran, Samujjwal Ghosh, Bokang Jia, Jonibek Mansurov, Mukhammed Togmanov, Debopriyo Banerjee, Nurkhan Laiyk, Akhmed Sakip, Xudong Han, Ekaterina Kochmar, Alham Fikri Aji, Aaryamonvikram Singh, Alok Anil Jadhav, Satheesh Katipomu, Samta Kamboj, Monojit Choudhury, Gurpreet Gosal, Gokul Ramakrishnan, Biswajit Mishra, Sarath Chandran, Avraham Sheinin, Natalia Vassilieva, Neha Sengupta, Larry Murray, Preslav Nakov},
year={2025},
eprint={2503.01493},
archivePrefix={arXiv},
primaryClass={cs.CL}
}



