AI開発の実行手順(フロー)と外注時のポイントについて
企業成長に欠かせないツールとして、AI(人工知能)の名が挙がることは珍しくなくなりました。導入を急ぐ企業も急速に増えており、現に、競合に乗り遅れるまいとAI導入を検討しはじめている方もいらっしゃるでしょう。
しかし、いざAI開発・導入を検討すると、「誰にAI開発を頼むか」が課題として挙がる企業も多いのではないでしょうか。開発会社やベンダーなど、外注パートナーとの提携を検討することが一般的な一方で、コスト・予算面の懸念から、何とかして開発の内製化を図れないか、と悩む声を耳にする機会も少なくありません。
結論からいえば、まったくの開発経験がいない環境でAI開発を進めることは不可能ではないものの、実現性は非常に乏しいといえます。とはいえ、社内に一定の情報技術の専門的な知見を持っている方であれば、AI開発の実現性の有無や最適なベンダー判断も適切に行われることとなりますが、これらの知識もまったくのゼロからスタートの場合、そのリスクについてなかなか想像に至ることが難しいことが予測されます。
当コラムは、上記を踏まえて、仮にまったくの未経験からAI開発の内製化を行うこととなったケースを想定し、AI開発のフローや手法、内製化時の注意ポイントについて解説します。コスト・予算面からやむを得ずAI開発の内製化を進める場合に限らず、内製化と外注との判断に迷ったときや、上層部へAI開発内製化の難しさを説得するシチュエーションとなった際、参考資料としてぜひお役立ていただければ幸いです。
新しいかたちのエンジニア紹介サービス
【HiProTech】
AIをビジネスに活かすには?活用用途について
まず、前提としてAIの活用用途について簡単にご紹介しておきます。というのも、AIを導入するうえで必要なことはあくまで「AIを導入すること」ではなく、その先で「何を実現したいか」、目的を明確にすることにあるからです。当項で改めて、なぜ導入するのか、意義を社内ですり合わせておきましょう。
ビジネスシーンにおけるAIの活用用途は、大きく分けて3つあります。
数値の予測
過去のデータと数値の規則性・不規則性から、将来的な数値の上下幅を予測できるほか、事前に異常リスクの検知を行うことも可能です。具体的な活用例は、以下の通りです。
・売上、受発注タイミングの予想
製造業や販売接客業の在庫管理・受発注システムなどに搭載されています。ロスを減らすうえで活用されています。
・売上成長のための施策・戦略立案
企業戦略を立てるときや、商品の価格を決定するときなどにもAIを活用できます。
・予兆検知(異常リスクの検出)
システムのバグ検知などに活用されています。また、過去の対処を自動で学習し、トラブルシューティングを自動で行うAIもあります。
識別
画像のパターンや音声の波形など、データから一定の傾向・特徴を見つけ出し、自動で識別を行います。具体的な活用例は、以下の通りです。
・画像の識別
たとえば工場の欠品を自動で判断する装置や、防犯カメラなどに活用されています。目視で行われていたものを自動化できるため、人件費削減につながります。
・音声認識
スマートスピーカーや、自動アナウンスなどの音声読み上げシステムを作る際などにも活用されています。
・情報の仕分け
分かりやすい例ですと、経理システムが挙げられます。取り込んだデータから、そのデータから勘定科目を特定することができるだけでなく、画像識別機能と併せて自動で起票を行うことも可能です。
表現
既出の文章や画像の類似度・規則性をもとに、自動で文章や画像などを生み出すこともできます。具体的な活用例は、以下の通りです。
・画像生成
日常シーンで実用されていることはあまりありませんが、AIによってアート作品を生み出すことも可能です。なお、過去にAIのアートが数千万円で落札された事例もあります。
・文章要約
AIに文章を読み込ませることで、その文章の内容を要約することができます。膨大な量の本を読むには一定の時間が必要ですが、すべてに目を通さなくても重要な情報を先んじてインプットすることができます。結果として読了時間を大幅に短縮することにもつながります。
・機械翻訳
自動翻訳サイトなどで搭載されている機能です。音声認識と組み合わせれば、他国の言語を即座にヒアリングし、自国言語として理解することができます。
新しいかたちのエンジニア紹介サービス
【HiProTech】
AI開発時の実行手順・フローについて
自社内で導入の目的を明確にした後は、AIの開発フェーズに移ります。当項では、一般的に進められる開発手順・フローについての概要をご紹介します。
構想~設計
構想立案のフェーズです。AIの導入によって、どのような課題を解決したいかだけでなく、本当にその課題解決はAIでなければならないか否かの検証や、何をもってAI導入を成功とみなすか指標・基準の設定も併せて行います。なお構想時は、下記チェック項目を抑えておくのが無難です。
<チェック項目例>
・現状課題の洗い出し
・AI導入によって解決したい事象
・課題の優先順位
・費用対効果の有無(ROI分析)
PoC開発(概念の実証実験)
前フェーズで立てた構想をシミュレーションし、検証するフェーズです。いきなり本番環境で制作するのではなく、構想段階で固まった仕様をもとにプロトタイプを制作・テストし、課題の洗い出しと調整を行います。調整は、主に下記軸をもとに行われます。
<調整軸例>
・出力分析結果の精度向上(誤った出力結果をもとにした仕様への反映など)
・運用時の使い勝手(操作・改修の簡易性、分析時間など)
本番モデルの構築・実装
先フェーズで実証したモデルを、本番システムに移行します。開発のフローは一般的なアプリケーション開発と大きな違いはありません。
<開発フロー>
・要件定義
・詳細設計
・コーディング
・テスト
テスト・運用
本番環境でAIを稼働し、不具合の確認・調整を行います。また、リリース後には構想段階で定めた指標に沿って導入効果の測定を行い、PDCAを回していきます。
新しいかたちのエンジニア紹介サービス
【HiProTech】
初心者がAIを自作するための手法
ここでは開発やプログラミングの経験がない方を想定し、はじめてAI開発に着手する際の手法について解説します。
ノンプログラミングツールの利用
ファーストステップとして堅実な手法といえるのが、ノンプログラミングツールの利用です。というのも、これらのツールは直感的に操作でき、かつ、費用も比較的安価(or無料)なものも多くあるためです。
ただし、制御範囲もそれなりになる分、高度なAIをつくることはできません。また、コストが下がれば下がるほど、機能性を制限される傾向にもあります。
開発自体は可能ですが、その後の運用面で機能性の拡張が必要となるケースも往々にしてあるため、そして機能性によほどのシンプルさを求めない限りは、以降の手法を活用する方が賢明です。
フレームワークやAPIの活用
フレームワークとは、予め一定の機能性が整えられたひな形のこと。APIとは、誰かが作成したプログラムを共有・活用できる仕組みのことです。いずれも汎用性・カスタマイズ性があり、一定のプログラミング知識があれば手軽にAIを作成できます。なお、よく使われているAIのフレームワークには、以下のようなものがあります。
<機械学習>
・Pandas…データ操作性が高く、機械学習の前処理によく扱われる。
・NumPy…効率よく数値計算を実行できる。処理速度に優れている。
・scikit-learn…無料で利用可能。汎用性に優れている。
<ディープラーニング>
・TensorFlow…Googleが開発。計算をグラフで可視化できる。
・PyTorch…Facebookが開発。計算速度の速さ・コードのシンプルさが特徴。
・Keras…プロトタイプの制作時に利便性を発揮する。
プログラミング言語の習得はほぼ必須
上記を活用すればある程度の機能性を備えたAIを開発できますが、結局のところ、活用するためにはプログラミング言語を覚える必要があります。代表的な言語としては、Python(パイソン)やR(アール)言語、Julia(ジュリア)などが挙げられますが、プログラミング学習をゼロから学ぶにはある程度の時間・コストがかかります。
一般的に、上記をはじめとするプログラミングの基礎を学ぶには200~250時間ほどかかるとされており、一朝一夕に身につくものではありません。また、本格的にAIエンジニアとして活躍できるようになるまでには数年単位の時間がかかるとも言われています。技術の程度に差はあれど、いずれにしてもスクールの受講料や書籍購入費などのコストや時間がかかることを鑑みると、AI導入を進めるには、あまりにも遠回りとなってしまいます。
新しいかたちのエンジニア紹介サービス
【HiProTech】
AI開発の内製は難しい?注意したいポイント
現段階で、「学ぶための時間」の側面から、AI開発が難しいことをお伝えしてきました。しかし、AI開発が難しいと呼ばれる所以はこれだけではありません。AIを自社で内製化しようと思うと、他にも下記の課題が立ちふさがります。
総合的な知見が必要である
はじめてAI開発に携わる方にとっては、先ほどのPython(パイソン)やR(アール)言語、Julia(ジュリア)をはじめとする、プログラミングスキルを学べば解決すると考えられがちです。しかし、実際にはデータを落とし込むための知識(機械学習・ディープラーニングなど)や数学的知識、さらには、データを活用するためのデータエンジニアリングスキルなども必要となってきます。これらを独学だけですべて賄おうと思うと、相当な負荷がかかることは想像に難くないでしょう。
AI人材の獲得は難易度が高い
AI開発についての一定の知識を学ぶことが難しいのであれば、ある程度の知見を持つ人材を雇用し、チームをつくればよいのではないか、と考える方もいらっしゃるでしょう。しかし、結論からいえば、AI開発に必要な人材は「獲得が非常に難しい」という課題があげられます。というのも、AI開発のための技術を持つ「AI人材」は、その技術の高度さゆえ市場価値が高く、すでに多くの企業が1人のAI人材を取り合っている状況だからです。
事実、経済産業省が発表した「IT人材需給に関する調査(※)」では、すでに2018年時点で3,4万人のAI人材需要ギャップが生まれており、最も低い伸びを想定した場合、2030年で12万人ほどAI人材需要ギャップが発生するとの見込みも出ていることから、今後も獲得に苦戦することは、想像に難くありません。
(※出典:https://www.meti.go.jp/policy/it_policy/jinzai/gaiyou.pdf)
運用時を見据えた開発ノウハウの蓄積
当然ながら、AIを開発して終わり、というわけにはいきません。その後の運用を経て、新たな機能性が必要となるケースも往々にしてあるだけでなく、AIの出力データが検討違いとなることもあります。すなわち開発時には、更新・改修は予め想定の上で開発を行わなければならない、ということです。
もし自社で内製を行う時、ある程度のノウハウは蓄積されていることと思いますが、その後の運用面を考えると、やはり形式的なメソッドを学ぶだけでなく、一度は経験・実績をある程度持っている方に伴走してもらいながら、AI開発におけるノウハウを学んだ方が、長期的に見れば効率的ともいえます。
フリーランスで知見のある人に頼るのがおすすめ
さて、ここまでAI開発の内製化についてご紹介しました。冒頭の話に戻りますが、初心者でも決してAI開発を自社開発すること自体は、不可能ではありません。しかし、その場限りではなく、その後の長期的な運用を考えるのであれば、よほどの事情がない限り専門的な技術を持ち合わせた人物と開発を進める方が賢明といえます。
とはいえ、先述の通りAI人材の獲得はレッドオーシャンです。転職市場にもなかなか現れないため、出会うのにも一苦労されている企業も多く見受けられます。では、こうしたケースの時に、どこを頼ればよいのでしょうか。
当コラムで推奨するのは、フリーランスITエンジニア専門エージェント「i-common tech」サービスです。
「i-common tech」には、AI人材をはじめ、あらゆるスキルを有したエンジニアが登録しています。
外部を活用する際、もっとも懸念とされる課題としてはコスト面が挙げられますが、当サービスは雇用と異なり、プロジェクトのフェーズごとに、必要な期間だけ最適なエンジニアを活用できるメリットがあります。そのため、確実にAI人材を確保できるだけでなく、相対的にランニングコストを抑えられる点も魅力です。
また専門スキルを持ったAI人材によって、現状から最適なソリューションを提供するだけでなく、直接開発メンバーとして携わる分、技術・ノウハウの蓄積にも役立つことも着目したいポイントです。加えて、ご契約からは最短2日で稼働可能という側面もあるため、すぐ、必要な時だけ、優秀なエンジニアを自社に招き入れたい方にとって、ピッタリのサービスとなることは間違いないでしょう。少しでも思い当たる点がある方や、サービスが気になった際は、ぜひお気軽にご相談ください。