検索
特集

「失敗しないAI開発プロジェクト」の作り方をエンジニアに聞いた「エンジニア」と「サイエンティスト」の違いを理解していますか

さまざまなAI開発現場を渡り歩いた現役のエンジニアが、「AI開発プロジェクトを成功させる開発チーム作り」について、国内のさまざまな企業や有識者を集めたイベント「THE AI 2018」で語った。

Share
Tweet
LINE
Hatena

 AIを使った製品やサービスの開発が進んでいる。注目度が高く、優れた予測や業務の自動化などに効果を発揮する製品/サービスが続々と登場してくる一方、開発に行き詰まるケースも聞こえてくる。「AI開発プロジェクトを成功させる条件」とは一体何か。実際にAIの開発に関わり、現場の課題を熟知するエンジニアが語った。

 2018年1月31日、人工知能(AI)に特化したWebメディア「Ledge.ai(レッジ・エーアイ)」主催のイベント「THE AI 2018」が東京で開催された。テクノロジー業界の最前線でAIに関わるエンジニアや有識者に交じり、多国籍のエンジニアチームで知られる「Cogent Labs(コージェントラボ)」のAIアーキテクト、デビッド・マルキン(David Malkin)氏とシニア・リサーチ・エンジニアのダビド・クルナポ(David Cournapeau)氏が講演を行った。

 Cogent Labsは、手書き文字認識サービス「Tegaki」や自然言語認識、分析技術による文書検索ツール「Kaidoku」など、機械学習や深層学習を活用した製品を次々と開発、市場投入している。同社は、「製品を使っている間はユーザーにAIの存在を感じさせないくらい」(マルキン氏)ユーザー視点の「使いやすさ」を考えた設計に力を入れているという。

画像
「THE AI」で講演するCogent LabsのAIアーキテクト、デビッド・マルキン(David Malkin)氏

「いつまでたっても終わらないAI開発プロジェクト」の原因

 一方で、同社で開発を行うエンジニアであるクルナポ氏は、「長期間かけても収束しないAI開発プロジェクトが後を絶たない」と話す。

 学術機関やエネルギー関連企業など、過去にさまざまな組織でAI開発に関わった同氏によれば、AIに関して専門教育を受けたサイエンティストがモデルを作り、プロジェクトマネジャーを通してエンジニアに引き渡すプロジェクト形式こそが、トラブルを引き起こすという。

画像
「THE AI」で講演するCogent Labsのシニア・リサーチ・エンジニア、ダビド・クルナポ(David Cournapeau)氏

 「サイエンティストは、とにかく優秀で速いAIを作ろうとするので、性能を上げるためにモデルを複雑化し、細かいカスタマイズを繰り返します。一方のエンジニアは、商品化を意識してモノを作るので、ユーザーの視点から見た使いやすさや業者としてのメンテナンスのしやすさを重視する。前者だけで作ったモデルを後者に引き渡して製品に落とし込ませようとした結果、半年たっても終わらないプロジェクトを見てきました」(クルナポ氏)

大部屋で全員が話し合う開発へ

 クルナポ氏が提唱するのは、AI専門のサイエンティストがソフトウェアエンジニア、製品テストや仕上げの専門家に交じって話し合いながら進める開発だ。

 その重要なメリットは、各自の専門知識を全員の作業過程に反映できる点だという。例えば、ユーザーの声を直接聞く立場のエンジニアは、彼らのニーズや実際に製品を使う際のトラブルなどをくみ取り、モデルを組み上げるサイエンティストにフィードバックできる。サイエンティスト側は、自らの高度な知識をAIのノウハウとしてエンジニアに教えられる。

 「例えば、Tegakiを開発していた際、私はあるユーザーから『人の名前や住所の読み取りを自動化したい』という要望を受けました。日本の場合、住所や名前の漢字を1つでも間違えたら、全くの別物になってしまい、業務に悪影響を与えかねません。私たちはその点を理解し、開発にフィードバックすることで、Tegakiにはほぼ100%に近い正確な読み取り精度を実現しました」(クルナポ氏)

 講演の終盤、同氏は、AI開発プロジェクトの担当者が「やるべきこと」「やってはいけないこと」のリストを以下のように公開した。

  1. やるべきこと
    1. まずはソフトウェアエンジニアリングに詳しい人材を雇う
    2. サイエンティストには、自由に新たなアイデアを出させる
    3. 開発する製品の「管理のしやすさ」「安定性」「単純性」に重きを置く
    4. 開発チームのエンジニア全員に、予測モデルをアップデートできるだけのトレーニングを施す
  2. やってはいけないこと
    1. サイエンティストにエンジニアがいない状態でコードベースを書かせる
    2. 製品のニーズについて詳しく共有していない状態で、サイエンティストにメトリクスを定義させる
    3. 製品に平行する形で予測モデルのプロトタイプを作る(実際の製品に反映不可能な変更が生じる恐れ)
    4. 予測モデルの「管理のしやすさ」「導入のしやすさ」よりも「正確性」を重視してしまう
    5. 「製品化」を念頭に置かないまま予測モデルをチューニングしてしまう

「あらゆるエンジニアにとって、機械学習が『ネットワーク』並みの基礎知識になる」

 機械学習ではなく「ソフトウェアエンジニアリング」に長けた人材を雇う点は、AIを扱える人材を探すプロジェクト担当者が多い業界にあって、意外に聞こえる。だが、クルナポ氏は「個人的な見地からいえば、機械学習の8割は、工学系の大学を出てから数年の経験しかないエンジニアでも、簡単に習得できる知識やスキルです」と語る。

 講演の間、一貫して同氏が強調したのは、「優れた予測モデルを作る」点よりも、むしろ「正確かつ分かりやすく、管理しやすい予測モデルを製品化する」点の難しさだった。

 講演後、「理想のAI開発チーム」ついてクルナポ氏は、「エンジニア全員が、AIについて深い知識を備えているチーム」と語った。

 「今後、機械学習についての知識は、エンジニアにとって必須になるでしょう。その重要性を理解し、エンジニアが常に最新の機械学習のツールを使って知識やスキルをアップデートできる環境を作れる企業が、今後台頭していくのではないでしょうか」(クルナポ氏)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る