人気の機械学習ライブラリーで 1.47 倍高速化

Yandex 社は、ロシアで No.1 のインターネットとクラウド企業であり、世界の機械学習と人工知能に強く貢献している企業です。同社の人気ライブラリー「CatBoost」は、決定木の勾配ブースティングのための高性能なオープンソース・ライブラリーです。

Yandex 社は、CatBoost のパフォーマンス・ボトルネックを特定する必要があったとき、インテルのソフトウェア開発チームと協力しました。Yandex 社はインテル® VTune™ プロファイラーインテル® oneAPI ベース・ツールキットの主要デバッグツールを使用して、複数のデータセットで CatBoost フレームワークのホットスポット分析を行いました。ボトルネックを特定することで、Yandex 社はインテル® プラットフォーム上で CatBoost のパフォーマンスを 1.47 倍に高速化することに成功しました。

効率的な機械学習モデル

Yandex 社の研究者は、機械学習モデルの学習と予測のために CatBoost を開発しました。Yandex 社をはじめ、CERN や Cloudflare* などの著名な企業が CatBoost の機能を利用しています。開発者は、CatBoost のデフォルトのパラメーターを使用することで、パラメーターのチューニングに費やす時間を短縮することができます。CatBoost では、学習結果を向上させるために、データを前処理したり、数値に変換する手間をかけたりすることなく、数値以外の因子を使用することが可能になっています。ユーザーは、勾配ブースト・アルゴリズムの高速な実装でモデルを学習することができます。モデル・アプライヤーは、学習したモデルを迅速かつ効率的に適用することができ、レイテンシーが重要なタスクにも適用できます。

CatBoost の価値を最大化するために、Yandex 社は CPU ベアメタルやクラウド上でのパフォーマンスを最適化する必要がありました。最高のパフォーマンスを確保するために、同社はインテル® ソフトウェア開発ツールであるインテル® VTune™ プロファイラーを使用しました。

CatBoost のパフォーマンスを最大限に引き出す

Yandex 社は、インテル® Xeon® プロセッサーやインテル® Xeon® スケーラブル・プロセッサーなど、インテル® CPU プラットフォームのオープンソース・データセットを用いて CatBoost のパフォーマンスを評価しました(図 1 参照)。

インテル® VTune™ プロファイラーは、コードを解析し、主要なプロファイリング・データを収集し、その結果の解釈を容易にするインターフェイスを通じて表示します。これにより、開発者は、計算、スレッド、メモリー、ストレージに至るまで、最も効果的なソフトウェア最適化に集中することができます。

Yandex 社は、図 1 の左側に記載されているデータセットのトレーニング時間をテストし、インテル® VTune™ プロファイラーが提案する最適化によってこれらのモデルが高速化されることを実証しました。

インテル® VTune™ プロファイラーのホットスポット分析により、メモリーアクセスの効率を低下させている誤った共有や余分なアトミック使用に関する問題が示されました。ボトルネックを特定することで、Yandex 社は CatBoost のパフォーマンスを 1.47 倍に高速化することができました。

ボトルネックの特定とパフォーマンスの向上

インテルと Yandex 社の両チームによるこの共同作業は、データ科学者がインテルのプラットフォーム上でより複雑なモデルやデータセットをより速く学習することを支援し、開発者コミュニティーにおける CatBoost 機械学習ライブラリーの人気を高めています。CatBoost の性能結果は、世界中のデータ科学者が計算資源をより効率的に使用し、クラウドリソースを節約するのに役立つことでしょう。

インテル® ソフトウェア開発ツールは、Yandex 社のソフトウェア開発者にとって効果的であり、世界中のデータ・サイエンティストに価値をもたらすのに役立つことが証明されました。

図 1. 学習に使用したインテル® Xeon® Gold 6230 プロセッサー、物理コア 40 個、物理コアあたり 1 スレッド

当記事で紹介しているインテル® VTune™ プロファイラーの詳細はこちらからご確認いただけます。


参照記事: 1.47x Speed-Up for Popular Machine-Learning Library