🚀 Oolel:面向沃洛夫語的高性能開源大語言模型
儘管大語言模型領域有眾多開源創新成果,但非洲語言在其中的代表性仍然不足。索亞納德研究公司(Soynade Research) 正通過Oolel改變這一局面,Oolel是首個面向沃洛夫語的開源語言模型。
Oolel基於通義千問2.5(Qwen 2.5) 架構構建,將最先進的人工智能技術與深厚的沃洛夫語語言學專業知識相結合。通過精心策劃的高質量數據,我們對Oolel進行了訓練和優化,使其能夠處理以下任務:
- 檢索增強生成(RAG):支持使用英語、法語或沃洛夫語上下文回答沃洛夫語查詢。
- 英語與沃洛夫語的雙向翻譯
- 沃洛夫語自然文本生成
- 沃洛夫語數學運算
- 以及許多其他標準自然語言處理(NLP)任務:
🚀 快速開始
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
device = "cuda"
model = AutoModelForCausalLM.from_pretrained(
"soynade-research/Oolel-v0.1",
torch_dtype = torch.bfloat16,
device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("soynade-research/Oolel-v0.1")
def generate_response(messages, max_new_tokens=1024, temperature=0.1):
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)
generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=max_new_tokens, temperature=temperature)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return response
高級用法
以下是一些不同任務的使用示例:
- 翻譯任務
system_prompt = "You're a Wolof AI assistant. Please always provide detailed and useful answers to the user queries."
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Translate to Wolof: Bassirou Diomaye Faye is the new Senegalese president. He is 44 years old"}
]
print(generate_response(messages))
- 代碼生成
system_prompt = "You're a Wolof AI assistant. Please always provide detailed and useful answers to the user queries"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Bindal ab klaas Python buy wone ni ñuy jëfandikoo dataframe yi ci Pandas"}
]
print(generate_response(messages))
- 問題解決
system_prompt = "You're a Wolof AI assistant. Please always provide detailed and useful answers to the user queries."
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Ndax nga mën ma won ni ñuy resolver problème bii: Fatou dafa jënd 3 kilo ceeb, 2 kilo diw ak 5 kilo sukër. Ceeb gi wenn kilo 500 CFA la, diw gi 1200 CFA kilo bi, sukër gi 750 CFA kilo bi. Ñaata la wara fay?"}
]
from pprint import pprint
pprint(generate_response(messages))
- 文本生成(例如故事生成)
system_prompt = "You are a skilled Wolof storyteller (Gewël) with deep knowledge of African folktales and traditions. Write engaging stories in Wolof that reflect African cultural values and wisdom."
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Bindal ab léeb ci gaynde gi lekk muus mi"}
]
print(generate_response(messages, temperature=0.9))
- 多輪對話
Oolel未針對多輪對話進行優化,但你可以嘗試一下!
messages = [
{"role": "user", "content": "Wax ma clan mooy CEDEAO ? Ci lan la liggeey?"},
{"role": "assistant", "content": "CEDEAO mooy 'organisation' gu boole reew yi nekk ci pennc Afrika bi. Mu ngi sukkandiku ci wàll économie, politig, ak déggoo diggante reew yi"},
{"role": "user", "content": "ñaata reew ñoo ci bokk?"}
]
print(generate_response(messages))
⚠️ 重要提示
務必添加系統提示!
👨💻 作者
📄 許可證
本項目採用Apache-2.0許可證。