見出し画像

Rinna-3.6B で 文脈付きの質問応答 を試す

「Rinna-3.6B」で文脈付きの質問応答を試してみたので、まとめました。

1. JP Language Model Evaluation Harness

「Rinna-3.6B」の「Stability AI」のLLMベンチマーク「JP Language Model Evaluation Harness」のスコアは、次のとおりです。「JSQuAD」は文脈付きの質問応答タスクで、53.42と半分以上正解するようです。

2. JGLUE

「JP Language Model Evaluation Harness」では、評価データセットとして「JGLUE」が使われています。

2-1. JCommonsenseQA (10.1k)

「JCommonsenseQA」は 常識的な推論能力を必要とする多肢選択式質問応答タスクのデータセットです。「CommonsenseQA」の日本語版になります。

2-2. JNLI (22.5k)

「JNLI」は、前提文が仮説文に対して持つ推論関係を認識するタスクのデータセットです。「entailment」(含意)「contradiction」(矛盾)「neutral」(中立)を分類します。「NLI」の日本語版になります。

2-3. MARC-ja (193k)

「MARC-ja」はテキスト分類タスクのデータセットです。「positive」(ポジティブ)「negative」(ネガティブ)を分類します。「MARC」の日本語版になります。

2-4. JSQuAD (67.3k)

「JSQuAD」は、文脈を読んで質問に答える質問応答タスクのデータセットです。
「SQuAD」の日本語版になります。

3. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) パッケージのインストール。

# パッケージのインストール
!pip install transformers sentencepiece
!pip install accelerate bitsandbytes

(2) トークナイザーとモデルの準備。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "rinna/japanese-gpt-neox-3.6b-instruction-ppo",
    use_fast=False
)
model = AutoModelForCausalLM.from_pretrained(
    "rinna/japanese-gpt-neox-3.6b-instruction-ppo",
    load_in_8bit=True,
    device_map="auto",
)

(3) 推論実行の定義。
回答のトークン数を引数 max_token で指定できるようにしてます。

# 推論実行の定義
def generate(prompt, max_length):
    token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
    with torch.no_grad():
        output_ids = model.generate(
            token_ids.to(model.device),
            max_length=len(token_ids[0]) + max_length,
            do_sample=False,
            repetition_penalty=1.1,
            pad_token_id=tokenizer.pad_token_id,
            bos_token_id=tokenizer.bos_token_id,
            eos_token_id=tokenizer.eos_token_id
        )

    return tokenizer.decode(output_ids.tolist()[0], skip_special_tokens=True)

(4) QAの準備。
「JSQuAD」から10個選んで、Rinnaのプロンプト書式で準備しました。

