ABEJAでデータサイエンティストをしている大谷です。
弊社は、経済産業省とNEDOが実施する、国内の生成AIの開発力強化を目的としたプロジェクト「GENIAC(Generative AI Accelerator Challenge)」の1期に続き、2期にも採択され、そこで大規模言語モデルの開発を実施しました。
これまでにGENIAC2期の取り組みで3つのモデルを公開してきました。 これらのモデルはAlibaba社が開発したQwen2.5-32B-Instruct、QwQ-32B、Qwen2.5-7B-Instructをベースモデル、差分Vector用モデルとして用いています。 7Bと32Bのv0.1のモデルは事後学習を実施する前のものです。 これらに事後学習を行い更に精度をあげるべく 、SFT用データセットとDPO用のデータセットを2万件弱ずつ合成データ+人手によるアノテーションで作成しました。 これらのデータセット作りの道のりについて本記事で解説していきます。 また、このブログと合わせて、32bに事後学習を行ったモデルABEJA-Qwen2.5-32b-Japanese-v1.0を合わせて公開しています。
これまでにGENIAC2期の取り組みで以下のモデルを公開してきました。
| モデル名 | 公開日 | 特徴 | モデルサイズ |
|---|---|---|---|
| ABEJA-Qwen2.5-32b-Japanese-v0.1 | 2025年1月 | 日本語特化Qwen2.5ベースモデル | 32B |
| ABEJA-QwQ32b-Reasoning-Japanese-v1.0 | 2025年4月 | Reasoning能力を強化した32Bモデル | 32B |
| ABEJA-Qwen2.5-7b-Japanese-v0.1 | 2025年4月 | 軽量な日本語特化Qwen2.5モデル | 7B |
| [NEW!] ABEJA-Qwen2.5-32b-Japanese-v1.0 | 2025年5月 | 事後学習済み日本語特化Qwen2.5モデル | 32B |
なお、継続事前学習のデータセット作り2025年度 人工知能学会全国大会(第39回)にて発表します。興味のある方はぜひ2025/5/29 18:20〜18:40にてS会場にお越しいただけると嬉しいです。
データセット作りの方針
ビジネスの現場で必要とされることの多い、「文章から必要な情報を抽出する能力」「文章の意図を読みとく能力」つまりMT Benchでいうところのextraction / reasoningが事後学習でどれくらい伸びるのかを検証するのを目的としました。 ベンチマークを狙い撃ちで伸ばすことそのものにあまり意義はないのですが、どんなデータでどんなアノテーションをするとどれくらい性能差が生まれるのかを知った上で、社会実装の現場で伸ばしたい能力のためのデータセット作りに繋げていこうという取り組みをすると決めました。
事後学習手法の選定
NeMO Alignerを使用していたため、ライブラリ内にexampleがあり、かつオーソドックスなSFTとDPOの組み合わせとしています。
データセット作りの中身
SFT
instructionカラムとinputカラムに対する回答のouputsカラムがあるオーソドックスなSFT用データとしています。
| カラム | 内容 |
|---|---|
| instruction | 以下の文章を読み、綿繊維の製造過程とその重要性について詳細に説明してください。また、その製造過程がどのように私たちの生活に影響しているかについても述べてみてください。 |
| inputs | 九州歴史資料館ボランティア (以下略 |
| Thoughts | |
| outputs | 綿繊維の製造過程は、(以下略 |
| 修正案 | 綿繊維の製造過程は、(以下略 |
| 修正観点 | - 読みやすくするため改行した。 - 修正 「綿繊維の製造過程は私たちの生活に多大な影響を与えています。」→「綿は私たちの生活に多大な影響を与えています。」 |
Thoughtsカラムはreasoningモデル用に作ったものです。基本的にinstruction/inputs/outputsの列に対して後述のアノテーションを実施しています。
DPO
NVIDIAのhelpsteer2を参考にし、以下のようなカラムを持つデータセットを作成し、アノテーションを実施しました。
合成データでinstruction / inputs / outputs_A / outputs_Bを生成しています。
| カラム | 内容 |
|---|---|
| instruction | 有若が孔子の死後、他の弟子たちからどのように扱われたかを説明してみて。 |
| inputs | 有若は孔子の死後(以下略 |
| outputs_A | 有若は孔子の死後、(以下略 |
| outputs_B | 有若は孔子が亡くなった後、(以下略 |
| A or B | A |
| helpfulness(役立ち度) | 4 |
| correctness(正確さ) | 4 |
| coherence(一貫性) | 5 |
| complexity(複雑さ) | 5 |
| verbosity(冗長さ) | 5 |
| 理由_A | 回答Aは、〜 |
| helpfulness_B | 4 |
| correctness_B | 3 |
| coherence_B | 3 |
| complexity_B | 3 |
| verbosity_B | 3 |
| 理由_B | 回答Bは、〜 |
| 評価(-3〜3) | -2 |
| 評価理由 | 回答Aの方が〜 |
評価カラムは以下のように同等というものがないように数字をつけています。
-3:AはBよりもとてもいい回答
-2:AはBよりいい回答
-1:AはBより少しいい回答
1 :BはAより少しいい回答
2 :BはAよりいい回答
3 :BはAよりとてもいい回答
-100:両方とも悪い回答
合成データ
80%くらいのデータは主に以下のパターンで作成しました。残り20%くらいは既存データセットの翻訳などで補っています。
パターン①: seedタスクと外部データの組み合わせを合成データで作成
パターン②: Chatbotアリーナにてユーザーが入力したデータであるlmsysを使用し、最初のユーザー入力のinstructionの続きを合成データで作成
なお、合成データを作成するために使用したモデルはQwen2.5-72B-Instructです。
パターン①の手順
- seedは全部で71個(reasoningで27個、extractionで44個)を準備
- 継続事前学習の時にABEJA-CC-JAを綺麗にしたデータを外部データとし、seed + 外部データからinstruction + inputのデータを作成
- 作成したinstruction + inputに対してLLMで品質評価
- 品質フィルタリングしたデータ群でoutputを生成
- 作成したinstruction / input / outputを目視で修正
パターン②の手順
lmsysは100万件のデータがあり、LLMで品質評価をするには時間がかかりすぎるため品質評価用のモデルを作成しました。
人工知能学会の発表でも触れますが、DeBERTaによるフィルタリングは継続事前学習の段階でもデータセットの高品質化のために行っているものです。
- lmsysのinstructionを文字数である程度絞った上で、1万件程度のデータをピックアップしてLLMで品質評価
- 品質スコアつけしたデータを学習データとしてDeBERTaをファインチューニング
- 学習したDeBERTaでデータ全件に対して推論を実施し品質評価
- 品質フィルタリングしたinstructionをLLMで日本語訳
- 日本語訳したinstrcutionを再度LLMで品質フィルタリング。日本語訳によって品質が落ちるものがあるためそれを取り除いています。
- instructionからoutputを生成
- instruction / outputを目視で修正(lmsysはinputカラムを作りませんでした)
パターン①、②含め、品質フィルタリングを通った最終的な合成データは10万件以上になりました。
アノテーション
VALT JAPAN様にアノテーションをお願いしました。VALT JAPAN様は「就労困難者が仕事を通じして活躍できる、新たな社会インフラをつくる」をミッションにBPO事業を含む様々なサービスを展開している会社です。 今回のアノテーションでは就労困難者の方の多大なるご支援と、担当者様のきめ細やかなプロジェクト管理によって質の高いアノテーションが実施できたと思っています。なお、どんなアノテーションして欲しいかの擦り合わせは念入りに実施しています。 改めてアノテーションにご協力いただいた皆様に御礼を申し上げます。
実際のアノテーション結果の一部を紹介します。
instruction
「円卓」という言葉が含まれている文章から、その文脈や使用目的について詳しく教えてください。例えば、「ビジネス会議」、「家族の集まり」など具体的なシチュエーションがあれば、それに触れて説明していただければ幸いです。また、もし他にも関連する意味合いがある場合はそれも併せてお願いします。
output_A
「円卓」という言葉は、様々なシチュエーションで使用され、主に平等性や協調性を象徴する意味合いを持っています。例えば、ビジネス会議では、円卓を使用することで参加者全員が対等な立場で意見を交わすことができ、上下関係を意識せずに自由な議論を促進する効果があります。また、家族の集まりでは、円卓を囲むことで全員が顔を見合わせやすい環境を作り、親密な雰囲気やコミュニケーションを促進します。さらに、円卓は伝統的に王様や貴族が重要な会合を行う際に使用されており、特に有名な例としてアーサー王の「円卓の騎士」が挙げられます。この文脈では、円卓は全ての参加者が同等の権利と責任を持つことを示すシンボルとして機能しています。
output_B
「円卓」という言葉は、特に中国文化において非常に重要で象徴的な存在とされています。このテーブルは円形をしており、その形状から全員が平等であることを示しています。以下に、いくつかの具体的なシチュエーションとその文脈を説明します。 1. ビジネス会議での円卓: - 円卓はしばしば国際会議や企業内ミーティングでよく見られます。これは参加者全員が同じ高さにいるため、上下関係がなく、対等な立場で意見交換ができる場として機能します。これにより、自由な議論が促進され、創造的なアイデアが生まれやすくなります。たとえば、多国籍企業の役員たちが一堂に会する場面では、各地域からの代表者が公平に発言できる環境を作るために使われます。このような設定は信頼関係を築く上でも有効であり、協力体制を強化するのに役立ちます。 2. 家族の集まりとしての円卓: - 家族団らんの場としても円卓はよく用いられます。家庭内の食事だけでなく、誕生日パーティーなどのイベント時にも使われることが多いです。ここでは、食卓を囲むことで家族間の絆を深める効果があります。さらに、全員が顔を見合わせながら会話ができるため、コミュニケーションが活発になります。こうした空間設計によって、自然とリラックスした雰囲気が醸成されやすいのも特徴です。 3. 歴史的・文化的背景における円卓: - 『三国志演義』をはじめとする多くの歴史小説や映画において、円卓は英雄たちの集いの場として描かれています。これらの作品では、武将たちが一堂に会し、戦略を練ったり情報共有を行うシーンがよく登場しますが、これもまた現代のビジネス会議と同様に、全ての人が同等の権利を持つことを強調するための装置として機能しています。このようにして、権力構造を超越しつつも秩序だった対話が行われる様子が描かれるのです。 4. その他の用途: - 結婚式や披露宴といったフォーマルな行事でも、円卓が使われることがあります。この場合も、出席者全員が同じ高さに位置することで、ホストとゲストとの距離が近く感じられ、親密さが増すという利点があります。加えて、会場全体が一つの大きなサークルのように見えることから、調和や連帯感を表現する視覚的要素ともなり得ます。 以上のように、「円卓」はそのデザイン自体が持つ特性から、さまざまな社会的および文化的コンテキストで特別な役割を果たしています。それぞれの状況に応じた適切な使い方を理解することは、その場の雰囲気作りや人間関係の構築に大いに寄与すると言えるでしょう。
評価(-3〜3)
3(BはAよりとてもいい回答)
評価理由
A: やや情報が乏しく感じる。改行を入れたほうが読みやすい。 B: instructionに沿って、項目に分けて具体的に説明している。
それぞれバラバラに見るとAもBも両方とも良い回答に見えますが、比較すると確かにBのほうが幅広い用途で説明しており網羅性も高い回答に思えます。このような地道なアノテーションを2万件弱実施してデータセットを作成しました。上記の例では割愛しましたが、AとBのそれぞれの回答に対してhelpfulness(役立ち度)/ correctness(正確さ) / coherence(一貫性)/ complexity(複雑さ)の評価もしており、その大変さは想像するに易いと思います。
評価結果
SFTとDPOの結果
SFT→SFT+DPOと事後学習することで全体の日本語MT_benchのスコアが向上していることは確認できました。 ベンチマークのスコアそのものというよりも、今回狙ったタスクであるextractionとreasoningを事後学習で伸ばすことが確認できたので、当初の目的はおおかた達成できたかなと思っています。
| model | AVG | coding | extraction | humanities | math | reasoning | roleplay | stem | writing |
|---|---|---|---|---|---|---|---|---|---|
| ABEJA-Qwen2.5-32b-Japanese-v0.1+SFT+DPO | 8.335 | 7.683 | 8.867 | 8.717 | 8.800 | 7.833 | 8.400 | 8.033 | 8.350 |
| ABEJA-Qwen2.5-32b-Japanese-v0.1+SFT | 8.231 | 7.700 | 8.700 | 8.700 | 8.633 | 7.800 | 8.383 | 7.733 | 8.200 |
| ABEJA-Qwen2.5-32b-Japanese-v0.1 | 8.278 | 7.900 | 8.713 | 8.750 | 8.788 | 7.113 | 8.438 | 8.188 | 8.338 |
アノテーションによる効果
追加実験として、アノテーションや品質フィルタリングが評価値にどのような影響があるかも調査してみました。各条件でSFTのみの事後学習を実施しています。
モデル① 品質フィルタなし / アノテーションなし
モデル② 品質フィルタあり / アノテーションなし
モデル③ 品質フィルタあり / アノテーションあり
| AVG | coding | extraction | humanities | math | reasoning | roleplay | stem | writing | |
|---|---|---|---|---|---|---|---|---|---|
| モデル① | 7.942 | 7.850 | 8.550 | 8.417 | 7.833 | 7.083 | 8.033 | 7.650 | 8.117 |
| モデル② | 8.127 | 7.283 | 8.917 | 8.650 | 8.700 | 6.983 | 8.117 | 7.983 | 8.383 |
| モデル③ | 8.231 | 7.700 | 8.700 | 8.700 | 8.633 | 7.800 | 8.383 | 7.733 | 8.200 |
総合平均で品質フィルタリングあり、かつアノテーションありが最も良い評価地であることを確認しました。中身を見てみると、extractionは品質フィルタリングによって、reasoningはアノテーションによって数字が上がっています。伸ばしたい指標ごとで品質を高めると伸びやすい指標、逆に合成データ+品質フィルタリングのみで十分伸びる指標があるというのが数字で見えてくるとデータセット作りに生きるので良い学びでした。
まとめ
高品質なデータセットを作るために、何度も合成データを生成しては捨て、また作っては捨てる作業を繰り返し、目視で確認しては再びやり直す、そんな試行錯誤の連続でした。 品質フィルタリングのためだけのモデルを学習させたり、アノテーションのためにデータを整形したり、多くのアノテーターの方々にご協力いただいた上で、その結果をさらに目視で確認するなど、非常に泥臭く、手間のかかる道のりでした。 まだまだわからないことは多いですが、高品質なデータセットがいいモデルを作るための土台であることは間違いないので、今後とも一つ一つノウハウとデータを蓄積していきたいと思います。
本成果は、経済産業省とNEDOが実施するGENIACでのモデル開発によって得られたものです。
We Are Hiring!
ABEJAは、テクノロジーの社会実装に取り組んでいます。 技術はもちろん、技術をどのようにして社会やビジネスに組み込んでいくかを考えるのが好きな方は、下記採用ページからエントリーください! 第2新卒の方、新卒の方、インターンシップ希望の方のエントリーもお待ちしております!