表示
超・人工知能研究所 Super AI Research Lab トップへ超・人工知能研究所AI Research Lab / ぱそ太郎工事中

since
平成38年9月29日

← 検索結果に戻る

推薦モデルの埋め込み転送を減らす:重複統合と頻出項目のキャッシュ

SCARS

保存した記事を見るこのブラウザに保存します。無料会員で端末間の同期・フォルダ整理
原論文の図

SCARSの原論文から掲載した図です。細部はクリックして拡大できます。

原論文の図の説明を読む

Fig. 1: Existing training paradigm without coalescing.

出典:SCARS / arXiv ↗

概要

  • SCARSはバッチ内で重複する埋め込みの転送をまとめ、頻出項目をGPUに保持する。
  • Criteo Terabyteの著者らの実験では、バッチサイズ2048の1エポック時間はキャッシュなしのCPU・GPU構成が46.12分、SCARSが27.12分だった。
  • キャッシュを増やしすぎると検索時間が延び、非常に大きなバッチでは収束が遅れると著者らは報告する。
補足:編集した模式図で仕組みを確認する

VISUAL EXPLAINER

図でつかむ、SCARSの仕組み

左から右へ読む
  1. 01カテゴリID付き学習例
  2. 02頻出項目をGPUに保持
  3. 03学習例を分けてバッチ化
  4. 04重複をまとめて転送
  5. 05学習済み推薦モデル

原論文の説明をもとにした模式図です。処理の細部は省略しています。

研究の背景

推薦モデルは、商品IDなどのカテゴリを数値の並びに変える「埋め込み表」を使う。表がGPUのメモリに収まらない場合、CPU側での読み出しやGPUへの転送が学習時間に影響する。

著者らは、実データでは少数の項目が繰り返し参照されることに着目した。限られたメモリの中で、重複する転送を減らし、よく使う項目を手元に置く方法を検討する。

手法

入力はカテゴリIDを含む学習例である。同じバッチに同一項目が複数回現れたら、その埋め込みを一度だけ転送し、各例との対応を示す索引を添える。埋め込みはカテゴリを学習に使える数値列にしたものだ。例えば複数の例に同じ商品IDがあれば、転送する数値列をまとめられる。

項目の出現確率から重複統合後の通信量を見積もり、頻出する埋め込みをGPUのキャッシュ、つまり再利用用の保存領域に置く。さらに、保持した項目だけを使う例と、それ以外も使う例を分けてバッチ化する。キャッシュが占める分だけバッチ用メモリが減るため、著者らは通信量の計算と実測を使って容量を調整する。

新規性

SCARSの特徴は、項目ごとの出現確率から、同じバッチ内の重複をまとめた場合の期待通信量を見積もり、転送方法とキャッシュの選択につなげる点にある。

著者らはさらに、キャッシュを増やすとバッチに使えるメモリが減る関係をモデル化した。通信量だけでなく、メモリと計算時間の制約も踏まえて学習の処理量を高める枠組みとして提示している。

従来手法との違い

著者らの実験では、DLRMという推薦モデルをCPUだけで学習する構成と、埋め込み層をCPU、残りの計算をGPUに置くキャッシュなしの構成を比較対象とした。後者にはCPUとGPUの間の転送が生じる。

SCARSはバッチ内で重なる埋め込みをまとめ、頻出項目をGPUに保持する。変更するのは主に埋め込みの取得、転送、配置とバッチの組み方であり、示された比較は記載の学習構成に限られる。

実験結果

著者らはCriteo TerabyteでDLRMを学習し、24GBメモリのNVIDIA TITAN RTXを2台使用した。SCARSでは頻出埋め込みを256MB保持した。バッチサイズ2048の1エポック、つまり学習データを一巡する時間は、CPUのみが38.03分、キャッシュなしのCPU・GPU構成が46.12分、SCARSが27.12分だった。

同じ表では、バッチサイズ16384の1エポック時間をCPU・GPU構成30.10分、SCARS 4.52分と報告する。また、1時間学習後のテスト精度の表記値は、SCARSの2048で80.510、8192で80.724だった。いずれも著者らが示した条件での結果であり、ほかのデータへの適用結果はここから判断できない。

応用の可能性

編集上の応用案 · 論文が実証した用途とは区別しています。

編集上の応用案:商品推薦モデルを定期的に学習する現場で、商品などのカテゴリIDを含む履歴と、予測対象の正解ラベルを入力にする。既存の埋め込み表とIDの対応を確認し、項目の参照頻度を集計する。追加センサーは想定しない。

頻出項目を保持する候補に選び、その項目だけを使う例と、ほかの項目も使う例を分けてバッチを作る。出力は学習済み推薦モデルと学習時間の記録であり、時間短縮や予測精度の維持は実データで確かめる必要がある。

応用先の候補からNauhに相談できます。

導入時の検証

導入時の検証案 · 対象データでの再評価が必要です。

導入時の検証案:既存の推薦学習データからカテゴリID、予測対象の正解ラベル、項目ごとの参照回数を用意する。IDと埋め込み表の対応を点検し、頻度からキャッシュ候補を選ぶ。追加センサーは想定せず、学習例を頻出項目だけを使うものと、それ以外に分ける処理を加える。

同じデータとモデルで、現行のキャッシュなし構成を基準に比較する。バッチサイズとキャッシュ容量を記録し、1エポックの時間、転送量、メモリ使用量、同じ学習時間後の予測精度を測る。頻度を再集計して配置を更新する必要性も確認する。

限界と課題

著者らは、キャッシュを増やしすぎると埋め込みの検索を含む順伝播が遅くなると報告する。また、バッチを非常に大きくすると収束が遅れ、過学習しやすくなると述べる。容量とバッチサイズは実測で選ぶ必要がある。

編集上の検証事項は、別のデータでも参照頻度の偏りが続くか、頻度の変化に合わせて配置を更新できるか、学習時間と精度を両立できるかである。Alibabaのデータについては、実験設定で結果を予想する一方、結論では実証したと記しており、確認できた本文の範囲では条件と数値を照合できない。

応用先の候補
研究内容と応用案に基づく分類です。業界での導入実績を示すものではありません。

出典

元のタイトル・要旨を確認する(英語)

Stochastic Communication Avoidance for Recommendation Systems

One of the major bottlenecks for efficient deployment of neural network based recommendation systems is the memory footprint of their embedding tables. Although many neural network based recommendation systems could benefit from the faster on-chip memory access and increased computational power of hardware accelerators, the large embedding tables in these models often cannot fit on the constrained memory of accelerators. Despite the pervasiveness of these models, prior methods in memory optimization and parallelism fail to address the memory and communication costs of large embedding tables on accelerators. As a result, the majority of models are trained on CPUs, while current implementations of accelerators are hindered by issues such as bottlenecks in inter-device communication and main memory lookups. In this paper, we propose a theoretical framework that analyses the communication costs of arbitrary distributed systems that use lookup tables. We use this framework to propose algorithms that maximize throughput subject to memory, computation, and communication constraints. Furthermore, we demonstrate that our method achieves strong theoretical performance across dataset distributions and memory constraints, applicable to a wide range of use cases from mobile federated learning to warehouse-scale computation. We implement our framework and algorithms in PyTorch and achieve up to 6x increases in training throughput on GPU systems over baselines, on the Criteo Terabytes dataset.

論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01