language:
模型描述 |
示例输出 |
基准测试结果 |
使用方法 |
训练与微调
模型描述
Persian-mistral 是基于 mistral-7b 微调的版本,专为波斯语问答和自然语言处理任务设计。
示例输出:
示例 1:
- 输入: "درمان اصلی برای افراد مبتلا او آر اس، جایگزینی مایعات و الکترولیت ها در بدن"
- 输出 (训练后): "درمان اصلی برای افراد مبتلا او آر اس، جایگزینی مایعات و الکترولیت ها در بدن است. که به طور معمول از طریق تزریق وریدی استفاده می شود."
- 输出 (训练前): " درمان اصلی برای افراد مبتلا او آر اس، جایگزینی مایعات و الکترولیتها.The most important treatment for people with diarrhea is oral rehydration solution."
示例 2:
- 输入: "سال ۱۹۴۴ متفقین به فرانسه اشغال شده توسط آلمان، در عملیاتی در نرماندی حمله کرده و"
- 输出 (训练后): "سال ۱۹۴۴ متفقین به فرانسه اشغال شده توسط آلمان، در عملیاتی در نرماندی حمله کرده و 150,000 نفر از آنها را کشتند."
- 输出 (训练前): "سال ۱۹۴۴ متفقین به فرانسه اشغال شده توسط آلمان، در عملیاتی در نرماندی حمله کرده و خرج گرفت.The United States and France have condemned the killing of a French aid worker in Afghanistan by Tal"
基准测试结果
模型 |
数据集 |
得分 |
base-model-7b |
ARC-easy |
41.92% |
base-model-7b |
ARC-easy |
39.12% |
fa-model-7b |
ARC-easy |
37.89% |
base-model-7b |
ARC-challenge |
37.12% |
fa-model-7b |
ARC-challenge |
39.29% |
使用方法
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("aidal/Persian-Mistral-7B")
model = AutoModelForCausalLM.from_pretrained("aidal/Persian-Mistral-7B")
input_text = "پایتخت ایران کجاست؟"
input_ids = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**input_ids)
print(tokenizer.decode(outputs[0]))
训练与微调
- 扩展分词器: 基础 Mistral 分词器不支持波斯语。作为初始步骤,我们在波斯语维基百科语料库上训练了一个 SentencePiece 分词器,随后将其与 Mistral 分词器集成。
- 预训练: 在下一步中,我们扩展了基础模型的嵌入层以匹配波斯语分词器的大小。然后,我们采用 LoRA 方法在三个不同的数据集上训练模型:波斯语维基百科、伊斯兰书籍集和 Khamenei.ir 的内容。
波斯语维基百科:183M 词元, 伊斯兰书籍:55M 词元, Khamenei.ir:9M 词元
- 指令微调: 最后一步,我们使用 LoRA 方法在斯坦福-alpaca 的翻译版本上对模型进行微调,以增强其问答能力。
下图展示了上述步骤: