🚀 RakutenAI-7B-chat
RakutenAI-7B-chatは、日本語の大規模言語モデル(LLM)の世界に最新技術をもたらすプロジェクトです。このモデルは、日本語理解のベンチマークで高いスコアを達成し、英語のテストセットでも同様のモデルと競争力を持ちます。
🚀 クイックスタート
RakutenAI-7Bは、日本語LLMの分野に革新をもたらすシステマティックな取り組みです。このモデルは、日本語理解のベンチマークで最高のスコアを達成し、英語のテストセットでもOpenCalm、Elyza、Youri、Nekomata、Swallowなどの同様のモデルの中でも競争力のあるパフォーマンスを維持しています。
技術レポートはarXivで入手できます。
Kamataらによる独立した評価では、llm-jp-evalとJapanese MT-benchの加重平均を使用したNejumi LLMリーダーボード Neoにおいて、2024年3月22日現在、RakutenAI-7Bのチャット/命令調整バージョンが同サイズのオープンLLMの中で最高のパフォーマンスを示しています。
✨ 主な機能
- 高性能:日本語理解のベンチマークで最高のスコアを達成し、英語のテストセットでも競争力のあるパフォーマンスを維持。
- Mistralアーキテクチャ:Mistralモデルアーキテクチャを利用し、Mistral-7B-v0.1の事前学習チェックポイントをベースにしています。
- 拡張語彙:Mistralの語彙を32kから48kに拡張し、日本語の文字あたりのトークン率を向上させています。
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "Rakuten/RakutenAI-7B-chat"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype="auto", device_map="auto")
model.eval()
chat = [
{"role": "system", "content": "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."},
{"role": "user", "content": "How to make an authentic Spanish Omelette?"},
]
input_ids = tokenizer.apply_chat_template(chat, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(device=model.device)
tokens = model.generate(
input_ids,
max_length=4096,
do_sample=False,
num_beams=1,
pad_token_id=tokenizer.eos_token_id,
)
out = tokenizer.decode(tokens[0][len(input_ids[0]):], skip_special_tokens=True)
print("ASSISTANT:\n" + out)
print()
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "Rakuten/RakutenAI-7B-chat"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype="auto", device_map="auto")
model.eval()
requests = [
"「馬が合う」はどう言う意味ですか",
"How to make an authentic Spanish Omelette?",
]
system_message = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: {user_input} ASSISTANT:"
for req in requests:
input_req = system_message.format(user_input=req)
input_ids = tokenizer.encode(input_req, return_tensors="pt").to(device=model.device)
tokens = model.generate(
input_ids,
max_new_tokens=1024,
do_sample=True,
pad_token_id=tokenizer.eos_token_id,
)
out = tokenizer.decode(tokens[0][len(input_ids[0]):], skip_special_tokens=True)
print("USER:\n" + req)
print("ASSISTANT:\n" + out)
print()
print()
📚 ドキュメント
モデルの詳細
制限事項とバイアス
RakutenAI-7Bモデルは、幅広いトピックについて人間に近いテキストを生成することができます。しかし、すべてのLLMと同様に、制限事項があり、偏った、不正確な、または不安全な出力を生成する可能性があります。使用する際には、注意と判断力を行使してください。
📄 ライセンス
このモデルはApache License, Version 2.0の下でライセンスされています。
引用
RakutenAI-7Bモデルの研究を引用する場合は、以下を使用してください。
@misc{rakutengroup2024rakutenai7b,
title={RakutenAI-7B: Extending Large Language Models for Japanese},
author={{Rakuten Group, Inc.} and Aaron Levine and Connie Huang and Chenguang Wang and Eduardo Batista and Ewa Szymanska and Hongyi Ding and Hou Wei Chou and Jean-François Pessiot and Johanes Effendi and Justin Chiu and Kai Torben Ohlhus and Karan Chopra and Keiji Shinzato and Koji Murakami and Lee Xiong and Lei Chen and Maki Kubota and Maksim Tkachenko and Miroku Lee and Naoki Takahashi and Prathyusha Jwalapuram and Ryutaro Tatsushima and Saurabh Jain and Sunil Kumar Yadav and Ting Cai and Wei-Te Chen and Yandi Xia and Yuki Nakayama and Yutaka Higashiyama},
year={2024},
eprint={2403.15484},
archivePrefix={arXiv},
primaryClass={cs.CL}
}