# 質問
Q = [
    'ユーザー: 文脈: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい教育制度がある。このカリキュラムは建築と技術という名称で、300から360クレジットである。質問: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい制度がある。何の制度か?<NL>システム: ',
    'ユーザー: 文脈: 梅雨(つゆ、ばいう)は、北海道と小笠原諸島を除く日本、朝鮮半島南部、中国の南部から長江流域にかけての沿海部、および台湾など、東アジアの広範囲においてみられる特有の気象現象で、5月から7月にかけて来る曇りや雨の多い期間のこと。雨季の一種である。質問: 梅雨がみられるのはどの期間?<NL>システム: ',
    'ユーザー: 文脈: リスボン、ポルト、ファロがおもな国際空港。またこれらの空港から、マデイラ諸島やアソーレス諸島などの離島への路線も出ている。質問: マデイラ諸島やアソーレス諸島などの離島への路線も出ているのは?<NL>システム: ',
    'ユーザー: 文脈: この改元は改元の決定から日付までを幕府側の事実上の指定で決められたものである。これは事実上の将軍の代始改元を目指したものであるが、以後は幕府権力の衰退もありこれが最後となった。質問: 享保の改元は、事実上、誰の代始改元を目指したものだったか。<NL>システム: ',
    'ユーザー: 文脈: アイルランドの建築の主要機関はアイルランドの王立建築家協会、RIAIである。会員は接尾辞 MRIAIを使用することができ、会社の文房具などにタイトル「Architect」を使用できるように登録されている。なおタイトルは近年制度保障されたばかりである。質問: アイルランドの王立建築家協会は?<NL>システム: ',
    'ユーザー: 文脈: 街区周辺を市町村の中心に近い角を起点にし、そこから街区の外周に沿って時計回りに距離を測って10\xa0m( - 15\xa0m)ごとに区切り順番に1、2、3…と基礎番号(フロンテージ)をつける。建物の玄関または主要な出入り口が接する位置の基礎番号を住居番号とする。このため、住宅が1つの街区に均等間隔に整然と建てられても、入口の玄関の位置がそれぞれの住宅ごとに異なる場合、住居番号が連番にならないことがある。また、同じ土地で建物を建て替えた際に玄関の場所が変わった場合、住居番号が変更になることがある。質問: 基礎番号を別の言い方で呼ぶと何<NL>システム: ',
    'ユーザー: 文脈: シェーンベルクの側でも、当初はマーラーの音楽を嫌っていたものの、のちに意見を変え「マーラーの徒」と自らを称している。1910年8月には、かつて反発していたことを謝罪し、マーラーのウィーン楽壇復帰を熱望する内容の書簡を連続して送っている。質問: 「マーラーの徒」と自らを称していたのは誰?<NL>システム: ',
    'ユーザー: 文脈: このような標高による住み分け分布ができたのは、紀元前からモン・クメール系の人々がこの地域に暮らしていたが、9世紀頃からタイ系の人々が南下してきた。その後、清代末期の19世紀後半からモン・ミエン系やチベット・ビルマ系の人々が中国南部から移住してきた。漢人の支配・干渉を嫌い移住してきたと言われている。質問: タイ系の人々が南下してきたのはいつからか<NL>システム: ',
    'ユーザー: 文脈: 梅雨末期には降雨量が多くなることが多く、ときとして集中豪雨になることがある。南および西ほどこの傾向が強く、特に、九州では十数年に1回程度の割合でこの時期に一年分の降水量がわずか一週間で降ることもある(熊本県・宮崎県・鹿児島県の九州山地山沿いが典型例)。逆に、関東や東北など東日本では梅雨の時期よりもむしろ秋雨の時期のほうが雨量が多い。質問: 関東や東北など東日本では梅雨の時期よりも雨量が多い時期は?<NL>システム: ',
    'ユーザー: 文脈: 梅雨の期間中ほとんど雨が降らない場合がある。このような梅雨のことを空梅雨(からつゆ)という。空梅雨の場合、夏季に使用する水(特に稲作に必要な農業用水)が確保できなくなり、渇水を引き起こすことが多く、特に青森、岩手、秋田の北東北地方においては空梅雨になる確率がかなり高く、また、秋季~冬季の降水量が少ない北部九州や瀬戸内地方などでは、空梅雨の後、台風などによるまとまった雨がない場合、渇水が1年以上続くこともある。質問: ほとんど雨が降らない梅雨を何という?<NL>システム: ',
]
   
# 回答
A = [
    '教育',
    '5月から7月',
    'リスボン、ポルト、ファロ',
    '幕府',
    'RIAI',
    'フロンテージ',
    'シェーンベルク',
    '19世紀後半',
    '秋雨',
    '空梅雨',
 ]

(5) 質問応答の実行。
Aが正解、A'が推論結果です。完全一致(exact_match)してないのはきになりますが、6割正解です。

「JP Language Model Evaluation Harness」では、max_lengthにデータセットのanswerの長さを指定して、exact_matchしやすくしてるみたい。

# 質問応答の実行
for i in range(len(Q)):
    a = generate(Q[i], 20)
    print("Q:", Q[i])
    print("A:", A[i])
    print("A':", a[len(Q[i]):])
    print("\n")
Q: ユーザー: 文脈: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい教育制度がある。このカリキュラムは建築と技術という名称で、300から360クレジットである。質問: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい制度がある。何の制度か?<NL>システム: 
A: 教育
A': 建築と技術。回答:建築家と土木技師になるための教育制度です。


