MMLUライクなドメイン知識評価のデータセットをLLMで作る
1人ローカルLLMアドベントカレンダーの5日目です。
ローカルLLMやマルチモーダルモデルの学習やデータセット周りについて書いていく予定なので、興味がある方は明日以降も読んでいただけると嬉しいです!
要約
- JMMLUライクなデータセットを構築するためのモデルを学習した
目的
ドメイン特化のLLMが一つのトレンドで、医療や金融では盛んに開発が行われていることもあり、モデルやデータセット、ベンチマークなどは充実しています。
一方で、それ以外の分野では公開されているデータは多くなく、モデルの性能を測る術がないのが現状かと思います。
そこで、ドメイン知識を問うベンチマークをある程度手軽に作れるようにしよう、というのが今回の目的です。
特に今回は、JMMLUライクなベンチマークを構築できることを目標に進めていきます。
実施内容
- JMMLUの問題と正解から、それらに関連するテキストの生成
- 生成したテキストから問題と選択肢を生成できるようにLLMを学習
の順番で行いました。
テキストの生成
生成にはQwen/Qwen2.5-32B-Instruct-AWQを使用しました。
生成時のプロンプトには以下のものを使用しています。
inputにはJMMLUの問題、outputには正解が入ります。
与えられたクイズの内容を題材として、文章を作成してください。
<condition>
- 日本語で作成すること
- 画像は使用しない
- リンクは使用しない
- 包括的な内容を提供すること
- 最初にクイズと正解から文章のテーマを設定すること
</condition>
<quiz>
{input}
</quiz>
<correct>
{output}
</correct>
<format>
テーマ: [文章のテーマ]
本文: [テーマに関する文章の本文]
</format>
実際の出力は以下のようになります。
イヌの犬糸状虫検査では、実際に犬糸状虫を保有しているイヌの96%で陽性結果が得られ、保有していないイヌの98%で陰性結果が得られる。もし犬糸状虫が実際に10%のイヌに発生するとしたら、無作為に選んだ犬糸状虫陽性のイヌが実際に犬糸状虫を持っている確率はどれくらいか?
陽性判定された犬糸状虫検査の信頼性\n\n本文: 犬糸状虫はイヌに感染する寄生虫であり、その存在を確認するためには専門的な検査が必要です。この検査は非常に正確で、犬糸状虫を保有しているイヌの96%で陽性結果が得られます。さらに、犬糸状虫を持っていないイヌの98%で陰性結果が得られます。しかし、これが常に真実を反映しているわけではありません。\n\n例えば、犬糸状虫が一般的なイヌの10%に感染していると仮定した場合、陽性判定を受けたイヌが実際に犬糸状虫を持っている確率はどの程度でしょうか?この問題はベイジアン統計学の基本的な問題であり、予め設定された確率(事前確率)をもとに、新しい情報を用いてその確率を更新(事後確率)するものです。\n\nここでの事前確率は10%であり、これは一般的なイヌが犬糸状虫に感染している確率を指します。次に、陽性判定を受けたイヌが実際に犬糸状虫を持っている確率を求めます。これを行うために、事前確率と検査の精度を考慮に入れる必要があります。\n\nまず、全体のイヌのうち90%は犬糸状虫に感染していません。その中でも検査結果が陽性になるイヌは2%であり、全体のイヌの中でその割合は1.8%になります。一方、10%のイヌが犬糸状虫に感染しており、そのうち96%が陽性になるため、全体のイヌの中で陽性となる割合は9.6%となります。\n\nしたがって、無作為に選んだ犬糸状虫陽性のイヌが実際に犬糸状虫を持っている確率は、9.6% / (9.6% + 1.8%) = 84%となります。つまり、陽性判定を受けたイヌが実際に犬糸状虫を持っている確率は約84%ということです。\n\nこの結果から、犬糸状虫の検査結果は非常に重要であることがわかりますが、一方で、陽性判定を受けたからといって絶対的に犬糸状虫を持っているわけではないことも理解できるでしょう。そのため、陽性判定を受けたイヌについては、再度の検査や獣医師の診断が必要となる場合があります。
ロビンソン、ファリス、ウィンド(1967)は、組織における購買状況には3つの主なタイプがあり、_____________と呼んでいる。
企業購買行動における購入クラス\n\n本文: 組織における購買活動は多岐にわたり、それぞれの購買状況は異なる特性を持っています。1967年にロビンソン、ファリス、ウィンドによって提唱された「購入クラス」は、組織が商品やサービスを購入する際の状況を体系的に分類したものです。この理論では、組織が新規の商品やサービスを調達する際の購買状況を3つの主要なカテゴリーに分けています。これらのカテゴリーは、各購買決定が組織内でどのように行われるかを理解するための重要なフレームワークを提供します。例えば、新たなサプライヤーを見つける必要がある場合、既存のサプライヤーとの関係を維持するための戦略を考える必要がある場合など、組織が直面する購買状況は様々です。「購入クラス」は、組織が効果的に購買決定を行うために、その背景にある様々な要素を把握するのに役立つ概念です。
モデルの学習
先ほど生成した文章から問題と選択肢を生成するタスクとして、LLMの学習を行っていきます。
プロンプトなどは以下のとおりです。
<|im_start|>system
あなたは与えられたテキストから4択の問題を作成するアシスタントです。<|im_end|>
<|im_start|>user
以下の文章を参考に、4択の問題を作成してください。
- 以下のフォーマットに従い、「QUIZ: 」のあとに問題を、「A: 」から「D: 」のあとに選択肢を出力し、「Correct: 」のあとに正解となる選択肢のアルファベットを出力すること
### Format
QUIZ: 問題文
A: 選択肢1
B: 選択肢2
C: 選択肢3
D: 選択肢4
Correct: [A or B or C or D]
### Text
除法を使った数学の問題
本文: 数学は私たちの日常生活において不可欠な役割を果たしています。特に、基本的な算術操作である除法は、さまざまな状況で頻繁に利用されます。例えば、式2,314 / 4の商を求める問題があります。この問題を解くためには、2,314を4で割ります。計算を行うと、商は578となり、余りは2となります(578 r2)。つまり、2,314を4で割ったとき、整数の答えは578で、その結果に4を掛けた値が2,312になります。そして、元の数2,314から2,312を引くと、残りの2が余りとして得られます。このような除法の問題は、私たちが物事を等しく分配したり、必要な数量を正確に計算したりする際に非常に役立ちます。<|im_end|>
<|im_start|>assistant
QUIZ: 式2,314 / 4の商は?
A: 508
B: 508 r2
C: 578
D: 578 r2
Correct: D<|im_end|>
学習にはunslothを使用しました。
で学習しています。
結果(7B版の場合)
入力するテキスト
最終氷期が終了した約1万1千年前、古富士の山頂の西側で噴火が始まり、溶岩を大量に噴出した。この溶岩によって、現在の富士山の山体である新富士が形成された。その後、古富士の山頂が新富士の山頂の東側に顔を出しているような状態となっていたと見られるが、約2500–2800年前、風化が進んだ古富士の山頂部が大規模な山体崩壊(「御殿場岩なだれ」)を起こして崩壊した。
新富士の山頂から溶岩が噴出していたのは、約1万1千年前–約8000年前の3000年間と、約4500年前–約3200年前の1300年間と考えられている。山頂部からの最後の爆発的噴火は2300年前で[27]、これ以降は山頂部からの噴火は無いが、長尾山や宝永山などの側火山からの噴火が散発的に発生している。
延暦19年 – 延暦21年(800年 ‐ 802年)に延暦噴火(『日本後紀』、要約すると、「富士山が自ら燃え、夜も火の光が照らし、雷灰が落ち、山下の川水は紅色になった」とある)、貞観6年(864年)に青木が原溶岩を噴出した貞観大噴火が起きた。最後に富士山が噴火したのは宝永4年(1707年)の宝永大噴火で、噴煙は成層圏まで到達し、江戸では約4 cmの火山灰が降り積もった。また、宝永大噴火によって富士山の山体に宝永山が形成された。その後も火山性地震や噴気が観測されており、今後も噴火の可能性が残されている。
出力
QUIZ: 最終氷期末期、古富士が溶岩を噴出し、現在の富士山の山体である新富士が形成された。古富士の山頂は新富士の東側に顔を出し、約2500–2800年前、古富士の山頂部は大規模な山体崩壊を起こして崩壊した。新富士の山頂から溶岩が噴出していたのは、次のうちどの時期か?
A: 約1万1千年前–約8000年前の3000年間
B: 約4500年前–約3200年前の1300年間
C: 約1万1千年前–約8000年前の3000年間と、約4500年前–約3200年前の1300年間
D: 2300年前
Correct: C
まとめ
AもBも正解になってしまうので良問とは言えないかもしれませんが、一応それっぽいものが出力されました。
目視での確認は必要そうですが、特定ドメインの文章が一定量あれば、選択式のベンチマークが作れそうですね。アドカレ期間は難しそうですが、手が空いたときになにか作ってみようと思います。
Discussion