BT

Booking.comは機械学習のためにどのようにKubernetesを使っているか

| 作者: Manuel Pais フォローする 8 人のフォロワー , 翻訳者 編集部T フォローする 0 人のフォロワー 投稿日 2018年4月8日. 推定読書時間: 3 分 |

あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。

原文(投稿日:2018/04/01)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

Booking.comの開発者であるSahil Dua氏は、今年のQCon Londonカンファレンスで、Kubernetesを使用して、顧客に目的地と宿泊施設を推薦するための機械学習(ML)モデルをどのように拡張できるのか説明した。特に、コンテナ上のKubernetesの伸縮性や資源不足回避が、いかに計算(およびデータ)集約的で、並列化が困難な機械学習モデルを実行する助けになっているかを強調した。

Kubernetesの独立性(リソースが競合しないプロセス)、伸縮性(リソース消費に基づいて自動スケールアップ、あるいはダウン)、柔軟性(新しいライブラリやフレームワークを素早く試すことができる)、GPUサポート(KubernetesのNVIDIA GPUサポートはまだアルファではあるが、20倍から50倍の速度向上が可能)は、Booking.comが自身の規模(毎日150万部屋の部屋が予約され、毎月4億人が予約している)で多数のMLモデルを実行する上で重要なポイントである。ポッドがGPUリソースを必要とすることを指定することで、KubernetesにGPUユニットを持つノード内でスケジュールを指示する。

resources:
  limits:
    alpha.kubernetes.io/nvidia-gpu: 1

各モデルはコンテナ内でステートレスアプリとして実行される。コンテナイメージはモデル自体を含んでいないため、起動時にHadoopから取得される。これによりイメージが小さくなり、新しいモデルが作成されるたびに新しいイメージを作成する必要がなくなり、デプロイのスピードアップが可能になる。デプロイされると、モデルはREST APIを介して公開される。そして、Kubernetesは最終的にトラフィックが新しいコンテナに向けられるようになるまで、予測リクエストを受け取る準備のためにコンテナのプロービングを開始する。

Dua氏は、Kubernetesのオートスケーリングとロードバランシングの他に、モデルの待ち時間を最適化するために、Booking.comで使われるいくつかの手法を明らかにした。つまり、モデルをコンテナのメモリにロードし、起動後にウォームアップする(GoogleのMLフレームワークであるTensorFlowに最初のリクエストを出すことで。ただし、一般的には、最初の実行は、それ以降の実行に比べて遅くなる)。しかし、すべての要求が実際のシステムから来るわけではない。場合によっては、予測をあらかじめ計算し、後で使用するために保存することができる。後者の場合、スループット(単位時間あたりの作業量)を最適化することが重要である。要求をバッチ処理して非同期で並列化することで、ネットワークのオーバーヘッドが削減され、スループットが向上するとDua氏は述べた。

MLモデルは、Booking.comが必要とする予測を提供する状態となる前に、事前に選択されたデータセットで訓練を受ける必要がある。プロセスのトレーニング部分も、Kubernetesインフラストラクチャで実行する。トレーニングが行われるコンテナのベースイメージには、必要なフレームワーク(TensorFlowTorchなど)のみが含まれ、実際のトレーニングコードはGitリポジトリから取得される。これもコンテナイメージを小さく保ち、新しいバージョンのコードイメージの拡散を防ぐとDua氏は強調した。トレーニングデータはHadoopクラスタからフェッチされる。モデルが準備完了すると(トレーニングワークロードが終了すると)、Hadoopにエクスポートされる。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT