見出し画像

合成データを利用したLLMの開発

大規模言語モデル(LLM)の開発において、高品質で多様なデータセットの重要性は計り知れません。しかし、インターネットから収集されたデータには多くの問題が伴います。ノイズが多く、広告や特定の言語(特に英語)に偏りがちであり、さらにデータの量にも限界があります。これらの課題を解決するために、合成データの利用が注目されています。

合成データに関するベストプラクティス

Google DeepMindやその他の共同研究者によって発表されたこの論文は、合成データの応用、課題、そして将来の方向性に焦点を当てています。以下に論文のポイントをまとめてみました。

合成データの利点

合成データの利点の一つは、大規模に生成することができることです。これは、実世界のデータが不足しているか入手が困難な分野(例えば、全ての条件をカバーする気象データなど)で特に価値があります。

また、合成データは特定の要件に合わせてカスタマイズすることができ、異なるクラスのバランスの取れた表現を確保することが可能です。このようなデータ特性の制御は、モデルの性能と一般化を向上させることができます。

さらに、合成データは匿名化されたり特定されないデータセットを作成することで、プライバシーの懸念を軽減するのに役立ちます。これは、患者のプライバシーが最も重要とされるヘルスケア分野などで重要です。

合成データの課題

合成データの課題の一つは、合成データの事実性と忠実性を保証することです。偽りのある、幻覚を起こす、または偏見のある合成データで訓練されたモデルは、実世界のシナリオに一般化することができない可能性があります。

また、合成データが偏見を増幅させたり新たな偏見を導入する可能性もあります。これを防ぐためには、慎重な設計と検証が必要です。

合成データの使用例(学習)

数学、コードといった分野では、合成データによるモデルの学習を行なって推論性能が向上したという研究があります。

ツール使用の学習や計画能力の学習といったデータが少ない分野でも合成データによるモデルの学習が行われています。

HTMLや表データなどを画像にレンダリングして、その画像を逆レンダリングして元のコードやデータを再生するといった学習も行われています。

インストラクションチューニングにおいては、Self-instructStanford Alpacaは、LLMを使用して様々なシナリオをカバーするデータを生成しています。

ハルシネーションの軽減においては、GPT-4が合成データを使用してハルシネーションの問題を改善するトレーニングを受けています。

合成データの使用例(評価)

事実性の評価において、初期の評価方法は語彙の重複を計算することに依存していましたが、これには限界があり、より複雑な誤認を評価するには不適切でした。LongFactでは、合成データを使用して長文の事実性を評価します。この手法はGoogle検索を基盤として使用し、LLMを自動評価に利用しています。このアプローチにより、人間レベルの精度を大幅に低コストで達成することが可能です。

安全性の評価においても、合成データを使用している例があります。例えば、Hubingerらは、合成データを利用して大規模にバックドア攻撃を引き起こし、AIの欺瞞的な振る舞いを明らかにしています。

まとめ

合成データは、データ不足、プライバシーの問題、AI開発の高コストなどの課題に対する有望な解決策として注目されています。LLMなどを活用し、事実に基づく忠実度と偏見のないデータを保証することが、効果的な合成データの作成につながります。小規模な言語モデルは、合成データを使用することで高い性能を発揮していますが、今後はこのデータのスケーリングと品質、多様性の向上が課題となります。モデルが学習データを超える優れた合成データを生成し、それによって自己改善する可能性は、今後の研究にとって非常に興味深い分野です。合成データを効果的に活用することは今後のAI開発において重要であると言えます。

Stanford Alpaca

Training language models to follow instructions with human feedback

疑問:
InstractGPTの性能はどこから来るのか?
SFT, インストラクションデータの品質, RLHF どれなのか?

目標:
低コストでInstarctGPTのトレーニングプロセスを再現する

課題
1. インストラクションデータをどう集めるのか?
2. RLHFのためのデータをどう集めるのか?
3. RLHF(PPO)を実装する必要がある

ステップ1: Alpaca 7B

Alpaca: A Strong, Replicable Instruction-Following Model

InstarctGPTでは、ユーザーがAPIに送信したプロンプトを収集し、それらからプロンプトデータセットを作成しています。その後、アノテーターがこれらのプロンプトに対して回答を作成し、それを元にインストラクションデータセットを作成しています。

Self-Instructという手法を用いて、175個のシードデータをもとにOpenAIのtext-davinci-003 で、52,000個のインストラクションデータセットを作成した。

