1. m3.com
  2. AI Lab
  3. ニュース
  4. 効率的なAI開発にお勧めの2つのツール―眼科医・升本浩紀が語る「医療AI応...

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

効率的なAI開発にお勧めの2つのツール―眼科医・升本浩紀が語る「医療AI応用までの道のり」(8)

2020年6月12日(金)

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

» 連載1回目から読む


8回目となる今回は、効率的なAI開発を行うためのプラットフォームを2つ紹介したいと思います。私がプログラミングを始めた当初は、まだAIが現在ほどのブームになっていないときであり、AIを構築するにあたってはさまざまな手間が必要でした。また、周囲にプログラマーもおらず、一人で開発を行うことが多かったため、誰かとデータを共有することも非常に少ない、いわば非効率的な開発環境でした。

各種ソフトウェアのインストール

実際にGPUが積んであるマシーンを購入し、AIのモデルを開発するまでには次のようなタスクを行う必要があります。

  1. Pythonのインストールおよび仮想環境の作成
  2. CUDAやcuDNNといったコンピューティングプラットフォームのインストール
  3. TensorFlowなど各種ライブラリのインストール

つまり、プログラミングを始めるまでに、各種必要なソフトウェアのインストールが必要です。しかも、それぞれに適合しているバージョンが存在することを忘れてはいけません。もし、ミスマッチなバージョンをインストールしてしまうとエラーとなることがよくあります。

このように各種必要なソフトウェアをインストールしたりすることを環境構築といいます。この環境構築が面倒くさいのです。中にはこの環境構築のせいでプログラミングそのものに挫折してしまう人もいると思います。

「Google Colab」でプログラミング

我々は、12時間弱の比較的短時間で終わる解析を行う際には、「Google Colab」というサービスを利用することがあります。このGoogle Colabは、プログラミング(特に機械学習)への参入障壁を大きく下げたサービスであると考えています。その理由は以下の通りです。

  1. 無料
  2. Pythonがデフォルトでインストールされている
  3. GPUを利用するにあたって、特別なソフトウェアのインストールは一切不要(ランタイムのタイプを変更するのみ)
  4. TensorFlow, pyTorch, scikit-learn, OpenCV, NumPy, pandasなど、機械学習や画像処理を行う際に使われるメジャーなライブラリは全て事前にインストールされている。

これらの理由により、最低でも20万円くらいするGPUマシーンを購入することなく、ある程度の規模までなら、通常のノートPC+Google ColabでAIを開発できるのです。

また、Google ColabはJupyter Notebookと呼ばれる形式で構成されており、セルごとに(つまり小分けにして)プログラムを作成、実行していくことができます。特に、プログラミング初心者のうちはいきなり上手にスラスラとプログラムは書けないので、トライアルアンドエラーをしながら進めていく必要があります。その際に、Jupyter Notebook形式だと、ひと段落ずつなど自分の好きな分量で切り分けてコードを記載し、実行できるため、自分の思った通りにプログラムが動いているかをスムーズに確認しながら開発を進められます。

masumoto

Google ColabにてAIのモデルを構築している実例の写真

チームで開発を効率的に行う方法とは

これまでの連載を通じて、AIの開発は基本的にはチームで行うべきだということを述べてきました。 このチームというのは、エンジニアだけのチームではありません。

・企画立案者(医療AIではだいたいドクター)
・アノテーター(眼科の場合だと視能訓練士)
・マネージャー(進捗管理)

など、エンジニアに加えてさまざまな人が同時に関わる必要があります。つまり多くの人とリアルタイムで進捗を共有できていないと、効率化されることはありません。効率化を実現するためにがんばって取り組んでいるAIの開発において、非効率的な運営をしていては何の意味もありません。

さらに、解析が終わった後にも、一般的な医療AI開発では論文を書くことが多くあります。その際には、論文もまたチームで書く必要があります。一般的には、豊富な医療知識と、豊富な工学的知識を併せ持つ人は少ないと思います。その観点からも、論文を書く際には一人で書くのではなく、専門領域ごとに担当者を決めて執筆したほうが効率的だといえます。では、これら多くの人に向けてのデータを効率的に共有・編集するにはどうしたらいいでしょうか?

チームによる開発で使える「Github」

我々は、プログラミング業界では非常に広く使われているGithubというサービスを使用しています。バージョン管理ツールであるGitを用いて、プログラミングのコードをホスティングするために使われているサイトです。我々はこのツールを、プログラミングだけでなく、データの収集状況の共有や論文の執筆時にも使用しています。

具体的な使用方法について簡単に紹介します。Githubにはrepositoryという概念があります。これはいわば一つのデータの塊のようなものです。ほぼ全てのrepositoryのトップページには、README(「最初にお読みください」と書かれた注意書き)が表れます。

masumoto

READMEの一例

このように、トップページの非常に目につきやすい場所に現在のデータ収集状況やタスクの状況を記載しておくことで、状況の管理をしやすくしています。

また、Githubは、プログラミングを複数人で行う際に、編集内容が混乱しないように使われます。我々は同じようにそれを論文執筆の際に使っています。医学領域担当者と、IT領域担当者が分担して執筆する際に、原稿がおかしくならないように、Githubの機能を用いて管理しているのです。

さらに、GithubにはIssuesと呼ばれる、問題点を列挙するような機能があります。一般的にはコードの問題点を議論したりしながら、必要と判断したらその問題点を修正することに使われます。我々は、担当者に業務を割り当てるなど、タスクの管理にこのIssuesという機能を使っています。

今回は、AIを効率的に開発する際に使用できる「Google Colab」と「Github」という2つのツールを紹介しました。しかし、最も効率化につながるであろう事は担当者をきちんと分担し、ワンマンプレーではなくチームで開発するという心がけだと思います。

升本浩紀

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

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