Q: ユーザー: 文脈: 梅雨(つゆ、ばいう)は、北海道と小笠原諸島を除く日本、朝鮮半島南部、中国の南部から長江流域にかけての沿海部、および台湾など、東アジアの広範囲においてみられる特有の気象現象で、5月から7月にかけて来る曇りや雨の多い期間のこと。雨季の一種である。質問: 梅雨がみられるのはどの期間?<NL>システム: 
A: 5月から7月
A': この質問に答えるには、梅雨とは、北海道と小笠原諸島を除く日本、朝鮮半島南部


Q: ユーザー: 文脈: リスボン、ポルト、ファロがおもな国際空港。またこれらの空港から、マデイラ諸島やアソーレス諸島などの離島への路線も出ている。質問: マデイラ諸島やアソーレス諸島などの離島への路線も出ているのは?<NL>システム: 
A: リスボン、ポルト、ファロ
A': リスボン、ポルト、ファロがおもな国際空港です。回答:リスボン、ポルト、ファロ


Q: ユーザー: 文脈: この改元は改元の決定から日付までを幕府側の事実上の指定で決められたものである。これは事実上の将軍の代始改元を目指したものであるが、以後は幕府権力の衰退もありこれが最後となった。質問: 享保の改元は、事実上、誰の代始改元を目指したものだったか。<NL>システム: 
A: 幕府
A': 幕府権力の衰退により、これが最後となった。


Q: ユーザー: 文脈: アイルランドの建築の主要機関はアイルランドの王立建築家協会、RIAIである。会員は接尾辞 MRIAIを使用することができ、会社の文房具などにタイトル「Architect」を使用できるように登録されている。なおタイトルは近年制度保障されたばかりである。質問: アイルランドの王立建築家協会は?<NL>システム: 
A: RIAI
A': RIAIです。


Q: ユーザー: 文脈: 街区周辺を市町村の中心に近い角を起点にし、そこから街区の外周に沿って時計回りに距離を測って10 m( - 15 m)ごとに区切り順番に1、2、3…と基礎番号(フロンテージ)をつける。建物の玄関または主要な出入り口が接する位置の基礎番号を住居番号とする。このため、住宅が1つの街区に均等間隔に整然と建てられても、入口の玄関の位置がそれぞれの住宅ごとに異なる場合、住居番号が連番にならないことがある。また、同じ土地で建物を建て替えた際に玄関の場所が変わった場合、住居番号が変更になることがある。質問: 基礎番号を別の言い方で呼ぶと何<NL>システム: 
A: フロンテージ
A': : 基礎番号とは、街区周辺を市町村の中心に近い角を起点にし、そこから街区の外周に沿って


Q: ユーザー: 文脈: シェーンベルクの側でも、当初はマーラーの音楽を嫌っていたものの、のちに意見を変え「マーラーの徒」と自らを称している。19108月には、かつて反発していたことを謝罪し、マーラーのウィーン楽壇復帰を熱望する内容の書簡を連続して送っている。質問: 「マーラーの徒」と自らを称していたのは誰?<NL>システム: 
A: シェーンベルク
A': シェーンベルク


Q: ユーザー: 文脈: このような標高による住み分け分布ができたのは、紀元前からモン・クメール系の人々がこの地域に暮らしていたが、9世紀頃からタイ系の人々が南下してきた。その後、清代末期の19世紀後半からモン・ミエン系やチベット・ビルマ系の人々が中国南部から移住してきた。漢人の支配・干渉を嫌い移住してきたと言われている。質問: タイ系の人々が南下してきたのはいつからか<NL>システム: 
A: 19世紀後半
A': 19世紀後半からモン・ミエン系やチベット・ビルマ系の人々が中国南部から移住してきた。


Q: ユーザー: 文脈: 梅雨末期には降雨量が多くなることが多く、ときとして集中豪雨になることがある。南および西ほどこの傾向が強く、特に、九州では十数年に1回程度の割合でこの時期に一年分の降水量がわずか一週間で降ることもある(熊本県・宮崎県・鹿児島県の九州山地山沿いが典型例)。逆に、関東や東北など東日本では梅雨の時期よりもむしろ秋雨の時期のほうが雨量が多い。質問: 関東や東北など東日本では梅雨の時期よりも雨量が多い時期は?<NL>システム: 
A: 秋雨
A': 秋雨の時期です。


