AIエンジニアとは、ビジネスゴールに応じてAIモデルを選定・構築し、データからインサイトや分析情報を引き出す仕事です。
この記事では、まず、AIがどのように活用されているかの事例を確認します。その上で、AIエンジニアがどのようにAIモデルを選定・構築していくか、その具体的な仕事内容を紹介していきます。
最後まで読めば、AIエンジニアの仕事内容、やりがいを具体的にイメージできますよ!
AIができること|AI活用事例
AIエンジニアの仕事内容は「自社の事業部やクライアントからの要求に合わせてAIを用いた/含んだシステムや製品を開発すること」です。
AIを用いた/含んだシステムや製品とは、どのようなものがあるでしょうか?
それをイメージするために、まずは、業種別・職種別にAIの活用事例を見ていきましょう。
【業種別】AI活用事例
自動車業界における自動運転技術の開発や、ゲーム業界における強化学習の応用(囲碁AIや将棋AIの開発)、病院におけるレセプトデータ解析と自動診断など、どの方向に視線を向けても、今ではAIエンジニアリングの成果を見ることができるでしょう。
例えば、EC・小売・製造におけるAIの活用シーンには、以下のようなものがあります。
ECにおけるAI
ECにおけるAIエンジニアリングとしては「購買履歴データを用いた顧客行動理解の高度化」と「高性能な商品リコメンド・エンジンの開発」などがイメージしやすいでしょう。開発にあたっては、典型的なビッグデータを扱う場面が多いことから、分散並列処理やサーバー関連知識が必要されると共に、顧客理解というジャンルから心理学などの人文科学の知識や一消費者・購買者としての感性も必要とされます。
小売におけるAI
小売におけるAIは店舗管理の裏側で活躍しています。伝統的な需要予測の高度化はもちろん、最適な製品ラインナップの探索や、最適な棚配置(ディスプレイ)の探索などに利用されています。また、販売員の接客データ分析及び分析結果のリアルタイム・フィードバックや、予測アルゴリズムの高度な応用として稼働が必要なレジ台数をリアルタイムで予測して管理するなど、現場におけるリアルタイムな活用も注目されています。
製造におけるAI
製造と言うと「ハード」のイメージが強いかもしれませんが、製造業はAI活用のフロントランナーでもあります。例えば工場ビッグデータを用いた製造工程の自動化や最適化では、高度な最適化アルゴリズムだけではなく、IoTの知識や、様々なセンサデータを解析に利用する技術(マルチモーダル技術)が必要とされます。
【職種別】AI活用事例
職種としては人事・営業・経理におけるAIの活用事例を紹介します。リサーチ職や分析職など「いかにも」な職種以外でもAIの利用が当然となってきている様子がわかります。
人事向けAI
人事におけるAI活用はとても特徴的です。従業員満足度調査や行動データを用いた離職者の予測モデルや、ハイパフォーマーと呼ばれる優秀社員の行動特性分析、求職者のレジュメからレジュメに記載のないスキルセットを推定するようなモデルなど、「人」に関するモデルが多用されます。そのため、人事領域におけるAI活用にあたっては他の業種にはない非常にナイーブな倫理的問題にも対処する必要があります。少し前にある企業の採用AIが「人種差別」を行ってしまい注目を浴びたことを覚えている人も多いでしょう。
営業向けAI
属人的要素が強いと言われる営業にもAIの応用は進んでいます。例えば、テキスト解析や自然言語処理が容易となった今では、営業マンのトーク・スクリプトや営業用のメール文面など、様々なテキストを解析し最適化する試みが進んでいます。これによって、できる営業マンの技(会話・文面)が誰もが使える技として一般化するのが早くなるだけではなく、将来的には新しい営業用スクリプトをAIが生成することまでできるかもしれません。
経理向けAI
営業と真逆で、AIに仕事を奪われる職としてしばしば挙がって来るのが経理業務です。例えば日々の記帳作業では、入力内容から自動で勘定科目を推定する機能が使われ始めています。月次や期ごとのBS/PL作成なども現段階で相当程度が自動作成できるようになっており、やはり経理業務とAI(自動化)は相性が良いと言えるでしょう。その他、日々の経費精算データを元に不正な経費使用を検知するために、異常検知AIが使われることもあります。
AIができること:キーワードは自動化・最適化・検知・予測・分類
様々な事例を見てきましたが、ここで、具体例をカテゴライズして抽象化することでAIエンジニアの仕事内容を整理してみましょう。実のところ、上で与えられた具体例は全て「自動化」「最適化」「検知」「予測」「分類」のいずれかに当てはまることがわかります。
自動化
製造業などによる業務自動化は、AI×ロボットによって進行しています。単純な機械化との違いはAIによってデータを元にした状況判断や機械のチューニングが行われると言うことです。またAIを元にした業務自動化はサービスや小売など非製造分野においてもソフトウェア型ロボットによって実現されており、総称してRPA(Robotic Process Automation)と呼ばれています。
最適化
小売における最適な棚配置や、営業における営業メールの最適文面作成などはAIによって過去データを元に作成されますが、多くの場合、幾つか生成したパターンを実際にテストすることで最適化は完了します。そして、現代のAIはこのテスト自体の計画まで行うことができます。例えばどれくらいのサンプルサイズにテストをするかを決めるのもAIのタスクの一部となっています。
検知
経理における経費不正使用の発見のように、何か異常事態が発生した時にアラートを鳴らすようなAIは沢山あります。製造の現場では故障の検知や材料の腐敗検知として現れ、金融の世界では株や債券価格の構造変化を真っ先に捉えるために利用されています。
予測
統計学やデータ解析は元々、この世界のどこにでも現れる「不確実性」に立ち向かう道具としてスタートしました。その意味で、予測タスクは最も歴史の長いタスクとも言えます。需要予測や売上予測、株価の予測や天気予報まで、あらゆる領域で使われてきた予測モデルが、今や次々とAIに置き換わっていると言うのが現状です。
分類
予測対象が売上などの数量データではなくカテゴリカルなデータの場合に、予測は「分類」と呼ばれます。ある社員が3ヶ月以内に辞める/辞めないのどちらかを判定する2値データの予測や、ある写真に写っている動物がライオン/トラ/クマ・・・のどれかを当てるなど画像データの「識別」も、分類タスクの範疇です。
AIエンジニアの仕事内容|AIの開発フローとプロジェクト・マネジメント
AIエンジニアにとってプロダクト開発のフローを詳しく把握しておくことは必須です。メディアでは華々しく語られるAI開発ですが、実際のところAI開発の多くの現場は日々炎上しています。もちろん、AIに限らずITプロダクト一般でもよく見られる炎上ですが、AIに関しては「AI開発」自体があまりにも新しい出来事であるため、現場も顧客もその性質をうまく理解できていない(あるいはうまく伝えられていない)という所からくる厄介さが原因となって開発上の障壁が現れます。開発フローの順に、いくつか例をあげながら、AI開発の難しさを確認して見ましょう
AIエンジニアの仕事内容①|要件定義
まずは、AIとして実現したいタスクを定義します。「○○を予測する」や「○○を分類する」と言うシンプルな要件を、システムの仕様として落としていきます。エンジニアタスクとしてはこの段階からの開始で良いのですが、AI開発はビジネス課題を機械学習課題に翻訳する所から始まると言うことは覚えておくと良いでしょう。そもそもの課題特定能力や翻訳能力に難があれば、例え要件通りのAIを作ってもビジネス上は無価値になりかねません。
また最初の段階で「AI」と言う言葉の意味や実装しようとしている機能について、きちんと限定を加えていないと、顧客に対し不要に「夢を見せる」ことになり、後で必ず問題になります。出来ることと出来なことの線引きをしっかりしましょう。AIであることは高精度を約束しない、とはっきり断言しておく必要もあります。実際に開発を始めてみたり、理論を学べばすぐ分かることですが、多くのAIアルゴリズムは開発者にとってもブラックボックスの部分が多かったり、データ依存度合いが大きいため、「やってみないとわからない」はよく発生します。
AIエンジニアの仕事内容②|PoC(Proof of Concept)
そのため多くのAI開発現場ではPoCと呼ばれるAIのプロトタイプ作成が行われます。より単純な構造、より少ないデータでプロダクトを作り、スケールした場合の精度や効果を予見する(AIが製品として成り立ちうるかを調べる)ことが目的となります。しかし、PoCだからと言って手を抜くと、本番環境との差異が大きくなり、ここでも炎上が発生します。例えば予測モデルの作成では、予測対象のデータを予測するための材料として使ってしまう(それゆえに当然非常に高い精度が出る)データリークと呼ばれる問題が、思っている以上に、しばしば起こります。リークに気づいた時には、もう大分スケジュールが進んだ後だったと言うことも…。
AIエンジニアの仕事内容③|データ収集・データパイプラインの構築・データ加工
業務データを利用したAIを作成する場合、そもそも使用するデータがどこにあるかを調査し、関係各所からデータの使用を認められる必要があります。また様々なシステムに保存されているデータを利用するためにデータパイプラインを構築する必要があるでしょう。保存されているままのデータは分析用に整形されていないばかりか、欠損があったり、フォーマットが統一されていなかったりしますので、相当な時間をかけて前処理を行う必要があります。このように、実装フェーズの大部分がアルゴリズムと言うよりかは広い意味での「データの確保」によって構成されています。意外と地味な作業‘(データの前処理)や人間的な作業(関係部署との調整)が必要とされるのです。
AIエンジニアの仕事内容④|アルゴリズムの実装
いよいよアルゴリズムの実装に入っても、大抵の場合スムーズには進みません。例えば、既存のライブラリを用いて十分な場合はほとんどなく、日々例外との戦いになります。データサイズが大きいことから、アルゴリズムの変更が計算効率上の大きな問題になることも多く、サーバーサイドの知識や、情報理論の知識が要求されることもあります。テキストでカタログのように眺めてきた機械学習の華やかな世界が少しずつ様相を変えていきます・・・。
AIエンジニアの仕事内容⑤|検証
作成したAIは厳しいテスト運用に晒されます。「なんとか動く」の状態から、そこまでにかかった時間の何倍もの時間を検証フェーズでの変更に費やす場合もあります。AIのロジックはあまりにも新しく、また難しいため、この段階で大きな欠点に気づくことも多々あります(気づかないよりは断然マシです。)
AI開発についての難しさ
ここまでAI開発のフローごとに、作業概要と難所を観察してきました。まとめると、AI開発には、ビジネス課題を機械学習課題へ翻訳する難しさ、現実と理論(適用すべきモデル)の対応関係を見つける難しさ、データ収集における政治的難しさに加えてAIと言う最先端分野のそもそもの難しさがあります。難所は開発フローのどのフェーズにも見られ、どのフェーズでも炎上する可能性があります。
AIエンジニアに求められるスキルセット
それでは、様々な困難を克服するAIエンジニアに求められるスキルセットはどのように構成されているでしょうか?
以前にまとめた記事では、数理知識・プログラミング知識・ソフトスキル(ドメイン知識やマインドセットなど)・その他(英語など)の4つのカテゴリで紹介しています。AI開発に求められる能力がこのように広範囲になることは、ここまで見てきた例でもご理解いただけるのではないでしょうか。
おわりに
AIエンジニアという仕事について、主として仕事内容に注目して紹介をしました。とにかく高度・高級に見える職業だと思いましたので、あえて厳しい点や地味な点もいくつか紹介しましたが、今後の社会での需要を考えると、やはりしばらくは時代の最先端に立つ職業であることは間違いないでしょう。
著者:meifelyuki
フリーランスのデータサイエンティストとして、大学や企業などをフラフラしながら様々なデータサイエンス業務に携わっています。データサイエンスを「する/教える/作る」の全てが好きです。レガシーな統計解析も、kaggleな機械学習も、強力だけど時にブラックボックスな深層学習も平等に好きです。お仕事の依頼は編集部まで!