BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース リアルタイムMLのためのストリーミングファーストなインフラストラクチャ - Chip Huyen氏の講演より

リアルタイムMLのためのストリーミングファーストなインフラストラクチャ - Chip Huyen氏の講演より

原文(投稿日:2021/12/07)へのリンク

先日のQCon PlusオンラインカンファレンスでChip Huyen氏は、"Streaming-first Infrastructure for Real-time ML"と題して、継続的マシンラーニング(continual machine learning)について講演し、リアルタイムで継続的なマシンラーニングのためのストリーミングファーストなインフラストラクチャの持つアドバンテージ、リアルタイムMLのメリット、リアルタイムML実現のための課題、といった話題を取り上げた。

マシンラーニングのスタートアップ創業者でスタンフォード大学講師のHuyen氏による講演は、リアルタイムMLの持つべき側面として、トレーニング済モデルを使用して入力データに対するアウトプットを即時に生成するオンライン推論と、最近のデータによってトレーニング済モデルを更新する継続的学習の2つを定義することから始まった。続いて氏は、イベント駆動マイクロサービスアーキテクチャについて説明した上で、"ストリーミングファースト"なリアルタイムMLシステムの基盤として、集中型のストリーミングコンポーネントを使用する方法について述べた。その中で氏が指摘したのは、MLにおける従来型のバッチシステムはストリーミングの特殊なケースであって、モデル更新のイテレーションサイクルの長さはシステムの"回転ノブ"に過ぎない、という点だ。最後に氏は、リアルタイムMLの持つアドバンテージと、実装時に直面する課題を取り上げた。Huyen氏は言う。

将来性を考えておくことが重要です。インクリメンタルな更新を数多く行うという方法もありますが、思い切ってストリーミングに移行した方が安価かも知れません。多くの企業がストリーミングファーストに移行しているのは、メトリクス向上が頭打ちになりつつある中、大きな成果を上げるためには新たなテクノロジにトライする必要がある、ということが分かっているからです。

オンライン推論に関する議論の初めに、Huyen氏は、一般論として初回のデプロイメントを成功させるのは"簡単"だ、なぜならAWSを始めとする多くのプラットフォームが、トレーニング済モデルをデプロイして、推論を実行するWebエンドポイントサービスを生成するための、標準的なサービスを予め用意しているからだ、と指摘した。問題になるのはレイテンシの管理である。Webサイトのビジタは、わずか数ミリ秒の余分なレイテンシでも気付くことがあるのだ。quantizationdistillationなどといった、大規模モデルの推論レイテンシを改善する手段はあるが、Huyen氏は講演の中で、モデルへのデータのフィード用と結果返却用という、2つのパイプラインの改善に注目した。

予測の入力フィーチャには直近のイベントに関するデータが含まれることが多い、とHuten氏は述べた上で、これらのイベントは高速なインメモリストレージに留め置くのが最もよい、と提案する。さらに氏は、これらダイナミックなストリーミングイベントと静的データの差異を定義した。静的データとは、すでに生成済で変更されないか、あるいはほとんど変更されないデータである。ユーザのEメールアドレスがその例だ。静的データは有限で、CSVやParquetなどのファイルフォーマットで格納されることが多く、最終的に完了するバッチジョブで処理することが可能である。対照的にストリーミングデータは、モバイルデバイスの物理的位置のような、頻繁に変化する値を意味する。特に、ストリーミングデータには境界がないので、バッチプロセスではなく、特別なストリーミングプロセスが必要だ。

ひとつのモデル、2つのパイプライン

しかしながら、推論をストリーミングプロセスに移行して、モデルトレーニングはバッチプロセスのままにしておけば、メンテナンスの必要な2つのパイプラインが存在することになる。一般的にこれはエラーの要因である。静的データは有限であることから、ストリーミングデータのサブセットと考えられる、とHuyen氏は指摘する。その前提に立てば、ストリーミングプロセスでも処理できるはずだから、2つのパイプラインを統合することが可能なはずだ。これをサポートするために氏が推奨するのは、REST APIを使って通信するのではなく、集中型のイベントバスあるいはストリームを使ってメッセージの送受信を行う、イベント駆動のマイクロサービスアーキテクチャである。

モデルトレーニングをストリーミングプロセスに変換すれば、継続的学習のステージはセットされたことになる。Huyen氏は、頻繁にモデルを更新することによるメリットをいくつか挙げた。まずひとつは、よく知られているように、現実世界の条件の変化や、データ分布の混乱によって、運用中のモデルの精度は時間とともに低下する傾向がある、ということだ。休暇のような季節的要因や、COVID-19パンデミックのような世界的な出来事もこの原因になる。運用時の精度監視に関するソリューションは多数存在するが、"底が浅い"、つまり、精度低下を指摘するだけで、対処方法を提供しないものが大半だ。解決策は、継続的なアップデートと新たなモデルのデプロイである。

継続的学習のもうひとつのユースケースは、問題を"コールドスタート"する場合だ。例えば、Webサイトの新しいユーザやあまり頻繁にアクセスしないユーザに対しては、モデルは非常に少ない情報しか持ち合わせていない。その場合の目標は、ユーザのセッション中にモデルをアップデートすることだ。継続的学習は、クリックスルー予測モデルのように"自然な"ラベルを使用するユースケースにも有用である。クリックスルー予測モデルでは、ユーザがリンクをクリックしたかどうか、という単純なラベルを使用する。その他のユースケースとしては、記事を読む、短いビデオを見る、といったような、短期間のフィードバックループを持つ状況が対象となる。

講演の最後に氏は、聴衆からの質問のいくつかに回答した。モデルが定常的に更新されることで、再現性が問題になることはないのか、という疑問に対して、氏は、問題の多くはトレーニングと推論のパイプラインが分かれていることで発生する、と答えた上で、モデルストアシステムを使ってモデルの系列を追跡する方法を紹介した。アップデート後にモデルのパフォーマンスが低下することへの疑問に対しては、そのような状況が発生する可能性を認めた上で、A/Bテストやカナリア分析などでモデルの精度が低下していないことを検証するべきだ、と述べている。そして最後、クラウドで継続的学習を行うコストに関する質問には、事例証拠として、少量のデータによるトレーニングに要するコンピュータパワーが小さいことから、クラウドコストは実際には低下する可能性があるという報告がされていた。ただし、すべてがそうであるという確証はなく、"この件についてはさらなる調査を期待"したい、と氏は述べていた。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT