1. m3.com
  2. AI Lab
  3. ニュース
  4. AIを確実かつ迅速に運用するオペレーションシステムとは―眼科医・升本浩紀が...

AI Lab プロジェクト医療×AIの発展にご協力いただける方を募集しています

AIを確実かつ迅速に運用するオペレーションシステムとは―眼科医・升本浩紀が語る「医療AI応用までの道のり」(9)

2020年8月21日(金)

ツカザキ病院眼科で眼科医兼人工知能エンジニアのチーフとして働く升本浩紀氏が、自らのAI開発の経験をベースに、医療AIの現状について紹介する連載コラムです。

» 連載1回目から読む


9回目となる今回は、「DevOps」という概念と、それをもとにチームを効率的に運営する考え方について書こうと思います。AIや機械学習関連のソフトウェアに限らず、ソフトウェア開発はいったん実装できたら完成というものではありません。運用をきちんと行うことによって、対象ビジネスの価値を「確実に」かつ「迅速に」ユーザに届けることが重要となってきます。

開発チームと運用チームが協力しあう「DevOps」という概念

ソフトウェアの管理において、開発を行うチーム(Dev:Development)と運用を行うチーム(Ops:Operations)が同じチームではないことが多くあります。さらに、開発者チームはシステムに新しい機能を追加することが求められる一方、運用チームはシステムを安定して稼働させることが求められます。そのため、同じミッションを抱えているはずの開発チームと運用チームなのに、目的が対立しているため、お互いに邪魔し合うような構造になってしまうことがあります。

そこで、ツールを利用することや、組織文化を整理することで、DevとOpsがお互いを尊重し合い、協力することで、Devが求める「迅速性」とOpsが求める「確実性」を両立させようという概念を「DevOps」といいます。今回は、このDevOpsにおけるツールや組織文化の内容からチームによる開発の心構えを説明したいと思います。

DevOpsに用いられるツール

DevOpsに用いられるツールは、
1. 自動化ツール
2. 計測ツール
3. 情報共有ツール
の3つに分けられます。

自動化ツールについては、たとえば、前回紹介したようなGoogle Colabなどの既製のものが利用できない場合は、自ら環境構築を行う必要が生じます。しかし、手動で環境構築を行った場合、必ずミスが生じ得ます。このように、インフラや、さらには作り上げたソフトを有効化するなどの様々な手順を自動で行えるようにし、品質を安定化させることが必要です。

計測ツールは、ソフトの稼働状況などの各種評価すべき指標(メトリクス)をわざわざそのたびごとに手動で計測するのではなく、定期的に計測してくれるものです。このとき、メトリクスをただ計測するだけでは駄目で、行動変容につながらないと意味がありません。

そこで情報共有ツールが必要となります。各種チャットツールなどを利用することで、これらのメトリクス(特に異常値)が自動的にDevやOpsに共有されます。こうすれば迅速に対応することができ、さらに安定した運用を行うことができるのです。

これらのツールが重宝されていることから、効率よく運用をするためには、可能な限りものごとを自動化し、行動変容につながる評価指標を測定し、情報共有されるようにすべきだということがわかります。

DevOpsを実現するために重要な組織文化

DevOpsにおいて重要とされる組織文化には、
1. お互いを尊重・信頼する
2. 失敗に対して責めない
の2つが挙げられます。

まず、一緒に働く相手のことを一人の人間として扱い、信頼して仕事を委任することが重要です。他人のやっていることを信頼せず、ずっと監視しているようでは自分の仕事がままならなくなりますし、そもそも仕事を委任した意味がありません。ですので、相手のことを信頼し、仕事を任せる必要があります。

また、「必ず失敗は発生する」ということを想定した上で、失敗した人を責めない風土が必要になります。問題が生じた際に報告しやすいような風土を構築しないと、問題は改善されず繰り返される上に、隠蔽が生じるリスクも高まります。このように、他人、特に異なるチームに属する人を信頼して仕事をきちんと任せ、失敗が生じた場合にも責めずに心理的安全がお互い保たれるような職場にすることは、チームによる仕事を行う上で必要になります。

AI時代のDevOps「MLOps(機械学習基盤)」とは

AIを搭載しているアプリケーションには、AIのモデルを作成する開発者がいます。このAIモデルも当然いったん作成したら終わりというものではなく、モデルを逐次アップデートしていく必要があります。

DevOpsのところで紹介したように、たとえば性能が低下していないかを自動的に計測できるようなプログラムを自動的に構築することで、性能が低下してきた場合はAIのモデルをアップデートする必要が示されます。そのほかにも、新たなデータの種類が出てきた場合、それに対応できるようにするためにモデルを作り替えるということも考えられます。

たとえば、我々は手術室安全管理システム 「Deep Safety」のひとつのパッケージとして、白内障手術の際に使用する眼内レンズを確認するAIアプリケーションを開発してきました。

masumoto

眼内レンズチェッカーのサンプル画像

これは、眼内レンズの箱を撮影し、その箱の記載事項から、手術において使用する予定の眼内レンズと一致するかを確認するアプリケーションです。

眼内レンズの箱は事前告知なしでデザインのアップデートが行われますし、新しい眼内レンズが登場することもあります。そうなると、AIのモデルも、一般的なソフトウェアと同じように適宜のアップデートが必要になります。

そのため、これまで紹介してきたDev(開発チーム)、Ops(運用チーム)に加えて、ML(機械学習チーム:Machine Learning)が一丸となってビジネスの価値を確実に、かつ迅速に高めていくことが求められます。これを「MLOps(機械学習基盤)」と呼びます。

終わりに

今回は、DevOpsという概念をもとにチームを効率的に運営する考え方を紹介してきました。さらに、AI時代にはMLOpsという考え方があり、AIのモデルの性能を自動的に測定して必要があればモデルを更新する必要があることも説明しました。

個人的にはツールも大事ですが、他人を信頼し、失敗を責めない組織文化が非常に重要だと考えています。これは、ITに関係ない方にも当てはまるのではないでしょうか。

升本浩紀

升本浩紀 ツカザキ病院 眼科 医師/株式会社シンクアウト 最高技術責任者

2016年 東京大学医学部卒業。在学中に中小企業診断士や公認会計士試験に合格。2018年からツカザキ病院。眼科医として臨床を行う傍ら、医療AIの研究・開発に取り組んでいる。日本眼科AIのトップランナーとして国内外の学会や、医師、医学生向けの講演をを多く行っている。関心領域はオペレーションマネージメントや、スマートフォンを用いたビジネス。好きな人工知能フレームワークはPyTorch。