🚀 Maral 7B Alpha 1
Maral 7B Alpha 1 是一款专注于波斯语的大型语言模型。它基于 Mistral 构建,并在 Alpaca Persian 数据集上进行训练,不仅能处理波斯语任务,也具备生成英语答案的能力。
🚀 快速开始
安装库
pip install transformers accelerate bitsandbytes
注意:bitsandbytes
库仅 8 位版本需要,其他情况并非必需。
推理
大 GPU 上的推理
如果你拥有足够大的 GPU(如 A100),可以使用以下代码:
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
import torch
model_name_or_id = "MaralGPT/Maral-7B-alpha-1"
model = AutoModelForCausalLM.from_pretrained(model_name_or_id, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name_or_id)
prompt = "در سال ۱۹۹۶ چه کسی رییس جمهور آمریکا بود؟"
prompt = f"### Human:{prompt}\n### Assistant:"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
generation_config = GenerationConfig(
do_sample=True,
top_k=1,
temperature=0.5,
max_new_tokens=300,
pad_token_id=tokenizer.eos_token_id
)
outputs = model.generate(**inputs, generation_config=generation_config)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
小 GPU(消费级硬件/免费 Colab)上的推理
代码与上述基本相同,但有细微差别:
- 确保
bitsandbytes
正确安装。
- 模型加载方式应为
model = AutoModelForCausalLM.from_pretrained(model_name_or_id, load_in_8bit=True, torch_dtype=torch.bfloat16, device_map="auto")
。
在 Google Colab 免费版上,可能会遇到内存问题。在模型加载时使用 low_cpu_mem_usage=True
可能会有帮助。
✨ 主要特性
- 语言支持:专注于波斯语,同时也能处理英语。
- 基于 Mistral:以 Mistral 为基础模型,继承其优秀特性。
- 特定数据集训练:在 Alpaca Persian 数据集上进行训练,更适应波斯语场景。
💻 使用示例
基础用法
提示格式
该模型需要使用 Guanaco 格式,如下所示:
### Human: <提示内容>
### Assistant: <回答内容>
在代码中,你可以这样编写提示:
prompt = "در سال ۱۹۹۶ چه کسی رییس جمهور آمریکا بود؟"
prompt = f"### Human:{prompt}\n### Assistant:"
高级用法
4 位量化
如果你想使用 4 位量化,可以在 这里 获取 PEFT。也可以在 这里 找到 Google Colab 笔记本。
📚 详细文档
“Maral” 的含义
Maral 是 马鹿 的波斯语名称,马鹿是伊朗本土的鹿种。选择这个名字有几个原因,一是出于对环境问题的关注,二是因为这是一款由伊朗人开发的波斯语大语言模型,理应拥有一个具有伊朗特色的名字。
已知问题
- 语法和幻觉问题:模型在语法方面(特别是波斯语)能给出类似 GPT - 3.5 水平的答案,但会产生严重的幻觉问题。可以通过使用更好的数据集和训练方法(如 DPO)来解决。
- 信息误导问题:在处理波斯语推理问题时,模型可能会生成误导性答案。
- 资源需求问题:模型规模较大,需要大量资源才能正常运行。后续可能会提供 GPTQ 或 GGUF 版本。
- 提示格式问题:虽然提示格式有效,但由于未将
eos_token
和 bos_token
替换为自定义的,模型可能会生成不必要的信息。
- 重复问题:模型可能会重复自身内容。临时解决方案是将温度参数保持在 1 以下,根据测试,0.5 到 0.7 之间是比较合适的范围。
👥 团队成员
🙏 特别感谢
- Mistral 团队提供了优秀的开源基础模型。
- Sina Rashidi 将 Alpaca 数据集翻译成波斯语。
- Jupyto 团队提供基础设施支持。
📄 许可证
本项目采用 MIT 许可证。
属性 |
详情 |
模型类型 |
基于 Mistral 的大型语言模型 |
训练数据 |
sinarashidi/alpaca - persian |
库名称 |
transformers |
语言支持 |
英语、波斯语 |