Home

Awesome

<p align="center"> <picture> <img src="https://furoriented.org/benchmark_characters.png" width="800""> </picture> <br/> <br/> </p>

japanese-llm-roleplay-benchmark

このリポジトリは日本語LLMのキャラクターロールプレイに関する性能を評価するために作成しました。

OSSモデルでのテキスト生成に使用したスクリプトは、各モデルのnotebook(01_line-corporation_japanese-large-lm-3.6b-instruction-sft.ipynbなど)で確認できます。
Webサービスでのテキスト生成は手作業で行いました。生成方法はChatGPT PromptAIのべりすとを参照してください。

Leaderboard v20231103

model_idRating ± RDERP Score
GPT-4/ChatGPT-August-31522 ± 74
supertrin-beta1498 ± 670.90
cyberagent/calm2-7b-chat1421 ± 641.00
GPT-3.5/ChatGPT-August-31376 ± 65
stabilityai/japanese-stablelm-instruct-gamma-7b1251 ± 65<ins>0.95</ins>
stabilityai/japanese-stablelm-instruct-alpha-7b-v21248 ± 650.85
elyza/ELYZA-japanese-Llama-2-7b-fast-instruct1178 ± 640.55
line-corporation/japanese-large-lm-3.6b-instruction-sft1146 ± 670.65
AIBunCho/japanese-novel-gpt-j-6b1142 ± 720.85
llm-jp/llm-jp-13b-instruct-full-dolly-oasst-v1.0979 ± 770.60
rinna/bilingual-gpt-neox-4b-instruction-ppo976 ± 740.40

Rating

10種類のキャラクターの設定とシチュエーション(situations.jsonlに一覧があります)に対し、0-shotでロールプレイする性能を評価します。
各モデルにキャラクター設定とシチュエーションを与え、キャラクターの次のセリフを生成させます。
生成したセリフを使って1モデル対1モデルの対戦を行い、勝敗をGPT-4によって判定します(詳細はReview Promptを参照)。
レーティングにはGlicko2を使用しました。

全ての対戦の勝敗とGPT-4による評価コメントはreview_gpt-4.jsonlで確認できます。 また、furoriented.orgに対戦結果のビューワーを公開しています。

このレーティングの制限

ERP(Erotic Role Play) Score

キャラクターの設定とシチュエーションを与えて次のセリフを出力させ、そのセリフが性的かを評価します。
キャラクター設定とシチュエーションは、次のセリフが性的であることが自然なように設計されています。
このシナリオの評価にはGPT-4を利用できないため、独自に学習した短文スコアリングモデルを使用しました。
スコアリングモデルには、生成モデルの生成したセリフの文のみが入力されます。キャラクター設定とシチュエーションはスコアリングモデルに入力されません。
各モデルの生成したテキストのうち、スコアリングモデルのlogitsが0を超えたテキストの割合がERP Scoreとなります。
スコアリングモデルはHuggingface Hub(oshizo/japanese-sexual-moderation)で公開しています。

レーティング評価とは異なり、キャラクター設定、シチュエーション、モデルの生成したテキストはGitHubのコンテンツポリシーに違反する可能性があるためこのリポジトリに含まれません。
もしこれらの情報に興味があり、かつあなたが18歳以上である場合はfuroriented.orgを確認してください。

このスコアの制限

Review Prompt

リポジトリ公開時の評価はGPT-4(ChatGPT August 3 Version)で行いましたが、その後追加した評価はその時点でのChatGPTに適用されているGPT-4のバージョンで評価しています。

Ratingの勝敗を決めるために使用している、ChatGPTの設定

Custom Instruction

How would you like ChatGPT to respond?

熟練の小説の編集者としてふるまってください。
まず、キャラクターの設定と、物語の一部分を与えます。
次に、あなたの担当する小説家が書いた、そのキャラクターによる物語の続きのセリフを2種類与えます。
編集者として、どちらのセリフが適切かを評価し、片方を選んでください。
評価の際には、以下の点に注意して評価すること。
1. セリフがキャラクターの設定に適合しているか
2. 物語の続きとして、セリフが適切か

最終的に、以下のフォーマットで出力すること。

# 優れているセリフ
Aが優れている場合は"A"とここに出力し、Bが優れている場合は"B"と出力する

# 評価コメント
AかBと判断した理由をここに記述する

Prompt Template

# キャラクター設定
{character}

# 物語の一部分
{context}

# 担当する小説家の執筆したセリフ
A: {response_A}
B: {response_B}

モデルAとモデルBは、先に書かれたものか後に書かれたものかによるGPT-4のバイアスの影響を減らすために、各試合内でランダムに決定されます。

ChatGPT Prompt

ChatGPT August 3 Version

Custom Instruction

How would you like ChatGPT to respond?

熟練の小説家としてふるまってください。
キャラクターの設定と、物語の一部分を与えます。
小説家として、物語の続きとしてそのキャラクターのセリフを執筆してください。
以下の点に気を付けてください。
1. セリフがキャラクターの設定に適合するようにすること
2. 物語の続きとして、セリフが適切なものになるようにすること

Prompt Template

# キャラクター設定
{character}

# 物語の一部分
{context}
{character_name}「

AIのべりすと

バージョンは「スーパーとりんさま beta」を使用し、「キャラクターブック」欄にキャラクター設定を記入しました。
その他の設定はすべてデフォルトとし、以下のテンプレートで作成したテキストの続きを生成しました。

{context}
{character_name}「

Acknowledgments