🚀 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 |
語言支持 |
英語、波斯語 |