ツカザキ病院眼科で眼科医兼人工知能エンジニアのチーフとして働く升本浩紀氏が、自らのAI開発の経験をベースに、医療AIの現状について紹介する連載コラムです。
IT業界では、「プログラマーは天才と凡人では10倍(なかには100倍という人もいます)生産性が違う」という格言があります。最終回の今回は、この格言が本当かを議論しながらAIの開発におけるチームの重要性を説明したいと思います。
近年はプログラミングが非常に簡単になってきているといわれています。昔は、参考になる情報もインターネットが未発達だから少ない、入力を補完するような統合開発環境(IDE)がない、パッケージも少ないなどの理由で高い参入障壁がありました。しかし、今では比較的簡単なレベルのプログラムであれば、インターネット上の情報をコピー&ペーストするだけで趣旨をあまり理解していなくても容易に作成することができます。
さらには「ノーコード開発」と呼ばれる、ある程度のレベルまでのアプリケーションやAIのモデルなら、一切プログラミングを行うことなく作成できるようなツールまで出てきています。そのため、ある程度のレベルまでの成果物を作成するという文脈において、天才と凡人のプログラミングの「速度」はそう変わらず、天才の速度が凡人の10倍になるとは思えません。
では、天才が10倍にも100倍にもなり得る要素は何なのでしょうか。私は、「コミュニケーションによる情報収集」と、それに基づく「引き出しの多さ」、「妥協のうまさ」だと考えています。
この議論における生産性というのは、ビジネス目標を達成するまでにかかった時間について議論していることが多いようです。要するに、満点ではなく合格点を取れるまでにかかった時間だと考えてください。
ここで、満点ではなく合格点というのが非常に重要です。開発者はエンドユーザーである顧客が何を求めているかをコミュニケーションによって引き出し、どの要素が重要であるかを認識する必要があります。この作業を適切に行うことができないと、成果物に含めるべき本質的要素を見極めることができず、他の要素を重要視してしまった結果、本質的要素の開発が遅延することが生じます。
このように、完璧主義というのは近年のリーンスタートアップが重要視される文脈においては全くいいことではありません。適切な「妥協」ができないと無駄に複雑で生産性の悪い開発が行われてしまうのです。
また、目的を達成するための手段を多く思いつくという視野の広さも非常に重要です。たとえば、最初はAIの開発案件として考えていたが、このレベルならAIではなくルールベースで行った方が精度が高くなる可能性があるなどの判断が必要になります。もっと言ってしまえば、AIを使うよりも人間がやった方がいいという助言が必要になるケースもあるでしょう。
つまり、生産性を10倍や100倍に高めるためには、単純なプログラミングスキルではほぼ不可能であり、コミュニケーションによる情報収集やそれに基づく戦略に対する視野の広さと妥協が必要になるといえます。
連載第7回では、AIを開発するチームには、
1) AIそのものについての知識
2) プログラミング
3) ミクロ的ドメイン知識
4) マクロ的ドメイン知識
5) インフラ構築
の5つの知識が必要ということを説明しました。
医療AIの開発においては、戦略立案はドクターが、プログラミングやインフラ構築はエンジニアが、アノテーション(タグ付け)は検査員や若手のドクターが行うことになるかと思います。これで、上記5つのカテゴリーの知識はチームとしておおむね保有しているはずです。
では、チームの生産性を高める方法について考えたいと思います。一番手っ取り早いのは、チームの人員数を増やすことです。当然ですが、成果物ができるまでの時間は短くなると思います。しかし、実際にはコストの問題やそもそも人材確保の問題から難しいことが多いので、これは除外します。
単純なテクニカルスキル(プログラミングやアノテーションの速さ)は10倍や100倍には絶対になりません。先ほど説明しましたが、10倍、100倍とするために必要なスキルは、コミュニケーションに基づく戦略的視野の広さと妥協のうまさです。このことから、改善することによって最も生産性に対する効果があるものは、戦略立案役のドクターの行動です。
戦略立案役のドクターのオペレーション業務は多岐にわたります。具体的には、「そもそも何を作るのかの決定」「どう作るのかの大枠の設計」「組織文化の構築」などが挙げられます。
まず、「何を作るのか」については、マクロ的ドメイン知識が必要になります。我々が提案するおすすめのAIの応用先は連載第6回で紹介しました。「どう作るのか」については、AIそのものについての知識や、開発はどう行うのかについての知識が必要になります。これは、第2回や第3回の連載で紹介しました。
「組織文化の構築」については、いかに効率的にチームでお互いが尊重しあいながらコミュニケーションを取れるようにするかが重要になります。これは、第8回や第9回の連載で紹介しました。 これらのオペレーション戦略を立てる際に視野が狭いとエンジニアやアノテーション担当者が非常に非効率的な働きをしてしまい、結局チームの生産性が低下します。
また、完璧主義からの脱却は非常に重要です。医師は非常に真面目な人が多いと僕は考えていますが、マネジメント役の医師が完璧主義を目指してソフトウェア開発を行ってしまうと、いつまでたっても製品が世に出ません。世に出ていないソフトウェアはいつまでたってもブラッシュアップされることがないので、結局クオリティの低いソフトウェアができてしまいます。
さらに誤解をおそれず言ってしまえば、絶対にミスをしない完璧なAIを作ることは、現時点での技術では不可能です。その意味では完璧を求め続ける限りは、今の技術レベルではAIを世にリリースできる日は来ないのです。
今回は生産性という言葉について議論しながら、AI開発における医師が果たすべき役割を議論しました。個人的な意見としては、AI開発に携わるのであれば、マネージャーとしてのIT知識やドメイン(医療)知識、組織運営に対する知識は勉強すべきでしょう。その一方で、プログラミングそのものの知識はエンジニアにやってもらえばよいのではないかと思います。
それよりも重要なのは、不足している知識をヒアリングできるコミュニケーション能力と、周りのスタッフが働きやすくなる肩の力が抜けた完璧主義でない姿勢ではないでしょうか。
全10回の連載を読んでいただきましてありがとうございました! これからもよろしくお願いいたします。
升本浩紀 ツカザキ病院 眼科 医師/株式会社シンクアウト 最高技術責任者
2016年 東京大学医学部卒業。在学中に中小企業診断士や公認会計士試験に合格。2018年からツカザキ病院。眼科医として臨床を行う傍ら、医療AIの研究・開発に取り組んでいる。日本眼科AIのトップランナーとして国内外の学会や、医師、医学生向けの講演をを多く行っている。関心領域はオペレーションマネージメントや、スマートフォンを用いたビジネス。好きな人工知能フレームワークはPyTorch。