OpenShiftでデータサイエンティストとアプリ開発者が協調する流れをデモを交えて紹介
Red Hatが主宰するオープンソースコミュニティのオンラインコンテンツから、OpenShift上でデータサイエンティストとアプリケーションデベロッパーが協調する一連の流れを解説した動画を紹介する。これはOpenShift Commonsのコミュニティ向けのコンテンツ「OpenShift Community Briefing」と題されたシリーズの一つで、2021年7月3日にストリーミングで配信されたものだ。
動画:OCB: Integrating Data Science and Application Development - Sophie Watson and Chris Chase (Red Hat)
動画のタイトル「Integrating Data Science and Application Development」というもので、OpenShift上で機械学習のアプリケーションの開発から実装、コードの変更までを一連の流れとしている。その中で機械学習部分を担当するデータサイエンティストと、アプリケーションの開発を担当するデベロッパーが、どのようにワークフローを実行するのかをデモを交えて解説している。単にOpenShiftの上で機械学習のアプリを動かすのではなく、データサイエンティストの領域とアプリケーションデベロッパーの領域を明確に意識しながら、データサイエンティストが作るモデルをアプリケーションデベロッパーが書いたアプリの中でトラブルなく実装していく流れを説明している。
担当したのはデベロッパーのChris Chase氏とデータサイエンティストのSophie Watson氏だ。
注目すべきは、アプリケーションの起動方法を変更しても、データサイエンティストが担当する部分を変える必要はなく、アプリケーションだけを変えてすぐに動き出すという流れを実際にデモとして見せたことだろう。
これはデベロッパーと運用担当者の間で頻繁に発生する「デベロッパーのノートPCでは動いたが、サーバーに配備すると動かない」という問題を、データサイエンティストとアプリケーションデベロッパーに置き換えたものと言って良いだろう。データサイエンティストが作ったモデルとデータを使ってアプリケーションに組み込もうとしても、必ずどこかでエラーが起こるというのは、このコミュニティコールのホストであるDiane Mueller氏も嘆いているぐらいなので、よくある問題なのだろう。
最初にWatson氏が、機械学習モデルの開発と実装の流れを紹介した。ここではデータを集めて準備すること、機械学習のモデルを作ること、アプリケーションにそのモデルを実装すること、そしてモデルのモニタリングと可視化を行うこと、以上の4つのステップで紹介している。このうち3番目の実装するフェーズを、アプリケーションデベロッパーが担当するという分担が行われていると解説した。
ただし、実際の実装時にはファイアウォールの内部に置き、開発時の環境からストレージやCPUなどの最適化が行われることになると説明した。
そしてデータサイエンティストの仕事として、Jupyter Notebookを使ってモデルを作るようすをデモしてみせた。ここでは、データサイエンティストがモデルの作成に専念していることが強調された。
今回は写真から犬を検知するアプリケーションを作るということで、TensorFlow、Numpyなどのライブラリーを利用することになる。プロジェクトとしてはデータサイエンティストがJupyter Notebookを使ってモデルを作成、それを受けてアプリケーションデベロッパーがGit上のPython 3と環境設定を操作してアプリケーションをビルドし、OpenShift上に実装するという流れだ。
JupyterHubを使ってモデル実行のためのベースを選択し、サーバーを立ち上げるまでのデモを実施した。
操作としてはGitHubに存在するコードをクローンしてJupyterHubにインポートし、その後ノートブックの中でコードを確認しながらイメージ検知のモデルを実装していくという流れだ。
この例では、モデルの中にFootwearを検知できるようなデータの内容になっているようで、犬の足も同時に検知されている。ここからはアプリケーションデベロッパーがモデルをOpenShiftの中にコンテナイメージとしてロードして実行するために、OpenShiftのコンソールから操作を行っている。
ここでページにイメージの表示エリアと検知ボタンを設定して、ボタンが押されるたびに犬が検知されるアプリケーションを実行して、確認を行った。
しかし元々の発想はボタンを操作するのではなく、監視カメラ的に使いたいというのがChase氏の意図だったとして、ここからデータサイエンティストが作ったモデルを変えずに、Kafkaのストリーミングを使ってイメージデータを取り込んで認識を行うように変更するようすをデモした。
ここでProducerであるイメージデータの読み込みと、Consumerとしてのイメージ認識を行うコードを追加した。また必要なライブラリーとしてFlaskを外して、Kafka-pythonを追加している。
またデータサイエンティストがモデルの変更などを行った際に、Git経由で変更が通知されるようにWebhookを追加するなど、細かい連携のための作業も行っている。
これで、カメラから取り込まれたイメージを継続的に認識する監視カメラアプリケーションが開発できた。動作試験として、Chase氏が自宅の愛犬を連れてきて実際に認識されるかどうかを試してみせた。
これでデータサイエンティストによるモデルの開発、アプリケーションデベロッパーによる実装、モデルの変更をGit経由で行うワークフロー、モデルを変えずにアプリケーションを変更して行くようすが解説されたことになる。
この後、データサイエンティストが作ったモデルを実際に配備する際に上手く行かないという問題に対しては、アプリケーションの機能をデータサイエンティストとアプリケーションデベロッパーの担当する範囲に切り分けながら、AWS上に展開されたOpenShift Data Scienceが上手く適応できることを説明して、セッションを終えた。
参考:Red Hat OpenShift Data Science
今回、デモに使われたアプリケーションのコードは以下から参照できる。
参考:https://github.com/rh-aiservices-bu/dog-detector-setup
このURLを見ると、Red Hatには人工知能を専門に行う部門が存在していることが推測できる。Red Hatにおける人工知能の応用という意味では、インフラストラクチャーの運用面で使われるRed Hat Insightがルールベースであることを考えると、これからはもっと機械学習を使った機能が増えてくることが予想される。そしてOpenShift上で機械学習のアプリケーション開発が容易であることを、デモを交えて紹介したことで、これまであまりアプリケーション領域には踏み込んでなかったRed Hatが、本気でOpenShiftを展開しようとしていることを感じさせたセッションとなった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- レッドハットが「OpenShift Commons Gathering Japan 2021」を開催、キーパーソンが語るハイブリッドクラウドを実現するための3つのポイントとは
- KafkaにWASMモジュールを組み込んでリアルタイムで機械学習を実行するRedpandaのデモセッションを解説
- Red HatがAIに関するブリーフィングを実施。オープンソースのAIが優れている理由とは
- Kubernetes上で機械学習のパイプラインを実装するKubeflowを紹介
- Red Hat Summit 2024から2日目のキーノートを紹介 レガシーシステムからの移行をメインに解説
- Red Hat Summit 2024開催。キーノートから見えてきた生成AIへの熱い期待
- OpenShift Commons GatheringからMicroShiftとCockroachDBを紹介
- StrimziCon 2024番外編、KafkaのリバランスをKubernetesのオペレータで実行するCruise Controlを紹介
- ブック・インサイド―『Python機械学習プログラミング』学び方ガイド
- Red Hat Summit 2024、Red HatのAI戦略を読み解く