🚀 Oolel: ウォロフ語向けの高パフォーマンスなオープン大規模言語モデル
大規模言語モデルにおける数多くのオープンソースの革新にもかかわらず、アフリカの言語は依然として十分に表現されていません。
Soynade Research は、ウォロフ語向けの最初のオープンソース言語モデルであるOolelを開発することで、この状況を変えようとしています。
Oolelは Qwen 2.5 アーキテクチャをベースに構築されており、最先端のAI技術とウォロフ語の深い言語学的知識を組み合わせています。高品質に選りすぐられたデータを使用して、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))
📄 ライセンス
👥 作者