本記事は「LLM・LLM活用 Advent Calendar 2024」の5日目の記事になります。
https://qiita.com/advent-calendar/2024/large-language-model
はじめに
この記事では、英語から日本語に機械翻訳されたPreferenceデータがどこまで元の有効性を保てているかという問題の検証にトライします。
Preferenceデータについて
LLMの事後学習におけるReward ModelingやPreference Optimizationのためには、人間(またはLLMなど)がテキストに対して評価付けを行ったPreferenceデータが必要不可欠です。
こういったPreferenceデータは大きく以下の2つに分けられます。
1. 人手でアノテーションされたデータ
英語圏におけるオープンライセンスで配布されている代表的なものとして、Anthropicのhh-rlhfやNVIDIAのHelpSteer2などが存在し、よく利用されています。
一方、日本語圏においては誰でも利用可能な形で公開されている大規模な人手作成のPreferenceデータセットは現在存在しません。
2. Reward ModelやLLM as a judge等を使って作成された合成データ
英語圏における代表的なものとして、NCSOFT/offsetbiasやopenbmb/UltraFeedback、Magpie-Align/Magpie-Llama-3.1-Pro-DPO-100K-v0.1などがあります。(ただし、ライセンスの妥当性に疑問が残るものが多い)また、Self-Rewardingのような手法の中でもこのようなデータが学習に利用されます。
日本語圏においてもcyberagent/chatbot-arena-ja-calm2-7b-chat-experimentalやweblab-GENIAC/aya-ja-evol-instruct-calm3-dpo-maskedのような簡易的なものは存在しますが、大規模かつ高品質なものは不足しています。
このような日本語データ不足に対する対策として、英語データを日本語に機械翻訳したデータセットが作られています。代表的なものとして、llm-jp/hh-rlhf-12k-jaやkunishou/HelpSteer2-20k-jaがあります。
今回の検証では、これらの日本語に機械翻訳されたデータセットについて、翻訳後のデータセットにどれだけPreferenceデータとしての有効性が残っているのかを検証してみます。
検証手法とプロンプト設計
検証方法は非常にシンプルです。
OpenAIのgpt-4o-2024-0806に、翻訳前の英語の回答のペアと日本語に翻訳された回答のペアを与え、どちらの回答の方が良いかをJudgeさせます。このJudgeの結果と元の人手によるアノテーションとの一致率をそれぞれ計算し、英語データに対する一致率と日本語データに対する一致率の差分を見ることで、翻訳によってどの程度有効性が失われたかを推定します。
Judgeに利用するプロンプトは以下の通りです。
なお、評価の際の位置バイアスを避けるため、データの半数についてchosenが前/rejectedが後ろ、残り半数についてはrejectedが前/chosenが後ろに来るように並べて評価させています。
また、Judgeの際に利用したサンプリングパラメータは以下の通りです。
- temperature: 0.0
- top_p: 1.0
- max_tokens: 2048
検証対象のデータセット
検証対象のデータセットとして、以下の4つのものを選択しました。
-
kunishou/HelpSteer2-20k-ja
NVIDIAのHelpSteer2を日本語に機械翻訳したデータセットです。(翻訳ツールは不明)
helpfulnessのスコアが高い方をchosen、低い方をrejectedとし、スコアが等しいものを除外したうえでデータセットの先頭1000件を検証対象としました。 -
llm-jp/hh-rlhf-12k-ja
Anthropicのhh-rlhfをDeepLを使って日本語に機械翻訳したデータセットです。
元の英語データと突合するための情報が欠けていたため、このデータセットに限り以下のようにして日本語・英語データの1000件を選択し検証対象としています。
日本語:sourceがhelpful-onlineで対話が1ターンのものからランダムに1000件を選択
英語:元のhh-rlhfのリポジトリからhelpful-onlineのサブセットを選択し、その中で対話が1ターンのものからランダムに1000件を選択 -
ryota39/webgpt_comparisons-ja
OpenAIのwebgpt_comparisonsをcyberagent/calm3-22b-chatを使って日本語に機械翻訳したデータセットです。データセットの先頭1000件を検証対象としています。 -
ryota39/synthetic-instruct-gptj-pairwise-ja
Dahoas/synthetic-instruct-gptj-pairwiseをcyberagent/calm3-22b-chatを使って日本語に機械翻訳したデータセットです。データセットの先頭1000件を検証対象としています。
検証結果
検証結果は以下の通りです。
| データセット | 英語 | 日本語 | 差分 |
|---|---|---|---|
| hh-rlhf | 64.7% | 61.5% | -3.2% |
| HelpSteer2 | 67.2% | 64.0% | -3.2% |
| webgpt_comparisons | 64.8% | 60.0% | -4.8% |
| synthetic-instruct-gptj-pairwise | 99.4% | 96.9% | -2.5% |
考察
検証結果から簡単な考察を行います。
- 英語→日本語の機械翻訳において一致率が平均3%程度低下しており、Preferenceデータとしての有効性が一定量失われているように見える
機械翻訳の品質や細かな表現のクオリティ等の差で、やはり品質の劣化は存在するように考えられます。ただし、Judgeモデルであるgpt-4o自体の日本語Judge性能が英語でのJudgeの性能より低く、その結果一致率が下がっているという可能性もあります。 - 機械翻訳後のデータセットでも、全く使えないデータになるわけではないと考えられる
機械翻訳後の日本語ペアに対するJudgeの結果でもある程度元々の人手評価との一致率は保持できており、翻訳後もある程度はPreferenceデータとしての有効性を保てていると考えられます。ただし、llm-jp v1.1のレポートで報告されているような、語尾のばらつきなどの機械翻訳特有の問題が学習後のモデルに悪影響を与えるというような問題は存在します。
まとめ
この記事では英語から日本語に機械翻訳されたPreferenceデータにどこまで有効性が残っているかの検証にトライしました。この結果だけから全てを語ることは出来ませんが、やはり翻訳による品質の低下というのは一定量あると考えたほうが良さそうです。
今後、日本国内でも大規模かつ高品質なPreferenceデータが作成・公開されることを願います。
余談
現在DiscordのローカルLLMに向き合う会にて、kaeruさんの協力のもと「日本語Preferenceデータを手動で頑張って作る」という活動をしています。アノテーション途中のデータは下記リポジトリで逐一更新されていきます。
https://huggingface.co/datasets/preference-team/dataset-for-annotation-v2-annotated
ちまちまと人手で頑張ってアノテーションしていますが人手不足の状態であり、もしアノテーションにご興味のある方がいればぜひお力を借りたいです。ご興味のある方がもしいればDiscordやXのDM等でご連絡ください!
ローカルLLMに向き合う会のDiscordにはこちらから参加可能です。