このデータを用いて、LLaMA 7BモデルにSFT行うことでAlpaca 7Bを作成した。

ステップ2: AlpacaFarm

AlpacaFarm: A Simulation Framework for Methods that Learn from Human Feedback

Alpaca 7Bの時点でかなり良い合成データが作れることが分かったため、RLHFデータをGPT-4を用いて生成することを目指した。

第56回: ブラックボックス言語モデルの複製と解析

GPT-3.5やGPT-4で様々なプロンプトを試したり、出力が長いものや箇条書きに対する擬似相関などについても調査している。また、PPOアルゴリズムも実装している。

AlpacaFarm: A Simulation Framework for Methods that Learn from Human Feedback

合成データでトレーニングしたモデルは人間が作成したデータでトレーニングしたモデルに似ていることが分かった。

AlpacaFarm: A Simulation Framework for Methods that Learn from Human Feedback

また、人間が作成したデータでRLHFしたときに現れる過剰適合が合成データでのRLHFでも再現された。

人々の間で最も一般的なストレスの原因は何ですか?

Instruction(gpt-4による翻訳)

人々の間で最も一般的なストレスの原因は、仕事、お金、人間関係、健康、家族です。

Alpaca (Finetuned w/ 10k data)(gpt-4による翻訳)

1. 仕事のプレッシャー: 締め切りの厳しさ、高い期待、または過大な仕事量など、仕事のプレッシャーは大きなストレスの源となることがあります。
2. お金の問題: 収入が足りないことから借金に苦しむことまで、財政的な問題は重大なストレスの源となり得ます。
3. 不健康なライフスタイル: 食生活の乱れ、運動不足、睡眠不足などがすべてストレスに寄与することがあります。
4. 家庭での不幸: 人間関係の問題、家族メンバーとの対立、その他の家庭内の問題が大きなストレスの源となることがあります。
5. 不確実性: 将来、健康問題、またはその他の未知のことに対する過度の心配や不安が、大きなストレスの原因となることがあります。

Alpaca + PPO(gpt-4による翻訳)

PPOを行うことで、回答がより長くなり、箇条書きを利用するようになっている。

ステップ3: AlpacaEval

An Automatic Evaluator for Instruction-following Language Models


Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators

長さ制御付きのAlpacaEvalは、Chatbot Arenaとの相関を0.94から0.98に増加させ、現在Chatbot Arenaとの相関が最も高いベンチマークです。

まず、以下のようなinstructionに対してLLMの回答を作成します。

ブロードウェイでキャリアをスタートさせた有名な俳優の名前は何ですか?

alpaca_eval_gpt4_baseline.json(gpt-4による翻訳)

そのあと、以下のようにgpt-4-1106-previewなどに2つのモデルの出力を比較させます。

<|im_start|>system
あなたは非常に効率的なアシスタントであり、与えられたプロンプトに対する応答の質に基づいて大規模言語モデル(LLM)を評価しランク付けします。このプロセスにより、最も正確で人間に好まれる回答を反映したリーダーボードが作成されます。
<|im_end|>
<|im_start|>user
さまざまな大規模言語モデルのリーダーボードが必要です。これらのモデルに与えられたプロンプトとそれに対する応答を提供します。あなたのタスクは、これらの応答を評価し、人間の視点から好みの順にモデルをランク付けすることです。ランク付けが完了したら、make_partial_leaderboard関数用に結果を構造化されたJSON形式で出力してください。

## Prompt

{
"instruction": """{instruction}""",
}

## Model Outputs

これはモデルからの順序未定の出力です。各出力は、一意のモデル識別子によって特定される特定のモデルに関連付けられています。

{
{
"model": "m",
"output": """{output_1}"""
},
{
"model": "M",
"output": """{output_2}"""
}
}

## Task

モデルの出力の質と関連性に基づいてモデルを評価しランク付けしてください。ランキングは、最も高品質な出力を提供するモデルが最初にランク付けされるようにする必要があります。
<|im_end|>

alpaca_eval_gpt4_turbo_fn/alpaca_eval_fn.txt(gpt-4による翻訳)

まとめ

GPT-4-Turboのような高性能なLLMを利用することで、SFT、RLHF、ベンチマークなどの分野でコストを抑えることができることがわかります。合成データでも人間が作成したデータに近い結果を得られること、またLLMによる評価でも人間の評価に近い結果が得られることから、LLMを上手く活用することで、大企業のような大規模な資金がない、中小企業やスタートアップでもLLMの開発が出来る可能性があります。


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