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

推薦する

AIによる決定をどのように説明するのでしょうか?この記事では、アルゴリズムの適用シナリオと解釈可能性を整理します。

英国の情報コミッショナー事務局(ICO)とアラン・チューリング研究所は共同で「AIによる説明決定」ガ...

ビッグデータと AI を現代の教育とどのように組み合わせることができるでしょうか?

転載は歓迎しますが、署名し、「劉鵬の未来を見つめる」公開アカウントからの転載であることを明記し、この...

AIに切り替えたい人向け:人工知能ガイドはこちら

人工知能とは何でしょうか? なぜ重要なのでしょうか? 人工知能を恐れるべきでしょうか? なぜ突然、み...

認知マップの科学的インベントリ: グローバルな第3世代AIの「大きな」機会

近年、人工知能 (AI) は、ディープラーニング、コンピューター ビジョン、自然言語処理などの技術革...

スマート製造技術:効率的な生産の未来?

2020年の初め以来、工業および製造業はCOVID-19パンデミックの影響を受けています。工場は、...

AI は銀行がますます激化する詐欺の競争に勝つためにどう役立つか

今日のイノベーションのペースが競争だとしたら、世界は猛烈なスピードで変化しています。今日の世界で起こ...

...

...

大型モデル全般において中国と米国の差を縮めるにはどうすればいいでしょうか? 全国人民代表大会でその答えが分かった

「一般的な大きなモデルは国家の運命をめぐる闘争に関連している」... 「人工知能+」が政府活動報告に...

トレンド検索No.1!韓国、ハリー・ポッターの「透明マント」を作るためにカメレオン型ソフトロボットを開発

[[417131]]韓国が「カメレオンソフトロボット」の開発に成功、78件のコメントがつき、ホット検...

...

解釈可能な機械学習のための Python ライブラリ

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

人工知能が企業発展の原動力となる

新しいコンセプトが実行可能なビジネスツールになると、多くの企業がそのテクノロジーを積極的に採用して市...

AIエージェント、起動!復旦 NLP チームが 86 ページのレビューを発表: インテリジェント社会はすぐそこ

9 月 19 日、Jim Fan は Fudan NLP チームからの LLM ベースのエージェント...

...