大規模な注意ベースのトランスフォーマーモデルは、自然言語処理(NLP)で大幅な向上を遂げました。 ただし、これらの巨大なネットワークを最初からトレーニングするには、膨大な量のデータと計算が必要です。 小規模なNLPデータセットの場合、単純で効果的な戦略は、事前にトレーニングされたトランスフォーマーを使用することです。通常、非常に大きなデータセットでは教師なしでトレーニングされ、対象のデータセットで微調整されます。 ハグ顔 これらの事前に訓練された変圧器の大規模なモデル動物園を維持し、初心者ユーザーでも簡単にアクセスできるようにします。
ただし、これらのモデルは学習率やバッチサイズなどのハイパーパラメータに非常に敏感であるため、これらのモデルを微調整するには専門知識が必要です。 この投稿では、オープンソースフレームワークを使用してこれらのハイパーパラメータを最適化する方法を示します シネ・チューン 分散ハイパーパラメータ最適化(HPO)用。 Syne Tuneを使用すると、人気のあるデフォルトのハイパーパラメータと比較して1〜4%の相対的な改善を実現するより優れたハイパーパラメータ構成を見つけることができます。 GLUE ベンチマークデータセット。 事前にトレーニングされたモデル自体の選択もハイパーパラメータと見なすことができるため、SyneTuneによって自動的に選択されます。 テキスト分類の問題では、これにより、デフォルトモデルと比較して約5%の精度がさらに向上します。 ただし、ユーザーが行う必要のあるより多くの決定を自動化できます。 インスタンスのタイプを、後でモデルをデプロイするために使用するハイパーパラメーターとして公開することで、これを示します。 適切なインスタンスタイプを選択することで、コストとレイテンシを最適にトレードオフする構成を見つけることができます。
Syne Tuneの概要については、以下を参照してください。 SyneTuneを使用して分散ハイパーパラメータとニューラルアーキテクチャの調整ジョブを実行する.
SyneTuneによるハイパーパラメータの最適化
我々は、使用します GLUE ベンチマークスイート。テキスト含意の認識や感情分析などの自然言語理解タスク用のXNUMXつのデータセットで構成されています。 そのために、HuggingFaceの run_glue.py トレーニングスクリプト。 GLUEデータセットには、ラベル付きの事前定義されたトレーニングと評価セット、およびラベルなしのホールドアウトテストセットが付属しています。 したがって、トレーニングセットをトレーニングセットと検証セットに分割し(70%/ 30%分割)、評価セットをホールドアウトテストデータセットとして使用します。 さらに、HuggingFaceのTrainerAPIに別のコールバック関数を追加して、各エポックがSyneTuneに戻った後に検証パフォーマンスを報告します。 次のコードを参照してください。
まず、一般的なトレーニングハイパーパラメーターの最適化から始めます。学習率、学習率を上げるためのウォームアップ率、事前トレーニングされたBERTを微調整するためのバッチサイズ(バートベースケース)model。これは、HuggingFaceの例のデフォルトモデルです。 次のコードを参照してください。
HPO方式として、 ASHA、ハイパーパラメータ構成をランダムに均一にサンプリングし、パフォーマンスの低い構成の評価を繰り返し停止します。 より洗練された方法では、BOやMoBsterなどの目的関数の確率モデルが存在しますが、検索スペースを前提としないため、この投稿ではASHAを使用します。
次の図では、HuggingFacesのデフォルトのハイパーパラメータ構成に対するテストエラーの相対的な改善を比較しています。
簡単にするために、比較をMRPC、COLA、およびSTSBに限定しますが、他のGLUEデータセットでも同様の改善が見られます。 データセットごとに、単一のml.g4dn.xlargeでASHAを実行します アマゾンセージメーカー 実行時の予算が1,800秒のインスタンス。これは、これらのデータセットのそれぞれ約13、7、および9の全機能評価に対応します。 たとえばミニバッチサンプリングによって引き起こされるトレーニングプロセスの本質的なランダム性を説明するために、乱数ジェネレーターの独立したシードを使用して、ASHAとデフォルト構成の両方を1回繰り返し実行し、繰り返し全体での相対的な改善。 すべてのデータセットで、慎重に選択されたデフォルト構成のパフォーマンスと比較して、実際に予測パフォーマンスを3〜XNUMX%向上させることができることがわかります。
事前トレーニング済みモデルの選択を自動化
HPOを使用して、ハイパーパラメータを見つけるだけでなく、適切な事前トレーニング済みモデルを自動的に選択することもできます。 なぜこれをしたいのですか? すべてのデータセットで単一のモデルが優れているわけではないため、特定のデータセットに適したモデルを選択する必要があります。 これを実証するために、HuggingFaceの人気のあるさまざまなトランスフォーマーモデルを評価します。 データセットごとに、テストパフォーマンスによって各モデルをランク付けします。 データセット全体のランキング(次の図を参照)は変更され、すべてのデータセットで最高のスコアを獲得する単一のモデルではありません。 参考までに、次の図に各モデルとデータセットの絶対テストパフォーマンスも示します。
適切なモデルを自動的に選択するために、モデルの選択をカテゴリパラメータとしてキャストし、これをハイパーパラメータ検索スペースに追加できます。
検索スペースが大きくなりましたが、それは必ずしも最適化が難しいことを意味するわけではありません。 次の図は、元の空間(青い線)を検索したときのASHAのMRPCデータセットで(検証エラーに基づいて)最もよく観察された構成のテストエラーを示しています(BERTベースのケース付き事前トレーニングモデルを使用) )または新しい拡張検索スペース(オレンジ色の線)。 同じ予算が与えられた場合、ASHAは、より小さなスペースよりも拡張された検索スペースで、はるかに優れたパフォーマンスのハイパーパラメータ構成を見つけることができます。
インスタンスタイプの選択を自動化
実際には、予測パフォーマンスの最適化だけに関心があるわけではありません。 また、トレーニング時間、(ドル)コスト、待機時間、公平性の指標など、他の目標についても気にする場合があります。 また、インスタンスタイプの選択など、モデルのハイパーパラメータ以外の選択も行う必要があります。
インスタンスタイプは予測パフォーマンスに影響を与えませんが、(ドル)コスト、トレーニングランタイム、およびレイテンシーに大きく影響します。 後者は、モデルが展開されるときに特に重要になります。 HPOは、複数の目的を同時に最適化することを目的とした多目的最適化問題として表現できます。 ただし、単一のソリューションですべてのメトリックを同時に最適化することはできません。 代わりに、一方の目的ともう一方の目的を最適にトレードオフする一連の構成を見つけることを目指しています。 これは、 パレートセット.
この設定をさらに分析するために、インスタンスタイプの選択を、追加のカテゴリハイパーパラメータとして検索スペースに追加します。
を使用しております モアーシャ、非優勢ソートを使用してASHAを多目的シナリオに適応させます。 MO-ASHAは、各反復で、構成ごとに、評価するインスタンスのタイプも選択します。 異種のインスタンスセットでHPOを実行するために、SyneTuneはSageMakerバックエンドを提供します。 このバックエンドを使用すると、各トライアルは、独自のインスタンスで独立したSageMakerトレーニングジョブとして評価されます。 ワーカーの数は、特定の時間に並行して実行するSageMakerジョブの数を定義します。 オプティマイザー自体(この場合はMO-ASHA)は、ローカルマシン、Sagemakerノートブック、または別のSageMakerトレーニングジョブのいずれかで実行されます。 次のコードを参照してください。
次の図は、10,800人のワーカーでXNUMX秒間実行した後、MRPCデータセットでMO-ASHA(可視性のために軸を制限)によってサンプリングされたランダム構成の左側の遅延とテストエラー、および右側の遅延とコストを示しています。 色はインスタンスタイプを示します。 黒い破線はパレートセットを表します。これは、少なくともXNUMXつの目的で他のすべてのポイントを支配するポイントのセットを意味します。
レイテンシーとテストエラーの間のトレードオフを観察できます。つまり、テストエラーが最小の最良の構成では、レイテンシーは最小になりません。 好みに応じて、テストパフォーマンスを犠牲にするが、レイテンシが短いハイパーパラメータ構成を選択できます。 また、遅延とコストの間のトレードオフも見られます。 たとえば、小さいml.g4dn.xlargeインスタンスを使用すると、レイテンシがわずかに増加しますが、ml.g4dn.8xlargeインスタンスのXNUMX分のXNUMXのコストがかかります。
まとめ
この投稿では、SyneTuneに基づいてHuggingFaceから事前トレーニングされたトランスフォーマーモデルを微調整するためのハイパーパラメーターの最適化について説明しました。 学習率、バッチサイズ、ウォームアップ率などのハイパーパラメータを最適化することで、慎重に選択したデフォルト構成を改善できることがわかりました。 ハイパーパラメータ最適化を介して事前トレーニング済みモデルを自動的に選択することにより、これを拡張することもできます。
Syne TuneのSageMakerバックエンドを使用すると、インスタンスタイプをハイパーパラメータとして扱うことができます。 インスタンスタイプはパフォーマンスに影響を与えませんが、レイテンシとコストに大きな影響を与えます。 したがって、HPOを多目的最適化問題としてキャストすることにより、一方の目的と他方の目的を最適にトレードオフする一連の構成を見つけることができます。 これを自分で試してみたい場合は、 サンプルノート.
著者について
マティアスシーガー AWSの主任応用科学者です。
デビッドサリナス AWSのSrAppliedScientistです。
エミリー・ウェバー SageMakerがリリースされた直後にAWSに参加し、それ以来、世界中にそのことを伝えようとしています。 エミリーは、顧客のために新しいML体験を構築する以外に、チベット仏教の瞑想と勉強を楽しんでいます。
セドリックアルカンボー AWSの主任応用科学者であり、European Lab for Learning andIntelligentSystemsのフェローです。
- "
- 10
- 100
- 7
- 9
- a
- 私たちについて
- 絶対の
- アクセス可能な
- 達成する
- 越えて
- NEW
- 影響を及ぼす
- すべて
- ことができます
- しかし
- Amazon
- 量
- 分析
- 分析します
- 別の
- API
- 適用された
- 約
- 建築
- 増強された
- 自動化する
- 自動的に
- 平均
- AWS
- 軸
- なぜなら
- ベンチマーク
- BEST
- より良いです
- の間に
- 越えて
- ブラック
- 大胆な
- ブースト
- 予算
- 建物
- これ
- 場合
- 生じました
- 選択
- 選択肢
- 選ばれた
- class
- 分類
- コード
- 来ます
- 比べ
- 計算
- コントロール
- Customers
- データ
- 決定
- 実証します
- 展開します
- 展開
- 配布
- そうではありません
- ドル
- 各
- 簡単に
- 効果的な
- 欧州言語
- 評価する
- 評価
- 例
- エクスペリエンス
- エキスパート
- 伸ばす
- 顔
- ファッション
- フィギュア
- フォロー中
- フレームワーク
- から
- フル
- function
- さらに
- さらに
- ジェネレータ
- 助けます
- こちら
- 認定条件
- How To
- しかしながら
- HTTPS
- 影響
- 重要
- 改善します
- 改善
- 増える
- 独立しました
- 影響
- インテリジェント-
- 関心
- IT
- 自体
- ジョブ
- Jobs > Create New Job
- 参加した
- 知識
- ラボ
- ラベル
- 言語
- 大
- より大きい
- 打ち上げ
- リード
- 学習
- LIMIT
- LINE
- ローカル
- 機械
- make
- 作る
- 大規模な
- 意味
- メソッド
- メトリック
- かもしれない
- ML
- モデル
- 他には?
- の試合に
- ナチュラル
- 必ずしも
- ニーズ
- ネットワーク
- ノート
- 数
- 目的
- 得
- 最適化
- 最適化
- 最適化
- オリジナル
- その他
- 自分の
- 特に
- 支払う
- パフォーマンス
- 実行
- お願いします
- ポイント
- 人気
- 練習
- 校長
- 問題
- プロセス
- 処理
- は、大阪で
- 範囲
- ランキング
- レポート
- レポーター
- レポート
- 表し
- 必要
- 結果
- ラン
- ランニング
- 同じ
- 科学者
- を検索
- 秒
- シード
- 選択
- 感情
- セッションに
- 設定
- 表示する
- 重要
- 同様の
- 簡単な拡張で
- サイズ
- 溶液
- 洗練された
- スペース
- 特定の
- split
- 標準
- start
- 都道府県
- まだ
- 戦略
- システム
- タスク
- test
- 世界
- したがって、
- 時間
- トレード
- トレーニング
- 治療する
- すばらしい
- トライアル
- 理解する
- us
- つかいます
- users
- 通常
- 活用する
- 視認性
- Wikipedia
- 無し
- 労働者
- 世界
- あなたの