Q: ユーザー: 文脈: 梅雨の期間中ほとんど雨が降らない場合がある。このような梅雨のことを空梅雨(からつゆ)という。空梅雨の場合、夏季に使用する水(特に稲作に必要な農業用水)が確保できなくなり、渇水を引き起こすことが多く、特に青森、岩手、秋田の北東北地方においては空梅雨になる確率がかなり高く、また、秋季~冬季の降水量が少ない北部九州や瀬戸内地方などでは、空梅雨の後、台風などによるまとまった雨がない場合、渇水が1年以上続くこともある。質問: ほとんど雨が降らない梅雨を何という?<NL>システム: 
A: 空梅雨
A': 空梅雨(からつゆ)

(6) Few-Shotで質問応答の実行。
「JP Language Model Evaluation Harness」では、Few-Shotでベンチマーク取ってたので、Few-Shotも試してみます。

template = 'ユーザー: 与えられた文脈から、質問に対する答えを抜き出してください。<NL>システム: 分かりました。<NL>ユーザー: 文脈: 赤色のペリレン顔料、Pigment Red 149は、やや青味のある赤色だが他の有機顔料に比べて希釈した色が相対的に黄味に寄る傾向がある。Pigment Red 179は、アントラキノン系の高級顔料であるPigment Red 216よりも、更に暗く強い色調で、より堅牢である。質問: 赤色のペリレン顔料、Pigment Red 149は、やや青味のある赤色だが他の有機顔料に比べて希釈した色が相対的に黄味に寄る傾向がある?<NL>システム: 更に暗く強い色調で、より堅牢である<NL>ユーザー: 文脈: プロレスラーはその考え方をリングの上で表現して観客を楽しませている。しかし、その「受けの美学」が誤解されて「なぜあんな技をよけないのか?」といった批判にもならない的外れなクレームがあることも事実で、それが一般に「真剣勝負」として受け取られない一因にもなっている。こうした「受けの美学」を否定するレスラーも現れ、UWFのようなショー的要素を排除したプロレス(ただし、事前に勝敗は決まっている)が産まれたり、そこからさらに発展して総合格闘技戦に主戦場を移すプロレスラーも多くなっている。質問: ショー的要素を排除したプロレスを行ったのは?<NL>システム:UWF<NL>'

for i in range(len(Q)):
    a = generate(template + Q[i], 20)
    print("Q:", Q[i])
    print("A:", A[i])
    print("A':", a[len(template + Q[i]):])
    print("\n")
Q: ユーザー: 文脈: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい教育制度がある。このカリキュラムは建築と技術という名称で、300から360クレジットである。質問: 2006年秋からチャルマースでは建築家としても土木技師としてもダブルディグリーの機会を提供する新しい制度がある。何の制度か?<NL>システム: 
A: 教育
A': 建築と技術


Q: ユーザー: 文脈: 梅雨(つゆ、ばいう)は、北海道と小笠原諸島を除く日本、朝鮮半島南部、中国の南部から長江流域にかけての沿海部、および台湾など、東アジアの広範囲においてみられる特有の気象現象で、5月から7月にかけて来る曇りや雨の多い期間のこと。雨季の一種である。質問: 梅雨がみられるのはどの期間?<NL>システム: 
A: 5月から7月
A': 東アジアの広範囲にわたる地域です。


Q: ユーザー: 文脈: リスボン、ポルト、ファロがおもな国際空港。またこれらの空港から、マデイラ諸島やアソーレス諸島などの離島への路線も出ている。質問: マデイラ諸島やアソーレス諸島などの離島への路線も出ているのは?<NL>システム: 
A: リスボン、ポルト、ファロ
A': リスボン、ポルト、ファロがおもな国際空港。


