著者: Yajie Yingliang、Chen Long 他 導入美団のフードデリバリー事業が成長を続ける中、フードデリバリー広告エンジンチームは複数の分野でエンジニアリングの探求と実践を行い、一定の成果を上げています。連載形式でお伝えします。内容は主に、①ビジネスプラットフォーム化の実践、②大規模ディープラーニングモデルエンジニアリングの実践、③ニアラインコンピューティングの探究と実践、④大規模インデックス構築とオンライン検索サービスの実践、⑤メカニズムエンジニアリングプラットフォーム化の実践などです。先日、当社はビジネスプラットフォーム化の実践を公開しました(詳細は記事「美団テイクアウト広告プラットフォーム化の探求と実践」をご参照ください)。この記事は、連載記事の2番目です。オンラインレイテンシとオフライン効率という2つの側面から始めて、フルリンクレベルでの大規模ディープモデルがもたらす課題に焦点を当て、大規模ディープモデルでの広告のエンジニアリング実践について説明します。皆様に何らかの助けやインスピレーションをお届けできれば幸いです。 1 背景検索、推奨、広告(以下、検索プロモーション)などのインターネットビジネスの中核シナリオでは、データマイニングと興味関心モデリングを実施してユーザーに高品質のサービスを提供することが、ユーザーエクスペリエンスを向上させる重要な要素となっています。近年、データ配当とハードウェア技術配当のおかげで、ディープラーニングモデルは検索およびプロモーションビジネスで業界で広く導入されてきました。同時に、CTRシナリオでは、業界は単純なDNN小型モデルから、数兆のパラメータを持つ大規模または超大型の埋め込みモデルへと徐々に移行しています。テイクアウト広告事業ラインは主に「LR浅層モデル(ツリーモデル)」→「深層学習モデル」→「大規模深層学習モデル」の進化プロセスを経験してきました。全体的な進化の傾向は、人工的な特徴に基づく単純なモデルから、データを中核とする複雑なディープラーニング モデルへと徐々に移行しています。大規模モデルの使用により、モデルの表現力が大幅に向上し、需要と供給のマッチングがより正確になり、その後のビジネス展開の可能性が広がりました。しかし、モデルとデータの規模が拡大し続けると、効率とそれらの間には次のような関係があることがわかります。上図に示すように、データ規模とモデル規模が増加すると、対応する「期間」はますます長くなります。この「期間」はオフライン レベルでの効率に対応し、オンライン レベルでの待ち時間に反映されます。私たちの仕事は、この「期間」の最適化を中心に行われます。 2 分析通常の小規模モデルと比較して、大規模モデルの中心的な問題は、データ量とモデル規模が数十倍、さらには数百倍に増加すると、全体的なリンクにおけるストレージ、通信、コンピューティングが新たな課題に直面し、それがアルゴリズムのオフライン反復効率に影響を与えることです。オンラインレイテンシ制約などの一連の問題をどのように克服するのでしょうか?まず、以下に示すように、完全なリンク分析から始めましょう。 期間の増加は主に以下の側面に反映されます。
この記事では、オンラインレイテンシ(モデル推論、特徴提供)とオフライン効率(サンプル構築、データ準備)という2つの側面に焦点を当て、大規模なディープモデルでの広告のエンジニアリング実践を段階的に説明します。以降の章では、「期間」を最適化する方法やその他の関連する問題について説明しますので、お楽しみに。 3 モデル推論モデル推論レベルでは、フードデリバリー広告は、ニッチ規模の DNN モデルのサポートを代表とする 1.0 時代から、高効率とローコードによるマルチビジネス反復をサポートする 2.0 時代、そして徐々にディープラーニング DNN コンピューティング パワーと大規模ストレージのニーズに向けられた今日の 3.0 時代まで、3 つのバージョンを経てきました。主な進化の傾向は以下の図に示されています。 大規模モデル推論シナリオの場合、3.0 アーキテクチャが解決する 2 つの主要な問題は、「ストレージの問題」と「パフォーマンスの問題」です。もちろん、100GBを超えるサイズのN個のモデルをどのように反復するか、計算量が数十倍に増加したときにオンラインの安定性をどのように確保するか、パイプラインをどのように強化するかなども、プロジェクトが直面する課題です。以下では、Model Reasoning 3.0 アーキテクチャが「分散」を通じて大規模モデル ストレージの問題をどのように解決するか、また CPU/GPU アクセラレーションを通じてパフォーマンスとスループットの問題をどのように解決するかに焦点を当てます。 3.1 分散型大規模モデルのパラメータは、主にスパース パラメータと密なパラメータの 2 つの部分に分かれています。
したがって、モデルパラメータ規模の拡大を解決する鍵は、スパースパラメータを単一マシンストレージから分散ストレージに変換することです。変換方法は、①モデルネットワーク構造の変換、②スパースパラメータのエクスポートの 2 つの部分で構成されます。 3.1.1 モデルネットワーク構造の変換業界では分散パラメータを取得する方法として、外部サービスが事前にパラメータを取得して推定サービスに渡す方法と、推定サービスがTF( TensorFlow )演算子を変更して分散ストレージからパラメータを取得する方法の2つがあります。アーキテクチャ変換のコストを削減し、既存のモデル構造への侵入を減らすために、TF 演算子を変換して分散パラメータを取得することを選択しました。 通常、TF モデルはネイティブ演算子を使用してスパース パラメータを読み取ります。コア演算子は GatherV2 演算子です。演算子入力は主に 2 つの部分で構成されます。① クエリする ID リスト。② スパース パラメータを格納する埋め込みテーブル。 演算子の機能は、ID リスト インデックスに対応する埋め込みデータを埋め込みテーブルから読み取り、それを返すことです。これは本質的にハッシュ クエリ プロセスです。このうち、Embedding テーブルに格納される Sparse パラメータはすべて、単一のマシン モデル内の単一のマシンのメモリに格納されます。 TF 演算子の変換の本質は、モデル ネットワーク構造を変換することです。変換の中核となるポイントは、主に 2 つの部分です。① ネットワーク グラフの再構築、② カスタム分散演算子。 1. ネットワーク図の再構築:モデルネットワーク構造を変換し、ネイティブ TF 演算子をカスタム分散演算子に置き換え、ネイティブの埋め込みテーブルを固定します。
2.カスタム分散演算子: ID リストに基づいて、埋め込みクエリ プロセスを、ローカルの埋め込みテーブルからのクエリから分散 KV からのクエリに変換します。
3.1.2 スパースパラメータのエクスポート
全体のプロセスを下の図に示します。オフライン分散モデル構造変換、ニアラインデータ一貫性保証、オンラインホットデータキャッシュなどの手段を通じて、数百 GB の大規模モデルの正常な反復ニーズを保証します。 ご覧のとおり、分散システムで使用されるストレージは外部 KV 機能であり、将来的にはより効率的で柔軟性があり、管理しやすい埋め込みサービスに置き換えられる予定です。 3.2 CPUアクセラレーションモデル自体の最適化方法とは別に、CPU 高速化には 2 つの一般的な方法があります。① AVX2 や AVX512 命令セットの使用などの命令セット最適化、② 高速化ライブラリ ( TVM、OpenVINO ) の使用です。
以下では、CPU アクセラレーションに OpenVINO を使用した実際の経験のいくつかに焦点を当てます。 OpenVINO は、Intel が発表したディープラーニングに基づくコンピューティング高速化および最適化フレームワークであり、圧縮最適化、高速コンピューティング、機械学習モデルのその他の機能をサポートします。 OpenVINO の加速原理は、線形演算子の融合とデータ精度の調整という 2 つの部分に簡単にまとめることができます。
CPU アクセラレーションは通常、固定バッチ内の候補キューの推論を高速化しますが、検索およびプロモーションのシナリオでは、候補キューは動的になることがよくあります。つまり、モデル推論の前にバッチ マッチング操作を追加する必要があります。つまり、要求された動的バッチ候補キューをそれに最も近いバッチ モデルにマッピングする必要がありますが、そのためには N 個のマッチング モデルを構築する必要があり、メモリ使用量が N 倍になります。しかし、現在のモデルサイズは数百GBに達しており、メモリが深刻に不足しています。したがって、加速のために適切なネットワーク構造を選択することは、検討する必要がある重要な問題です。次の図は、全体的なオペレーティング アーキテクチャを示しています。
現在、OpenVINO ベースの CPU アクセラレーション ソリューションは、実稼働環境で良好な結果を達成しています。CPU がベースラインと等しい場合、サービス スループットは 40% 増加し、平均レイテンシは 15% 減少します。 CPU レベルで高速化を実行したい場合は、OpenVINO が適しています。 3.3 GPUアクセラレーション一方では、ビジネスの発展に伴い、ビジネス形態はますます多様化し、トラフィックが増加し、モデルはより広く深くなり、コンピューティング電力の消費は急増しています。他方では、広告シナリオでは主に DNN モデルが使用され、多数のスパースな特徴埋め込みとニューラル ネットワークの浮動小数点演算が伴います。メモリアクセスとコンピューティング集約型のオンライン サービスであるため、可用性を確保しながら低レイテンシと高スループットの要件を満たす必要があり、これは単一マシンのコンピューティング能力にとっても課題となります。コンピューティングパワーリソース要件とスペースの間のこれらの矛盾が適切に解決されない場合、ビジネス開発が大きく制限されます。モデルが拡張および深化される前は、純粋な CPU 推論サービスでかなりのスループットを提供できますが、モデルが拡張および深化されると、計算の複雑さが増加します。高可用性を確保するには、大量のマシンリソースが必要になり、大規模なモデルをオンラインで大規模に適用できなくなります。現在、業界では、この問題を解決するために GPU を使用するのが一般的な解決策です。GPU 自体は、計算集約型のタスクに適しています。 GPU を使用するには、使いやすさと汎用性を考慮しながら、可用性と低レイテンシを確保しながら、可能な限り最高のスループットを達成する方法という課題を解決する必要があります。この目的のために、私たちはTensorFlow-GPU、TensorFlow-TensorRT、TensorRTなど、GPUに関する多くの実践的な作業も行ってきました。TFの柔軟性とTensorRTの加速効果を考慮するために、TensorFlow + TensorRTの独立した2段階アーキテクチャ設計を採用しています。 3.3.1 加速解析
3.3.2 最適化の目的ディープラーニングの推論段階では、計算能力とレイテンシに対する要件が非常に高く、トレーニング済みのニューラル ネットワークを推論の末端に直接展開すると、計算能力が不足して実行できない、または推論時間が長くなるなどの問題が発生する可能性が高くなります。したがって、トレーニングされたニューラル ネットワークを最適化する必要があります。業界におけるニューラル ネットワーク モデルの最適化の一般的な考え方は、モデルの圧縮、異なるネットワーク レイヤーのマージ、スパース化、低精度のデータ型の使用、さらにはハードウェア特性に基づいたターゲットを絞った最適化など、さまざまな側面から最適化できます。この目的のために、私たちは主に次の 2 つの目標を中心に最適化を行います。
上記 2 つの目標に焦点を当て、以下では、モデル最適化、融合最適化、エンジン最適化で行った作業の一部を具体的に紹介します。 3.3.3 モデルの最適化1. 計算と転送の重複排除: 推論中、同じバッチには 1 人のユーザー情報のみが含まれます。したがって、推論前にユーザー情報をバッチ サイズから 1 に減らし、推論が実際に必要なときに拡張することで、データの転送コピーと繰り返し計算のオーバーヘッドを削減できます。下の図に示すように、推論前に User クラスの特徴情報を 1 回だけ照会し、その後はユーザーに関連するサブネットワークで切り取って、関連性を計算する必要があるときに展開することができます。
2. データ精度の最適化:モデルトレーニング時には勾配を更新するためにバックプロパゲーションが必要となるため、高いデータ精度が求められます。しかし、モデル推論時には前向き推論のみが行われ、勾配更新は必要ありません。そのため、効果を確保しながら、FP16または混合精度を使用して最適化することで、メモリスペースを節約し、転送オーバーヘッドを削減し、推論パフォーマンスとスループットを向上させます。 3. 計算のプッシュダウン:CTRモデル構造は、主にEmbedding、Attention、MLPの3つの層で構成されています。Embedding層はデータ取得に偏っており、Attentionは部分的にロジックに偏っており、部分的に計算に偏っています。GPUの潜在能力を最大限に活用するために、CTRモデル構造におけるAttentionとMLPの計算ロジックの大部分はCPUからGPUにプッシュダウンされて計算され、全体的なスループットが大幅に向上します。 3.3.4 融合最適化オンラインモデル推論中、各レイヤーの計算操作は GPU によって完了します。実際には、CPU はさまざまな CUDA カーネルを起動して計算を完了します。CUDA カーネルはテンソルを非常に高速に計算しますが、CUDA カーネルの起動と各レイヤーの入出力テンソルの読み取りと書き込みに多くの時間が浪費されることが多く、メモリ帯域幅のボトルネックと GPU リソースの浪費を引き起こします。ここでは主に、TensorRT の自動最適化と手動最適化という 2 つの側面について紹介します。 1.自動最適化: TensorRT は、ディープラーニング アプリケーションに低レイテンシ、高スループットの推論展開を提供できる高性能ディープラーニング推論オプティマイザーです。 TensorRT は、超大規模モデル、組み込みプラットフォーム、または自動運転プラットフォームの推論を高速化するために使用できます。 TensorRT は現在、TensorFlow、Caffe、MXNet、PyTorch など、ほぼすべてのディープラーニング フレームワークをサポートしています。TensorRT と NVIDIA GPU を組み合わせることで、ほぼすべてのフレームワークで推論を迅速かつ効率的に展開できます。さらに、一部のレイヤー フュージョンやカーネル自動チューニングなど、一部の最適化ではユーザーの参加をあまり必要としません。
2.手動最適化: 周知のとおり、GPU は計算集約型の演算子には適していますが、他の種類の演算子 (軽量コンピューティング演算子、論理演算演算子など) にはあまり適していません。 GPU コンピューティングを使用する場合、各操作は通常、CPU が GPU にビデオ メモリを割り当てる -> CPU が GPU にデータを送信 -> CPU が CUDA カーネルを起動 -> CPU がデータを取得する -> CPU が GPU ビデオ メモリを解放するという複数のプロセスを経ます。スケジューリング、カーネルの起動、メモリ アクセスのオーバーヘッドを削減するには、ネットワークの収束が必要です。 CTR 大規模モデルは構造が柔軟かつ変更可能であるため、ネットワーク融合手法を統一することは難しく、特定の問題を個別に分析することしかできません。たとえば、垂直方向では Cast、Unsqueeze、Less が融合され、TensorRT 内で Conv、BN、Relu が融合され、水平方向では同じ次元の入力演算子が融合されます。そのために、NVIDIA 関連のパフォーマンス分析ツール ( NVIDIA Nsight Systems、NVIDIA Nsight Compute など) を使用して、実際のオンライン ビジネス シナリオに基づいて特定の問題を分析します。これらのパフォーマンス分析ツールをオンライン推論環境に統合して、推論プロセス中に GPU Profing ファイルを取得します。 Profing ファイルを通じて、推論プロセスを明確に確認できます。次の図に示すように、推論全体における一部の演算子のカーネル起動制限現象が深刻であり、一部の演算子間のギャップが大きく、最適化の余地があることがわかりました。 そのために、パフォーマンス分析ツールと変換モデルに基づいてネットワーク全体を分析して、TensorRT が最適化した部分を見つけ出し、ネットワーク内で最適化できる他のサブ構造に対してネットワーク融合を実行します。同時に、そのようなサブ構造がネットワーク全体で一定の割合を占め、融合後にコンピューティング密度をある程度まで高めることができることを確認する必要があります。使用するネットワーク統合方法の種類については、特定のシナリオに従って柔軟に使用できます。 3.3.5エンジン最適化
3.3.6パイプラインモデルの最終的なオンラインロードまでのプロセス全体は、面倒であり、モデルは異なるGPUカード、異なるTensort、Cudaバージョンと互換性がありません。したがって、モデル反復の全体的な効率を改善するために、次の図に示すように、パイプラインに関連する機能を構築しました。 パイプライン構造は、2つの部分で構成されています。オフラインモデルの分割と変換プロセスと、オンラインモデルの展開プロセス:
パイプラインは、構成可能な機能とワンクリック機能を構築することにより、モデル反復の効率を大幅に改善し、アルゴリズムとエンジニアリングの同僚が自分の仕事にもっと集中できるようにします。次の図は、純粋なCPU推論と比較してGPUの実践で達成された全体的な利点を示しています。 4機能サービスコードゲン最適化特徴抽出は、従来のLRモデルと、ますます人気のある深い学習モデルの両方をモデル化する前駆体です。 Meituan Takeaway機能プラットフォームの以前のブログの構築と実践では、モデル機能の自己記述MFDLに基づいて機能計算プロセスを構成する方法を説明し、オンラインの推定およびオフライントレーニング中にサンプルの一貫性を確保しようとしました。ビジネスの急速な反復により、特にモデル機能の数は増加し続けています。この目的のために、私たちは機能抽出層にいくつかの最適化を行い、スループットと時間消費の両方で大幅な利益を達成しました。 4.1フルプロセスコードゲン最適化DSLは、機能処理ロジックの説明です。初期の機能計算の実装では、各モデル構成のDSLが解釈されました。解釈された実行の利点は、実装が簡単であり、一般的に使用されるイテレーターパターンなど、優れた設計を通じて優れた実装を達成できることです。実際、モデル構成の固定バージョンの場合、すべてのモデル機能変換ルールが固定されており、リクエストでは変更されません。極端な場合、この既知の情報に基づいて、各モデル機能をハードコード化して最高のパフォーマンスを実現できます。明らかに、モデル機能の構成は大きく異なり、各モデルに対して手動でエンコードすることは不可能です。そのため、CodeGenのアイデアが生まれ、コンパイル中に各構成の独自のコードのセットが自動的に生成されます。 CodeGenは特定のテクノロジーやフレームワークではなく、抽象的な説明言語から特定の実行言語への変換プロセスを完了するアイデアです。実際、業界では、CodeGenを使用してコンピューティング集約型シナリオでコンピューティングを加速することが一般的な慣行です。たとえば、Apache SparkはCodeGenを使用して、1.xのExpressionCodegenから2.xで導入されたwholestageCodegenまでのexpresscodegenの実行パフォーマンスを最適化し、非常に明白なパフォーマンスの利点を達成しました。機械学習の分野では、Tensorflow XLAやTVMなどのTFモデルの加速フレームワークも、コードゲンの概念に基づいており、IRとローカル環境に基づいてスケジューリング最適化を実行します。 SparkのWholestageCodegenを利用して、私たちの目標は、機能計算DSL全体を実行可能な方法にコンパイルして、コードランタイム中のパフォーマンスの損失を減らすことです。コンピレーションプロセス全体を、フロントエンド(フロントエンド)、オプティマイザー(オプティマイザー)、バックエンド(バックエンド)に分割できます。フロントエンドは、主にターゲットDSLを解析し、ソースコードをASTまたはIRに変換します。具体的な実装は以下のとおりです。
最適化後、ノードDAGグラフの変換、つまりバックエンドコードの実装により、最終的なパフォーマンスが決定されます。困難の1つは、既存のオープンソース発現エンジンを直接使用できない理由でもあります。特徴計算DSLは純粋に計算式ではありません。読み取りオペレーターとコンバージョンオペレーターを組み合わせることにより、機能を取得および処理するプロセスを説明できます。
したがって、実際の実装では、さまざまな種類のタスクのスケジューリングを検討し、機械リソースの使用率を可能な限り改善し、全体的な時間のかかるプロセスを最適化する必要があります。業界の調査と独自の実践と組み合わせて、次の3つの実装が実行されました。
コードゲンソリューションも完全ではありません。コードジェンと非同期の非ブロッキングの実装に基づいて、適切なリターンがオンラインで取得されており、時間のかかる機能計算を減らし、CPU負荷を大幅に削減し、システムスループットを改善します。将来的には、ハードウェア命令( SIMDなど)や不均一なコンピューティング( GPUなど)の組み合わせを調査して最適化を行うなど、バックエンドのコンピレーションプロセス中にターゲットを絞った最適化を実行し、ターゲットを絞った最適化を実行し続けます。 4.2送信の最適化オンライン推定サービスは、全体としての2層アーキテクチャです。元のシステムプロセスは、特徴計算の結果をm(予測されたバッチサイズ)×n(サンプル幅)のマトリックスにスプライスし、それをシリアル化して計算層に転送することです。これを行う理由は、歴史的な理由で、多くの初期の非DNNモデルの入力形式がルーティングレイヤーを介してスプライスされた後、コンピューティングレイヤーが変換なしで直接使用できるためです。ただし、モデルの反復開発により、DNNモデルは徐々に主流になり、マトリックス伝送の欠点も非常に明白です。
上記の問題を解決するために、最適化されたプロセスは、輸送層に変換層を追加して、テンソル、マトリックス、オフラインCSV形式など、MDFLの構成に従って計算モデル機能を必要な形式に変換します。実際、ほとんどのモデルはTFモデルです。伝送消費をさらに節約するために、プラットフォームは各テンソルマトリックスを保存するためのテンソルシーケンス形式を設計しました。ここで、R_FLAGはアイテム機能の長さを表すために使用されます。コンパクトなテンソルシーケンス形式に基づいて、データ構造はよりコンパクトであり、ネットワークに送信されるデータの量を減らします。また、最適化された伝送形式は、コンピューティングレイヤーを呼び出すルーティングレイヤーのリクエストサイズも50%以上低下し、ネットワーク伝送時間が大幅に低下しました。 4.3高次元ID機能エンコーディングディスクリート機能とシーケンス機能は、機能処理段階を変更して、ハッシュ処理を介して元の機能を変更します。 1,000億レベルの次元の特性に直面している場合、弦のスプライシングとハッシュのプロセスは、表現空間とパフォーマンスの点で要件を満たすことができません。業界調査に基づいて、スロットエンコードに基づいて機能エンコード形式を設計および適用しました。 ここで、feature_hashは、ハッシュ後の元の機能値の値です。整数機能は直接入力できます。非整数機能またはクロス機能を最初に入力した後、44ビットを超えると切り捨てられます。スロットベースのエンコードソリューションが起動した後、オンライン機能計算のパフォーマンスを改善するだけでなく、モデル効果に大幅な改善をもたらしました。 5サンプル構造5.1ストリーミングサンプルオンラインおよびオフラインの一貫性の問題を解決するために、業界は一般に、単純なオフラインラベルのスプライシングと機能のバックフィルを介してサンプルを構築する代わりに、オンラインダンプのリアルタイムスコアリングで使用される機能データを使用します。元のアーキテクチャを下の図に示します。 このソリューションが機能スケールがますます大きくなり、反復シナリオがますます複雑になるにつれて、顕著な問題は、オンライン機能抽出サービスが大きなプレッシャーにさらされており、第二に、データストリーム全体を収集するコストが高すぎることです。このサンプル収集スキームには次の問題があります。
5.1.1一般的なソリューション上記の問題を解決するために、業界には2つの一般的なソリューションがあります。特定のプロセスを以下の図に示します。
5.1.2最適化の改善無効な計算を減らすという観点から、要求されたデータは公開されません。この戦略には、露出したデータに対してより強い需要があるため、処理をストリーミングするために天レベルの処理を事前に配置することで、データの準備時間を大幅に改善できます。第二に、データのコンテンツから、リクエストレベルの変更データとリンクが柔軟に分離および処理され、次の図が大幅に改善されます。 1。データの分割:大規模なデータ送信ボリューム(大きな機能スナップショットフローの大きな問題)、予測されたラベルとリアルタイムデータの問題を1つずつ解決し、リフロー中にオフラインデータに二次アクセスでき、リンクデータフローのサイズを大幅に削減できます。
2。遅延消費結合方法:大きなメモリ占有率の問題を解決します。
3.機能サンプル:ラベルの結合を通じて、ここでの再入国のリクエストの数はオンラインの20%未満です。露出がスプライシングされた後、露出モデルサービス要求(コンテキスト+リアルタイム機能)がフィルタリングされ、すべてのオフライン機能が補充され、完全なサンプルデータを形成します。 5.2構造化されたストレージビジネスの反復により、機能スナップショットの数が大きくなり、単一のビジネスシナリオで全体的な機能スナップショットが1日あたり数十レベルに達しています。コンピューティングエンジン(Spark)(シャッフルを使用すると、データはシャッフル書き込み段階のディスクに分類されます。割り当てられたメモリが不十分な場合は、複数のドロップと外部ソートが発生します) 、独自のデータのメモリと多数のコンピューティングCUが計算を効果的に完了し、メモリが高いメモリを占有します。サンプル構造プロセスのコアプロセスを以下の図に示します。 機能を補うと、次の問題が存在します。
サンプルの構造効率が遅いという問題を解決するために、短期的にはデータ構造ガバナンスから始めます。
データのオフラインストレージリソースは80%+まで保存され、サンプルの構造効率は現在200%+で増加しています。 6データ準備このプラットフォームは、機能、サンプル、モデルなどの多数の貴重なコンテンツを蓄積しています。機能最適化は、アルゴリズム担当者がモデル効果を改善するためのすべての方法の40%を占めていますが、フィーチャマイニングの従来の作業方法には、長い時間、マイニング効率の低さ、機能マイニングの繰り返しなどの問題があるため、プラットフォームは機能ディメンションでビジネスを強化することを望んでいます。機能の効果を検証し、ユーザーに最終効果インジケーターを推奨する自動化された実験プロセスがある場合、それは間違いなく戦略の学生が多くの時間を節約するのに役立ちます。リンク全体が構築されている場合、将来、異なる機能候補セットを入力して、対応する効果インジケーターを出力する必要があります。この目的のために、このプラットフォームは、機能とサンプルの「追加」、「減算」、「乗算」、「分割」のためのインテリジェントなメカニズムを構築しました。 6.1「追加」を行う機能の推奨は、モデルテスト方法に基づいており、新しいモデルとベースモデルのオフライン効果を比較するために、他のビジネスラインの既存のモデルへの多重化に基づいています。特定の機能の推奨プロセスを以下の図に示します。
6.2「減算」を行う機能の推奨が広告内に実装され、特定の利点が達成された後、機能エンパワーメントレベルでいくつかの新しい調査を行います。モデルの継続的な最適化により、機能の拡張は非常に高速であり、モデルサービスのリソースの消費は急激に増加しています。したがって、プラットフォームはエンドツーエンド機能スクリーニングツールを構築しました。
最终,在内部模型下线40%的特征后,业务指标下降仍然控制在合理的阈值内。 6.3 做“乘法”为了得到更好的模型效果,广告内部已经开始做一些新的探索,包括大模型、实时化、特征库等。这些探索背后都有一个关键目标:需要更多、更好的数据让模型更智能、更高效。从广告现状出发,提出样本库( Data Bank )建设,实现把外部更多种类、更大规模的数据拿进来,应用于现有业务。詳細は、次の図に示されています。 我们建立了一套通用的样本共享平台,在这个平台上,可以借用其他业务线来产生增量样本。并且也搭建通用的Embedding共享架构,实现业务的以大带小。下面以广告业务线复用非广告样本为例,具体做法如下:
举例来说,通过将非广告样本复用到广告内一个业务,使样本数量增加了几倍,结合迁移学习算法,离线AUC提升千分之四,上线后CPM提升百分之一。此外,我们也在建设广告样本主题库,将各业务生成的样本数据进行统一管理(统一元数据),面向用户透出统一样本主题分类,快速注册、查找、复用,面向底层统一存储,节约存储、计算资源,减少数据Join,提高时效性。 6.4 做“除法”通过特征“减法”可以剔除一些无正向作用的特征,但通过观察发现模型中还存在很多价值很小的特征。所以更进一步我们可以通过价值、成本两方面综合考虑,在全链路基于成本的约束下价值最大,筛选出那些投入产出比较低特征,降低资源消耗。这个在成本约束下去求解的过程定义为做“除法”,整体流程如下图所示。 在离线维度,我们建立了一套特征价值评估系统,给出特征的成本和价值,在线推理时可以通过特征价值信息进行流量降级、特征弹性计算等操作,做“除法”关键步骤如下:
7 总结与展望以上是我们在大规模深度学习工程上的反“增”实践,去助力业务降本提效。未来我们还会持续在以下方面进行探索、实践:
8 本文作者亚劼、英亮、陈龙、成杰、登峰、东奎、仝晔、思敏、乐彬等,均来自美团外卖技术团队。 |
<<: Dianping.com における検索関連性技術の探求と実践
海外メディアの報道によると、量子コンピューティングは間違いなく現在最もエキサイティングなテクノロジー...
近年、交通と環境に対する要求が継続的に高まっており、わが国の新エネルギー自動車は急速な発展を遂げてい...
[[183545]]ハッカーが徐々に人工知能システムに適応するにつれて、プログラマーも積極的に新し...
現在の科学技術分野で最もホットな技術の一つとして、人工知能は業界内外の多くの人々の注目を集めています...
最近、メタバースに新たな水が流れ込んできました。 Metaが開催した研究室でのディスカッションにおい...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
がんの検出から就職面接の実施者の決定まで、AI システムは多くのことを人間よりも速く、正確に、確実に...
かつて、人工知能医療診断の先駆者であったIBM Watson(通称ワトソン)は、現実世界における人工...
[[347792]]今日のセキュリティとテクノロジーの分野における大きなトレンドの 1 つは、世界中...
[[346344]] 「人類の技術発展の歴史を振り返ると、機械化、電化、情報化の時代を経験し、生産や...