AI技術の発展に伴い、さまざまなビジネスに関わるAI技術はますます多様化しています。 AI モデルのパラメーターの数は年々爆発的に増加しており、高額な開発コスト、手作業への強い依存、不安定なアルゴリズム、長い実装サイクルなど、AI アルゴリズムの実装が直面する問題を克服することは、人工知能の実務者を悩ませる問題となっています。 「自動機械学習プラットフォーム」は、AI実装のプレッシャーを解決するための重要な手段です。今日は、自動機械学習プラットフォーム ATLAS の構築における Du Xiaoman の実践的な経験を共有します。
最初に、Du Xiaoman Machine Learning Platform の背景と開発について紹介します。その過程と現状。
## 度シャオマンは金融テクノロジー企業です。同社の社内ビジネス シナリオは主に 3 つの側面に分かれています:
ビジネスに関係する AI テクノロジーは非常に多様であるため、AI アルゴリズムの実装には大きな課題が生じます。
AI アルゴリズムの実装における問題点 不可能な三角形: アルゴリズム開発の高効率、低コスト、高品質を同時に達成することは困難です。
3. AI アルゴリズムの制作プロセス
AI アルゴリズムの実装は、主にデータ管理、モデル トレーニング、アルゴリズムの最適化、デプロイとリリースの 4 つの部分に分かれており、モデルのトレーニングとアルゴリズムの最適化は反復的なプロセスです。
アルゴリズム開発の各ステップでは、そのステップに関与する人々の技術的要件は大きく異なります。
各ステップに必要な技術スタックを見ると、1 人、2 人、または 3 人の技術者がすべての技術を完全に習得するのは難しいことがわかります。手作業によるあらゆる工程が生産のボトルネックとなり、生産が不安定になります。機械学習プラットフォームを使用すると、これら 2 つの問題を解決できます。
当社の機械学習プラットフォーム ATLAS は、AI 制作の全プロセスを実行します。 AI アルゴリズムの実装を置き換えるプロセスに人間が参加することで、効率的な出力という目標を達成し、AI アルゴリズムの研究開発の効率を高めることができます。
#ATLAS には次の 4 つのプラットフォームが含まれます:
#これら 4 つのプラットフォームの間には反復的な関係もあります。これらのプラットフォームの設計内容と運用プロセスを以下に紹介します。
5. ATLAS: データとトレーニング(1) アノテーション プラットフォーム
アノテーション プラットフォームは主にトレーニング用に提供されます。 AI アルゴリズムのラベルデータ データのラベル付け ディープラーニングの誕生以来、モデルは非常に複雑になっています AI アルゴリズムの効果のボトルネックはモデル設計からデータの質と量に移りました したがって、AI アルゴリズムの実装ではデータの効率的な生成が重要です。 リンク。
ATLAS のデータ アノテーション プラットフォームには、主に、マルチシナリオ カバレッジとインテリジェント アノテーションという 2 つの機能と特徴があります。
#(2) データプラットフォーム データプラットフォームは主に大きな成果を実現します。 -scale データ ガバナンスでは、ガバナンス プロセス中の柔軟性を考慮し、サンプルを動的に一致させます。何億ものユーザーの 5000 次元を超える機能 を保存することに基づいて、オンライン リアルタイム クエリを実現できます。動的マッチング サンプルは、さまざまなシナリオのサンプル選択とデータ選択の要件を満たすことができます。 #(3) トレーニングプラットフォーム トレーニングプラットフォームは非常に重要な施設です。これは 5 つの層に分かれています: スケジューリング層: トレーニング プラットフォームにはハードウェア リソースの管理が含まれ、最下位のスケジューリング層はハードウェア リソースの管理を担当します。これらのリソースのスケジュール設定。 API インターフェイス レイヤーは、モデルが接触する 3 つの部分を提供します: 基本的な特徴処理 以下は、ATLAS での 2 つの最適化反復のシナリオを示しています。 たとえば、OCR モデルの実装中に、古いモデルのデプロイ後にいくつかの悪いケースが生成されます。これらの悪いケースは、既存の注釈データとマージされて新しいデータ セットになります。その後、古いモデルは次の方法で最適化されます。 AutoML 最適化パイプラインを使用して新しいモデルを生成し、デプロイメント後にこのサイクルが繰り返されます。このようなサイクルを通じて、モデルはさらに 1% の精度向上を維持できます。OCR モデルの精度は非常に高く、通常 95% 以上であるため、1% も大きな向上です。 わかりやすくするため繰り返される最適化プロセスは、フルプロセス AutoML に置き換えられます。AutoML は、専門家の経験が必要なシナリオの補助的な最適化として使用されます。フルプロセス AutoML の結果は、展開およびオンラインに最適なモデルを選択するためのベースラインとして使用されます。当社では、この最適化手法により60%以上のシナリオで性能向上が達成されており、改善効果は1%~5%となっています。 #以下では、当社が使用している AutoML テクノロジーと改善内容を紹介します。 。 最初に、AutoML が従来のエキスパート モデリングの利点と比較して何を持っているかを紹介します。 #AutoML の利点は 3 つの側面に分けられます。 AutoML で一般的に使用されるテクノロジを紹介しましょう。
当社デプロイメントはサーバーレスのようなアーキテクチャを採用していますが、サーバーレスのようなと言われる理由は、完全なサーバーレスのサービスではないためです。当社のサービスは幅広い一般的なアプリケーション シナリオを指向しておらず、モデルのオンライン サービスのみを指向しているため、より多くのシナリオとの互換性を考慮する必要はありません。
7. ATLAS: 最適化反復
#2. 自動機械学習
1. エキスパート モデリングと AutoML
#2. AutoML の概要
AutoML で一般的に使用されるテクノロジには、次の 3 つの側面があります。
#次のセクションでは、これら 3 つのテクノロジーをそれぞれ紹介します。
3. 自動機械学習プラットフォーム: 自動最適化パイプライン
最初はハイパーパラメータの最適化部分です。実際、自動最適化パイプラインでは、ハイパーパラメーターの最適化だけでなく、機械学習パイプライン全体が自動最適化のターゲットとして使用されます。自動化された特徴量エンジニアリング、モデルの選択、モデルのトレーニング、自動統合などが含まれており、個別のハイパーパラメーターの最適化と比較してオーバーフィッティングの可能性が低減されます。
さらに、主流の AI アルゴリズムや AutoML ツールと互換性があり、拡張しやすい AutoML フレームワーク Genesis を実装しました。これは、プラットフォーム内のさまざまな機能モジュールを相互に直交化することができ、これらを自由に組み合わせて、より柔軟な自動最適化パイプラインを実現できます。
は当社でも使用されています。 メタ学習手法を紹介したところで、メタ学習手法の必要性とその適用の主要なシナリオを紹介しましょう。
#(1) メタ学習の必要性
大量に蓄積した上でその後、データセットがメタ特徴空間内で明らかな集合を示していることが判明したため、メタ特徴空間内で密に分布しているデータセットの最適解も近いと仮定しました。この仮定に基づいて、 履歴タスクのハイパーパラメータを使用して、新しいタスク のパラメータ最適化をガイドしました。その結果、ハイパーパラメータ検索の収束が速くなり、限られた予算の下で追加のパラメータによってアルゴリズムの効果を向上できることがわかりました。 1%。
(2) アプリケーション シナリオ
#ビッグ データ アプリケーション シナリオでは、データ セット A とデータ セット B をマージして生成するなど、既存のデータ セットをマージする必要がある場合があります。新しいデータ セット C。データ セット A とデータ セット B のハイパーパラメータをデータ セット C のコールド スタートとして使用して、データ セット C のハイパーパラメータ最適化をガイドする場合、一方では検索スペースがロックされる可能性があります 一方、最適なパラメータ最適化結果を達成できます。
5. 自動機械学習プラットフォーム: 深層学習の最適化
実際の開発シナリオでは、展開シナリオが異なるとモデルのサイズとモデルのサイズに異なる影響を及ぼします。時間のパフォーマンス要件が異なります。第二に、ニューラル ネットワーク構造の最適化はモデル最適化の重要な部分であり、このステップでは手動による干渉を排除する必要があります。そこで我々は重みもつれに基づくワンショットNAS法を提案し、従来のDARTS法に比べて探索効率が3倍以上に達し、探索されたサブネットワークモデルのパラメータ量と計算コストを制御可能とした。ターゲット内で選択されます。さらに、さまざまな CV タスク要件を満たすために、MobileNet や ResNet などのさまざまなスペースもサポートしています。 最後に、機械学習の構築中に遭遇した問題について説明します。プラットフォームの規模と効率の問題。 #規模と効率の問題に注目する理由これは、ディープ ラーニングがモデル サイズと計算要件との間の矛盾に直面しているためです。 3. スケールと効率
#1. ディープラーニングのジレンマ
#モデル パラメーターが多いほどモデルのパフォーマンスが向上することは、業界のコンセンサスです。深層学習には次のムーアの法則があります。 ##ハードウェア パフォーマンスは 18 か月で 2 倍になりました
最も一般的に使用される最適化手法は、データ並列処理、モデル並列処理、等最も一般的に使用されるのはデータ並列テクノロジです。
#ATLAS プラットフォームのデータ並列テクノロジには、次の特徴があります。
ATLAS の基本機能としては、何の意味もなく使えます。人工ニューラル ネットワーク モデルをサポートできるだけでなく、XGB、LGBM などのブースティング モデルもサポートします。
複数の通信アーキテクチャの最適化された並列効率をサポートします。
完全接続層のパラメーター スケールネットワーク モデルは非常に大きく、たとえば、arcFace の分類スケールは数十、数百万、さらには数千万に達しますが、このような完全に接続された層は GPU カードではカバーできません。現時点では、層内並列技術を導入する必要があり、異なるノードが同じテンソルの異なる部分を計算します。
同時に、層間並列テクノロジも使用されます。つまり、ネットワークの異なる層のデータが異なるノードで計算され、依存関係のない計算がプリエンプトされて IDLE (GPU 待機時間) が削減されます。 ) 計算プロセス中に。
#テンソルで記述できる線形データに加えて、いくつかのグラフ データの探索並列トレーニング。
#グラフ データの場合、サンプリングやその他の操作でノードを動的に横断する必要があり、グラフ データのサイズは一般的に大きくなります。いずれも非常に大きく、社内のグラフデータは数百億に達しており、これを1台のマシンで計算するのは困難です。
#グラフ データの分散コンピューティングのボトルネックはマッピング テーブルにあります。従来のマッピング テーブルの空間複雑さは O(n)、たとえば 10 億です。ポイント 10 億 エッジ グラフ データは 160 GB のメモリを占有し、分散トレーニングのスケール上限を形成します。空間計算量が O(1) の手法を提案し、ノードとエッジの ID を並べ替えることでマッピング境界のみを保持し、グラフ並列学習の規模を任意に拡張できる。
5. トレーニングの効率同時に、トレーニングの効率に関してもいくつかの最適化を行いました。 。
##4. まとめと感想
## 最後に、機械学習プラットフォームの構築における私たちの経験と考えについて話しましょう。
私たち
はいくつかの経験を次のように要約しました:AI アルゴリズムの実装にはテクノロジーとコンテンツのあらゆる側面が含まれるため、どのリンクでも学生に全体の状況を理解するよう要求することは不可能です。そのため、提供できるプラットフォームが必要です。これらの基礎機能は、誰もがこれらの問題を解決できるように支援します。
自動化または AutoML の適用がうまく行われた場合にのみ、アルゴリズム専門家の生産性がより効果的に解放され、アルゴリズム専門家がより多くの作業を行えるようになるためです。 -深度アルゴリズム、または機械学習の上限を高めるための能力構築。
A1: 最も一般的に使用されているオープン ソースの AutoML フレームワークは Optuna です。私は Auto-Sklearn と AutoWeka も試しました。その後、Web サイト automl.org を皆さんにお勧めします。現在、この分野に従事している人は実際には比較的少ないため、この Web サイトは AutoML 分野の数人の専門家や教授によって構築された Web サイトであり、誰もが参照できる AutoML のオープンソース学習資料が多数あります。私たちが推奨するオープン ソース フレームワークは Optuna で、パラメータ調整に使用します。そのアルゴリズムは最も基本的なベイジアン最適化であるだけでなく、非常に大きなパラメータに適した TPE アルゴリズムであるためです。一部のシナリオでは、ベイジアン最適化はパラメーターが少ない一部のシナリオにはさらに適していますが、何度も試してみると、どのシナリオがどの方法がより多くの経験に適しているかについて異なる意見が出る可能性があるため、さまざまなシナリオに応じていくつかの異なる方法を試してみることをお勧めします。
#A2: 機械学習プラットフォームを構築してから 3 ~ 4 年が経ちます。当初、私たちはまずアプリケーションのデプロイの問題を解決し、次にコンピューティングやトレーニングなどの実稼働機能の構築を開始しました。ゼロから構築する場合は、いくつかのオープンソースフレームワークを参考にして構築し、利用中に自分のビジネスシーンでどのような問題が発生するかを確認し、今後の開発の方向性を明確にすることをお勧めします。
A3: これはより具体的なアルゴリズムの最適化問題である可能性がありますが、私たちの最適化パイプラインでは、サンプリング手法を通じてトレーニングします。この手法により、タスクはより多くのことを確認できるようになります。データセットの角度、または側面を分析し、これらのサンプリング後にトレーニングされた最上位モデルを統合して、モデルにより強力な汎化機能を与えます。これは、シーンでは非常に重要な方法でもあります。
A4: この開発サイクルは先ほども述べましたが、約 3 ~ 4 年かかります。それから、人的投資ということでございますが、現在学生は六、七名でございますが、当初はこれよりもさらに少なかったわけでございます。
#A5: まず第一に、この学生が言及した仮想化 GPU は、リソースのセグメント化と分離を指すはずです。機械学習プラットフォームを構築する場合、GPU の仮想化は必須の機能であるはずであり、これは、より適切なリソースのスケジューリングと割り当てを実現するためにリソースを仮想化する必要があることを意味します。次に、これに基づいて、GPU のビデオ メモリとそのコンピューティング リソースを分割し、さまざまなサイズのリソース ブロックをさまざまなタスクに割り当てることもできますが、この時点では実際にはトレーニングしていません。トレーニング タスクは通常、より高いパフォーマンスを備えているため、内部で使用します。コンピューティング機能の要件を満たしているため、リソース消費量が少ないアプリケーション シナリオではなく、推論シナリオで使用します。実際の適用プロセス中に、仮想化テクノロジには優れたオープンソースの無料ソリューションが存在しないことがわかり、一部のクラウド サービス ベンダーが有料のソリューションを提供するため、いくつかのタスクと高度なタスクを混合した時分割多重化ソリューションを導入に使用しました。時分割多重化を実現するためのコンピューティング要件と、コンピューティング要件が低い一部のタスクでは、ある程度の容量増加の効果が得られます。
#A6: 直線加速度比に近づけることができますが、自分で測定すると、良い場合は 80 ~ 90 のレベルに達する可能性があります。もちろん、ノード数が非常に多い場合は、さらなる最適化が必要になる可能性があります。現在、32 または 64 ノードで 80 または 90 の加速率を達成できるという論文を発表したり、論文を目にしたりするかもしれません。それは必要かもしれません。より特殊な最適化。しかし、機械学習プラットフォームを使用している場合は、より広範囲のシナリオを対象にする必要がある可能性があります。実際のシナリオでは、ほとんどのトレーニングには 4 枚の GPU カードまたは 8 枚の GPU カードが必要になる可能性があり、最大 16 枚の GPU カードで要件を満たすことができます。
#Q7: AutoML を使用する場合、ユーザーはどのようなパラメータを設定する必要がありますか?計算全体にどれくらいの計算能力と時間が必要ですか?#A7: AutoML の理想的な状況では、ユーザーはパラメータを設定する必要がありません。もちろん、ユーザーがニーズに応じていくつかのパラメータを調整または決定できるようにします。時間の消費という点では、すべての AutoML シナリオで、最適化を 1 日以内に完了することが目標です。また、計算能力に関しては、ツリーモデル XGB、LGBM などの一般的なビッグデータ モデリングであれば 1 台のマシンでも処理できますが、GPU タスクの場合は GPU タスクの規模に依存します。基本的に、AutoML トレーニングは、元のトレーニング スケールの 2 ~ 3 倍のコンピューティング能力で完了できます。
#Q8: どのようなオープンソースの機械学習フレームワークを参照できますか?#A8: この質問は先ほど言及したものですが、Optuna、Auto-Sklearn、AutoWeka を参照してください。先ほど、automl.org というウェブサイトについて触れましたが、そこには多くの情報が掲載されています。 #Q9: EasyDL との関係は何ですか?
今日の共有はこれで終わりです。皆さん、ありがとうございました。
以上がDuxiaoman 自動機械学習プラットフォームの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。