日本語用として開発されたLLMリンク集を紹介してきます!
なぜ日本語のLLMが重要なのか?🗽
最も分かりやすいのは、meta社の発表したllama2シリーズでした。
「GPTに迫る性能を持つ最高精度のLLMを公開!」
とても素敵な内容だったのですが、日本人は触ってみると分かります。
「何を聞いても英語で返してくるじゃん。。。😭」
そうなんです。特に外国の方にとって、「日本語で出力できること」はあまり重要ではなく、正直軽視されています。OpenAIのGPT系こそ、とても高い日本語能力を保有していますが、むしろOpenAIのGPTが日本語に高精度対応していたのが特殊だったのです。
と、言うわけで、日本語LLMと、その開発している会社を紹介します。ぜひ頑張ってほしいです🔥
上から見るよりも、目次からジャンプするのをお勧めします🎈
日本語LLM一覧
【Elyza社】Elyzaシリーズ
■URL(hugging face)
13Bのチャットモデル
7Bのチャットモデル
■チャットテンプレート
B_INST, E_INST = "[INST]", "[/INST]"
B_SYS, E_SYS = "<<SYS>>\n", "\n<</SYS>>\n\n"
DEFAULT_SYSTEM_PROMPT = "あなたは誠実で優秀な日本人のアシスタントです。"
text = "クマが海辺に行ってアザラシと友達になり、最終的には家に帰るというプロットの短編小説を書いてください。"
prompt = "{bos_token}{b_inst} {system}{prompt} {e_inst} ".format(
bos_token=tokenizer.bos_token,
b_inst=B_INST,
system=f"{B_SYS}{DEFAULT_SYSTEM_PROMPT}{E_SYS}",
prompt=text,
e_inst=E_INST,
)
※Hugging face公式サイトより引用
なお、いろいろ変数を入れると最終的には
"<s>[INST] <<SYS>>\n"あなたは誠実で優秀な日本人のアシスタントです。"\n<</SYS>>{prompt} [/INST]
となります。
■使用したインストラクションデータセット
非公開
■商用利用
llama2ライセンスに基づき可能
■性能と所感
高いです。GPTほどではないですが、日本語のLLM開発ベンチャー企業としては常に上位にいます。
また、ELYZA社は継続してモデルやデータセットの開発に取り組んでおり、最近は70Bのモデルのでもサイトを公開しています。
最近このElyza社はKDDIと資本業務提携を締結し話題になりました。
LLMの開発はまだまだ黎明期であり、積極的に学習用のデータの作成、モデルの公開、評価用データの公開など日本のLLM開発に大きく貢献していて素敵です🎈
【rinna社】rinnaシリーズ
rinna社は、とてもたくさんの生成AIモデルを公開しています。直近のモデルだとnekomataシリーズを公開しています。
■URL(hugging face)
14Bのチャットモデル
7Bのチャットモデル
を公開しています。
■チャットテンプレート
instruction = "次の日本語を英語に翻訳してください。"
input = "大規模言語モデル(だいきぼげんごモデル、英: large language model、LLM)は、多数のパラメータ(数千万から数十億)を持つ人工ニューラルネットワークで構成されるコンピュータ言語モデルで、膨大なラベルなしテキストを使用して自己教師あり学習または半教師あり学習によって訓練が行われる。"
prompt = f"""
以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。
### 指示:
{instruction}
### 入力:
{input}
### 応答:
"""
■使用したインストラクションデータセット
モデル公開しすぎ問題なのですが、原則公開データセットで行っているようです。
詳細は上記モデルURLから参照してください
■商用利用
nekomata系は、ベースとなったQwenシリーズのライセンスを継承しています。
Qwenライセンスは、llamaライセンスと似た形のライセンスで、1億アクティブユーザーを超えるサービスでなければ商用利用可能と解釈できます。
■性能と所感
[アップデート予定]性能面はこれから評価させてください。ベンチマーク上は良さそうです。
rinna社は、LLMのブームになる前からLLM含めた生成AIに関する開発を行っており、技術力は申し分ないです。言語モデルだけではなく、画像生成のモデルや、音声のベクトル化など幅広くモデルを公開しています。素敵な企業です。今後も頑張ってください🍎
【東工大+産総研】Swallowシリーズ
東京工業大学情報理工学院の岡崎研究室と横田研究室と産総研で開発されているLLMです。
■URL(hugging face)
7Bのチャットモデル
13Bのチャットモデル
70Bのチャットモデル
■チャットテンプレート
二種類記載があります。
〇 inputあり
"""以下に、あるタスクを説明する指示があり、それに付随する入力が更なる文脈を提供しています。リクエストを適切に完了するための回答を記述してください。
### 指示:
{instruction}
### 入力:
{input}
### 応答:"""
〇 inputなし
"""以下に、あるタスクを説明する指示があります。リクエストを適切に完了するための回答を記述してください。
### 指示:
{instruction}
### 応答:"""
(指示が消えるのではなくて、inputが消えるのか、と少し思いました)
■使用したインストラクションデータセット
hugging faceの記載を引用します
The following datasets were used for the instruction tuning.
■商用利用
llama2ライセンスです。ほぼ可能。
■性能と所感
Swallowの一番の良さはやはり70Bのモデルです!触ると分かります!13Bのモデルや7Bのモデルにある不安定さが、やはり70Bのモデルはずしんと、安定感があります。
一方、全体的に、公開データセットを用いて開発されています。現状、特に日本語は「高品質で」「大量な」インストラクションデータが公開されておらず、精度面はデータセットにより少しキャップされてしまっているかなという感覚です。
おそらく日本語モデルで70B級を公開した最初の取り組みだったのではないかと思います。コストもかかるし技術もなければ出来ないと思います。凄いですね!
【東大松尾研究室】weblabシリーズ
松尾研究室が開発したLLMです。
■URL
■チャットテンプレート
text = f"""以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
### 指示:
{text}
### 応答:"""
■インストラクションデータセット
Instruction-supervised-finetuningThe model was finetuned on a subset records from a mixture of the following dataset. Training epoch: 1.
Alpaca (English)
Alpaca (Japanese translation)
Flan 2021 (English)
Flan CoT (English)
Flan Dialog (English)
https://huggingface.co/matsuo-lab/weblab-10b-instruction-sftより引用
■商用利用
不可(ライセンスが、cc-by-ncであるため)
■性能と所感
上記で使用したインストラクションデータに非商用データが含まれていたかもしれません。少し残念ですね。
【CyberAgent社】calmシリーズ
■URL
7Bのチャットモデル
■チャットテンプレート
USER: {user_message1}
ASSISTANT: {assistant_message1}
■インストラクションデータセット
記載見当たらず
■商用利用
Apache-2.0で公開されています。商用利用可能です。
■性能
CyberAgent社の公開したLLMで性能はそこそこです。
多くのLLMがllama2をベースに継続事前学習しているのに対し、calmは初期パラメータから開発している点が素敵ですね🌸
【Prefferd Networks社】PlaMoシリーズ
■URL
13Bのチャットモデル
(ncはnoncommercialなので注意)
■チャットテンプレート
def generate_prompt(messages: list) -> str:
sep = "\n\n### "
prompt = [
"以下はタスクを説明する指示で、文脈を説明した入力とペアになっています。",
"要求を適切に補完するよう応答を書いてください。",
]
roles = {"instruction": "指示", "response": "応答", "input": "入力"}
for msg in messages:
prompt.append(sep + roles[msg["role"]] + ":\n" + msg["content"])
prompt.append(sep + roles["response"] + ":\n")
return "".join(prompt)
※公式hugging faceのページから引用
このような関数になっていますが、色々代入すると以下のような形になります。
### 指示:
{msg["content"]}
### 応答:
最初にsep=”\n\n### “と改行コードが入るので、若干上限に膨らんで見えますね
■インストラクションデータセット
Training Dataset
※hugging faceの公式サイトより引用
■商用利用
可能(Apache License 2.0)
■性能
性能はそこそこです。13B級のパラメータの中で上位にいるのはあまりみかけません
PFNのLLMはLLaMaのアーキテクチャを回収した同時のモデル構造でスクラッチから学習しています。とても高い技術力で今後に期待ですね♪
カラスシリーズ
【lightblue社】Karas/Qarasuシリーズ
■URL
7Bのapache2.0のモデル
14BのQwenベースのモデル
72BのQwenベースのモデル
■チャットテンプレート
tokenizer_config.jsonに以下の記述であります
"chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content']}}{% if (loop.last and add_generation_prompt) or not loop.last %}{{ '<|im_end|>' + '\n'}}{% endif %}{% endfor %}{% if add_generation_prompt and messages[-1]['role'] != 'assistant' %}{{ '<|im_start|>assistant\n' }}{% endif %}",
※使う際には、tokenizer.apply_chat_templateを使って適用することを推奨します。
ざっくり見ると以下の形です。
<|im_start|>system
You are a helpful assistant<|im_end|>
<|im_start|>user
{message["content"]}<|im_end|>
<|im_start|>assistant
という感じになりそうです。
■インストラクションデータセット
モデルによって違いますが、Kawasu7B/Qarasu14Bの場合は以下のサイトに記載がありました
- RAGベースの質問応答データセット(約25万例)
- カテゴリーベースのプロンプト応答データセット(約25万例)
- Chain-of-Thought Orcaスタイルのデータセット(約4万例)
※これらのデータセットを公開する予定はございません。
またこれらを補完するべく以下のオープンソースデータセットを追加しました。
- OASST(日本語の会話のみ)
- ShareGPT(日本語の会話のみ)
- Augmxnt(airoboros、slimorca、ultrafeedback、airoboros_ja_newのみ)
ShareGPT使っています。
■商用利用
KarasuシリーズのライセンスはApache2.0
QarasuシリーズはQwenライセンスを継いでおり、1億人以下のアクティブユーザーで商用利用可能です。
ただし、ShareGPTの商用利用はグレーです。そのため、Karasu/Qarasuシリーズの商用利用可否は、このShareGPTの可否に引っ張られてしまい、微妙なラインです。
■性能
ベンチマーク上のスコアはとても高い性能を感じます。他の商用利用可能なデータセットはShareGPTを使っていない場合が多く、直接的な比較は難しいかもしれません。
72BのモデルをLoRAとはいえ、チューニングした技術は高いものを感じます。ShareGPTなしバージョンのモデルがリリースされ、商用利用可否がはっきりすれば嬉しいですね♪
【楽天社】Rakuten-AIシリーズ
■URL
7Bのチャットモデル
■チャットテンプレート
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:"
※上記楽天のhugging face URLから引用
なかなか珍しいタイプのチャット形式で、改行コードが1つもありません。
■インストラクションデータセット
Instruction-Tuning Dataset: We fine-tune our foundation model to create RakutenAI-7B-instruct and RakutenAI-7B-chat using a mix of open source and internally hand-crafted datasets. We use train part of the following datasets (CC by-SA License) for instruction-tuned and chat-tuned models:
JSNLI
RTE
KUCI
BELEBELE
JCS
JNLI
Dolly-15K
OpenAssistant1
Limitations and Bias
ライセンス的には問題のないデータセットです。また、チャットのデータよりもインストラクション(選択式クイズのタスクなど)のデータが多いです。
■商用利用
可能です(apache-2.0)
■性能
これから確認します。ベンチマーク上は良さそうに見えます
大企業からLLMが公開されましたね。ベンチマークはとても良さそうです。学習データからわかるように、ベンチマークでの精度を重要視しているように見えており、実際その結果が表れている形です。一方チャットのデータはそこまで多くなく、恐らく触ってみると一般対話の能力はそこまで高くないだろうという感覚です。
【東工大・東北大・CyverAgent他】Fugaku-LLM
■URL
■チャットテンプレート
{system_example} ### 指示: {instruction_example} ### 応答:
■ライセンス
独自ライセンスだが商用利用可能
■性能
あまり高くはなさそうです。mt-benchのスコアも特段良いものではなく、ElyzaTask100の結果もそこまで高い結果ではないとうみゆきさんが検証していただいていました。
他のモデル
■日本語特化だが特殊なライセンスを持つ
japanese-stablelm-instruct-alpha-7b
■日本語特化ではないが日本語でも優秀なモデル(主観含む)
- GPT3.5-turbo/GPT4
- mistralai/Mixtral-8x7B-v0.1
- claude3
■SI企業開発による非公開モデル
- NEC開発「cotomi」
- NTT DATA開発「tuzumi」