1行のコードで大規模モデルのパフォーマンスが10%向上、開発者は無料でランチを楽しめる

1行のコードで大規模モデルのパフォーマンスが10%向上、開発者は無料でランチを楽しめる

大規模なモデルを微調整するための「無料ランチ」ができました。たった 1 行のコードで、パフォーマンスを少なくとも 10% 向上できます。

7B パラメータを持つ Llama 2 のパフォーマンスは 2 倍になり、Mistral は 4 分の 1 増加しました。

このアプローチは教師あり微調整段階で使用されますが、RLHF モデルでもこの​​アプローチのメリットを享受できます。

メリーランド大学、ニューヨーク大学などの研究者らは、NEFT(une)と呼ばれる微調整法を提案した。

これは、微調整された教師あり学習 (SFT) モデルのパフォーマンスを向上させるために使用できる新しい正規化手法です。

このメソッドは HuggingFace によって TRL ライブラリに含まれており、インポートして 1 行のコードを追加するだけで呼び出すことができます。

NEFT は操作が簡単なだけでなく、コストも大幅に増加しないため、「タダ飯」のようだと著者は述べています。

一部のネットユーザーはこの方法を使ってグアナコ(アルパカ科の動物)をベースにしたミストラル7Bを微調整しようとしたところ、性能が大幅に向上したという。

では、NEFTune はどのようにして 1 行のコードだけで多数の大きなモデルを強化するのでしょうか?

モデルにノイズを追加する

NEFTune の正式名称は Noisy Embedding Fine Tuning で、「ノイズ埋め込み微調整」を意味します。

開発者は、オーバーフィッティングが大規模モデルのパフォーマンスを制限する主な要因であると信じており、トレーニング段階で埋め込み層にノイズを追加して、オーバーフィッティングを回避し、パフォーマンスを向上させています。

具体的には、トレーニング データベース内のテキストが最初にトークン化され、埋め込みベクトルに変換されます。

次に、ノイズ ベクトルがランダムに生成され、スケーラーを使用してノイズが設定された強度にスケーリングされます。

スケーリングされたノイズがモデルへの入力として埋め込みベクトルに追加され、トレーニングが開始されます。

トレーニングの各反復で、新しいノイズが生成され、埋め込みレイヤーに追加されます。

 from torch.nn import functional as F def NEFTune(model, noise_alpha=5) def noised_embed(orig_embed, noise_alpha): def new_func(x): if model.training: embed_init = orig_embed(x) dims = torch.tensor(embed_init.size(1) * embed_init.size(2)) mag_norm = noise_alpha/torch.sqrt(dims) return embed_init + torch.zeros_like(embed_init).uniform_(-mag_norm, mag_norm) else: return orig_embed(x) return new_func model.base_model.model.model.embed_tokens.forward = noised_embed(model.base_model.model.model.embed_tokens, noise_alpha) return model

このコードでは、NEFTune 関数のパラメータ noise_alpha はノイズ強度 (係数) であり、mag_norm は実際のプロセスにおけるノイズ範囲です。

NEFT は、推論フェーズではなく、トレーニング プロセス中にのみモデルにノイズを追加します。コード内の if ステートメントがこの役割を果たします。

トレーニングモードでは、new_func 関数の戻り値はノイズを追加した後の埋め込みレイヤーになります。

このコードは説明目的で投稿されています。NEFT を呼び出すだけの場合は、上記の完全なコードを使用する必要はありません。TRL ライブラリから直接呼び出すことができます。

次のコードは、OPT-350M モデルを微調整する例です。

 from datasets import load_dataset from trl import SFTTrainer dataset = load_dataset("imdb", split="train") trainer = SFTTrainer( "facebook/opt-350m", train_dataset=dataset, dataset_text_field="text", max_seq_length=512, ) trainer.train()

データセットに関しては、開発者は微調整のために Alpaca や ShareGPT を含む 4 つの異なるデータセットを使用しました。

著者は、これらのデータを選んだ理由として、比較的有名であること、SOTA になっていることなどを挙げました。

さらに、ハードウェアのパフォーマンスを考慮して、実験中は単一ラウンドの対話データセットが選択されました。

では、NEFT メソッドを使用して調整された後、大規模モデルのパフォーマンスはどのようになるのでしょうか?

パフォーマンスが最大1倍向上

研究チームは主に、モデルの調整前と調整後の生成されたテキストの品質と会話機能をテストしました。

テキストの品質は主に AplacaEval データセットに基づいており、ChatGPT と GPT-4 を使用して評価されます。

参照するモデルは Text-Davinci-003 であり、TD3 を上回る学習済みモデルの割合が評価指標となります。

研究チームはリソースを節約するため、まずChatGPTを使って自分自身を評価するかGPT-4を呼び出すかを判断し、場合によっては手動の判断も必要になるとのこと。

結果は、さまざまなトレーニング データ セットにおいて、Llama 2 は調整後に少なくとも 10% のパフォーマンス向上を示し、Alpaca データ セットでは直接 2 倍になることを示しています。

OPT および Llama 1 に拡張すると、NEFT メソッドによって一定のパフォーマンス向上ももたらされます。

OpenLLM Leadorboard のタスクは、モデルのチャット機能を評価するために使用されます。

結果は、NEFT 調整モデルのチャット機能も Evol-Instruct と比較してさらに向上していることを示しています。

著者らはまた、テキスト品質とチャット機能を向上させることで、コストが大幅に増加することなく他の機能が低下するかどうかも評価しました。

結果は、NEFT メソッドがさまざまなデータ セットやモデル上のモデルの他の機能に大きな影響を与えないことを示しています。

実験中、著者はモデルによって生成されたテキストがトレーニングデータのコピーではないことも発見し、モデルには一定の一般化能力があることを示唆しました。

これを確認するために、著者らはモデルの損失を評価し、テスト データセットの損失がトレーニング データよりも低いことを発見し、この点を確認しました。

さらに、著者らは、NEFT 調整後、モデルによって生成されたテキストの品質が向上しただけでなく、長さも増加し、追加されたコンテンツが重複していないことを発見しました。

テキスト品質の向上がテキストの長さの増加ではなくノイズの追加によるものであることを確認するために、研究者らはアブレーション実験を実施しました。

結果は、モデルに長いテキストを生成させるだけでは、NEFT と同じ結果は得られないことを示しています。

論文アドレス: https://arxiv.org/abs/2310.05914

<<: 

>>:  テレンス・タオはコパイロットに夢中です。コパイロットは1ページの証明を完成させるのに役立ち、その後のプロセスを推測することさえできました。

ブログ    
ブログ    

推薦する

ポピュラーサイエンス記事: GPT の背後にあるトランスフォーマー モデル

前回の記事「AIビッグモデルの解釈、トークンの理解から始める」では、最も基本的な概念である「トークン...

...

人工知能が人間の労働力に完全に取って代わった後、労働者は何をすべきでしょうか?彼らは職を失うのでしょうか?

友人の輪の中で小さなボスがチキンスープを作っているのをよく見かけます。「すべての労働者の皆さん、仕事...

第1回自動車開発者会議(2021)が成功裏に終了しました

10月20日、国家インテリジェントコネクテッドビークルイノベーションセンター(以下、「イノベーション...

...

...

...

AIは機械設計にどのような影響を与えるのでしょうか?

人工知能は現在、ますます広く利用されるようになっています。ほとんどの場合、堅牢で適応性の高い AI ...

Google の請負業者が組合結成に投票: 権利の保護を希望

2018年11月1日、職場の問題に対する世界的な抗議活動の一環として、一部の従業員がGoogleの英...

PNASの新研究:ケンブリッジの学者らは、一部のAIモデルは計算できないことを発見した

最近、ケンブリッジ大学の学者たちは、米国科学アカデミー紀要(PNAS)に「安定かつ正確なニューラルネ...

金融AIの実装は難しいですか?ガートナー: AI のユースケースを 3 倍にするには 4 つのステップが必要

金融分野で AI を適切に導入するには、単に時間や資金を最も多く投資すればよいという問題ではありませ...

...

Google Cloud と Hugging Face が AI インフラストラクチャ パートナーシップを締結

Google LLC のクラウド コンピューティング部門は本日、オープンソースの人工知能モデルを共有...

人工知能が仕事を奪っていますが、将来の職場で私たちは何のために戦うのでしょうか?

病院では、人工知能 (AI) は人間の医師よりもレントゲンの分析が得意です。法律事務所では、AI は...