Q: ユーザー: 文脈: この改元は改元の決定から日付までを幕府側の事実上の指定で決められたものである。これは事実上の将軍の代始改元を目指したものであるが、以後は幕府権力の衰退もありこれが最後となった。質問: 享保の改元は、事実上、誰の代始改元を目指したものだったか。<NL>システム: 
A: 幕府
A': 幕府権力の衰退により、幕府による実質的な代始改元はこれが最後となった。


Q: ユーザー: 文脈: アイルランドの建築の主要機関はアイルランドの王立建築家協会、RIAIである。会員は接尾辞 MRIAIを使用することができ、会社の文房具などにタイトル「Architect」を使用できるように登録されている。なおタイトルは近年制度保障されたばかりである。質問: アイルランドの王立建築家協会は?<NL>システム: 
A: RIAI
A': RIAIです。


Q: ユーザー: 文脈: 街区周辺を市町村の中心に近い角を起点にし、そこから街区の外周に沿って時計回りに距離を測って10 m( - 15 m)ごとに区切り順番に1、2、3…と基礎番号(フロンテージ)をつける。建物の玄関または主要な出入り口が接する位置の基礎番号を住居番号とする。このため、住宅が1つの街区に均等間隔に整然と建てられても、入口の玄関の位置がそれぞれの住宅ごとに異なる場合、住居番号が連番にならないことがある。また、同じ土地で建物を建て替えた際に玄関の場所が変わった場合、住居番号が変更になることがある。質問: 基礎番号を別の言い方で呼ぶと何<NL>システム: 
A: フロンテージ
A': : 基礎番号とは、街区周辺を市町村の中心に近い角を起点にし、そこから街区の外周に沿って


Q: ユーザー: 文脈: シェーンベルクの側でも、当初はマーラーの音楽を嫌っていたものの、のちに意見を変え「マーラーの徒」と自らを称している。19108月には、かつて反発していたことを謝罪し、マーラーのウィーン楽壇復帰を熱望する内容の書簡を連続して送っている。質問: 「マーラーの徒」と自らを称していたのは誰?<NL>システム: 
A: シェーンベルク
A': シェーンベルク


Q: ユーザー: 文脈: このような標高による住み分け分布ができたのは、紀元前からモン・クメール系の人々がこの地域に暮らしていたが、9世紀頃からタイ系の人々が南下してきた。その後、清代末期の19世紀後半からモン・ミエン系やチベット・ビルマ系の人々が中国南部から移住してきた。漢人の支配・干渉を嫌い移住してきたと言われている。質問: タイ系の人々が南下してきたのはいつからか<NL>システム: 
A: 19世紀後半
A': 19世紀後半から20世紀初頭にかけて


Q: ユーザー: 文脈: 梅雨末期には降雨量が多くなることが多く、ときとして集中豪雨になることがある。南および西ほどこの傾向が強く、特に、九州では十数年に1回程度の割合でこの時期に一年分の降水量がわずか一週間で降ることもある(熊本県・宮崎県・鹿児島県の九州山地山沿いが典型例)。逆に、関東や東北など東日本では梅雨の時期よりもむしろ秋雨の時期のほうが雨量が多い。質問: 関東や東北など東日本では梅雨の時期よりも雨量が多い時期は?<NL>システム: 
A: 秋雨
A': 秋雨の時期です。


Q: ユーザー: 文脈: 梅雨の期間中ほとんど雨が降らない場合がある。このような梅雨のことを空梅雨(からつゆ)という。空梅雨の場合、夏季に使用する水(特に稲作に必要な農業用水)が確保できなくなり、渇水を引き起こすことが多く、特に青森、岩手、秋田の北東北地方においては空梅雨になる確率がかなり高く、また、秋季~冬季の降水量が少ない北部九州や瀬戸内地方などでは、空梅雨の後、台風などによるまとまった雨がない場合、渇水が1年以上続くこともある。質問: ほとんど雨が降らない梅雨を何という?<NL>システム: 
A: 空梅雨
A': 空梅雨(からつゆ)

10サンプルくらいだと、Few-Shotの目に見えての効果はなさそう?



この記事が気に入ったらサポートをしてみませんか?