Boxkiteは、高可用なモデルサーバにおけるコンセプトドリフトを追跡するために設計されたオープンソースのインストルメンテーションライブラリだ。Grafana、Prometheus、fluentd、kubeflowなどのDevOpsツールと統合し、コードやインフラストラクチャを変更することなく、複数のレプリカを作成して水平方向にスケーリングする。プロジェクトの主張は、速く、正しく、シンプルである。
このプロジェクトは、Jupyter Notebook内で実行されるEvidentlyなどのツールとは異なり、本番環境での使用が目的だ。そして、Seldonのような他の生産監視ツールよりも軽量であることもである。
InfoQは、Boxkiteの寄稿者であるLuke Marsden氏と落ち合い、Boxkiteについて話した。
InfoQ: なぜ別のML監視ツールを作成するのですか。
Luke Marsden: DevOpsチームがクラウドネイティブスタックですでに使っているツールを使って、軽量で機能するツールを作成したかったのです。特に、既存のML監視ツールは「本番環境」で実行できない(つまり、ノートブックで実行できるライブラリですが、「オンライン」ではありません)か、ドリフト検出を実行するためにメッセージキューシステムや集中型サービスといった大規模なセットアップが必要となります。比較すると、Boxkiteでは、KLダイバージェンスのような関数をPromQLクエリとしてエンコードすることで、オンラインドリフト検出を直接Prometheusにプッシュするだけで済みます。したがって、「オンライン」であり、チームがすでに持っている既存のPrometheus+Grafanaスタックを使って、本番環境で実行できます。そして、軽量であり、Pythonライブラリをトレーニングコードと推論サーバに追加するだけです。他のインフラストラクチャソフトウェアは必要ありません。
InfoQ: ソフトウェアエンジニアリングと比較して、MLの成熟度はどの地点にあるでしょうか。
Marsden: 数十年遅れています。今日のMLの一般的なプラクティスは、90年代のソフトウェアエンジニアリングを見るようなものです。多くの場合、すべてのコンポーネントのバージョン管理、継続的デリバリー、本番環境でのモデルの動作監視はありません。監視を軽量な方法で解決することは、その課題を解決することの一部なのです。それによって、ソフトウェアチームが今日のDevOpsに期待するのと同じ人間工学とガバナンスを備えた機械学習用のMLOpsスタックを構築できるようになります。
InfoQ: MLOpsの他の問題と比較して、モデルの可観測性はどのくらい重要ですか。
Marsden: 私たちの経験では、新しいMLチームがMLモデルからビジネス価値を引き出すために経験する最初の問題は、まさにモデルをどのように本番環境に移行するかということだとわかりました。多くの場合、これには、研究者とDevOps担当者の間での混乱を引き起こす会話も含まれます。JupyterノートブックとDevOps担当者が本番環境へデプロイしているものとの間の抵抗となるものに関するミスマッチがあることに気付きました。モデルをデプロイした後、本番環境でのモデルの動作を理解することは、多くの場合、2番目の問題です。私は、ある会社が監視されていないモデルを本番環境に投入したことで、計り知れないほどの金額を失ったと言っていると聞きました。本番環境へのデプロイとモデルの監視が解決されて初めて、チームは、モデル管理や来歴の追跡など、チームとモデル数のスケーリングに関連する問題がボトルネックになることに気付く傾向があります。
InfoQ: なぜツールをオープンソース化することを選んだのですか。
Marsden: MLOpsの将来はオープンソースなので、KubernetesやPrometheus、GrafanaなどのCNCFスタックが広く標準化されつつあるDevOpsスタックと同じ道をたどると考えています。