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ページの証明を完成させるのに役立ち、その後のプロセスを推測することさえできました。

ブログ    
ブログ    

推薦する

MetaのAIは、メタバースで「あなたの言葉を実現」することを可能にします

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

戦闘計画システムにおける人工知能技術の応用に関する研究

近年、人工知能技術は飛躍的な進歩を遂げており、各国は人工知能技術の戦略的意義を認識し、国家戦略レベル...

...

ChatGPTを超える最初のオープンソースモデルが登場?ネットユーザーはそれを信じない

大型モデルが人気となり、毎日さまざまな「ビッグ」ニュースを目にするようになりました。写真今日、もう一...

英国、心臓発作予測の精度向上のため新たな人工知能アルゴリズムを開発

心臓発作を事前に予測することは困難です。 17日のサイエンス誌によると、英国ノッティンガム大学の科学...

...

...

YOLOの父は抗議を表明するためにCV業界を辞め、軍事やプライバシーのスヌーピングにAIアルゴリズムを使用することを拒否

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

人工知能の発展には限界が必要

一般的な理解によれば、人工知能とは、手動でしかできないタスクを、人間以​​外のツールで完了できること...

JetBrainsが2023年の調査レポートを発表:Rustの人気はますます高まり、開発者の77%がChatGPTを使用

JetBrains は 11 月 21 日に、世界中の 26,348 人の開発者からの調査結果をまと...

ハイパーコンバージド インフラストラクチャで AI をエッジに押し上げる

ストレージ技術の破壊的変化は進行中であり、ハイパーコンバージド インフラストラクチャ (HCI) 市...

...

すごい...正義のために親族を殺す? Google AI、米国の月面着陸写真は偽物だと判定

1969年、アポロ11号が月面着陸に成功し、アームストロング船長は、今日でも数え切れないほどの人々が...

...