
AIエンジニアになるには?仕事内容や必要なスキル、資格について解説
「AIエンジニア」と聞いて何が思い浮かびますか? Pythonでプログラミング、あるいはGPUによる高速演算でしょうか。間違ってはいませんが、正確な表現でもありません。そもそもPythonはAI向けのプログラミング言語でもないし、GPUはコプロセッサの一種です。ですが、どちらも近年の「AIプログラミング」に不可欠ともされています。なぜなのでしょうか。これを理解するために「AIエンジニア」※の仕事や作業環境、必要なスキルについて整理してみたいと思います。
※機械学習エンジニア、ML(Machine Learning)エンジニアと呼ばれることもあります。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)そもそもAIとは?
AI(Artificial Intelligence:人工知能)の定義にはいくつかの立場や主張がありますが、端的に言うと「人間の思考や行動を模した機械」ということになります。機械の動きや行動パターンだけに着目すれば、例えばIF文のプログラムによって制御された工場の組み立てロボット(産業ロボット)もAIということができます。
プログラムがC言語やJavaで組まれた従来型のソフトウェアだとしても、部品を取りつける位置を調整したり、溶接する場所を認識したり、運ばれてくる部品によって動作を変えたりといった部分だけ見れば、人間のように行動しているといえるからです。
ルールベースから機械学習へ
AIの研究も初期のころは、必要な処理をモデル化してアルゴリズムやルールを記述し、プログラムが推論する方法(エキスパートシステム)がとられていました。特定の作業に限定すれば、この方法は比較的うまくいきます。例えば、カーナビのルート検索などです。
現在、AI研究の主流は機械学習(Machine Learning)になっています。機械学習とは、大量な情報、複雑な情報を処理することで、特定のパターンを抽出する計算方法を見つけ出す手法や技術です。どんなデータからでも意味のあるパターンや特徴を抽出するため、大量のデータを処理しながら計算方法(AIモデル)をチューニングしていく必要があります。この作業を学習と呼び、それをコンピュータに半自動的にやらせる技術が機械学習です。例えば、動物の画像データを大量に学習させ、その中から「犬」の画像を識別できるAIを開発するといった具合です。
機械学習には以下の3種類があるといわれており、それぞれの得意分野があります。
- 教師あり学習(Supervised Learning):識別させたい正解データを用意してそのパターンを学習させる。画像認識や音声認識になどに向いている
- 教師なし学習(Unsupervised Learning):統計学的処理や多変量解析、多次元的な関数処理によってデータから特徴パターンを抽出する。株価予想、テキストマイニングなどビッグデータ処理に向いている
- 強化学習(Reinforcement Learning):AIのタスクに対して有効な動作や出力をした場合に「報酬」を与えて、計算方法のチューニング(調整)を自動化する学習方法。AIモデルにニューラルネットワーク(NN)を利用することが多く、囲碁やゲームのエージェント、チャットボット、自動運転などに向いている
機械学習についてより詳しく知りたい方は以下の記事もご覧ください。
AIエンジニアとは―― AIを作るのか使うのか?
先ほど、学習は半自動的に行うと述べました。それは、どの機械学習でも正解データに注釈(アノテーション)をつけたり、評価関数の計算式やパラメータを調整したり、報酬を調整したりといった部分は人間が行う必要があるからです。
したがって、AIエンジニアの作業は、学習用の大量データを用意したり、それにアノテーションをつけたり、AIが目的のタスクを高い精度でこなせるように数式やパラメータを調整しながら学習をオーガナイズすることになります。
一般的にAIエンジニアといった場合、大きく2種類があると思ってください。
AIエンジニアの分類
- AIモデルの考案および構築――必要なデータを定義してタスクに合わせた評価関数やパラメータや学習方法を考える : この記事では便宜的に「AIサイエンティスト」として区別
- タスクに対するソリューションにAI(モデル)を適用する : この記事のAIエンジニアは主にこちらの役割を想定
AIエンジニアの役割を上記の2つに分けた場合、前者、AIモデルの考案・開発を行うエンジニアは、科学者や研究者に近いといえるかもしれません。後者は、AIサイエンティストが考案したAIやアルゴリズムを利用するエンジニアです。利用・適用する範囲は化学や製造業などの工業、製造業から農業、商業、サービス業、経営、さらには医学、経済学、社会学など多岐にわたります。実際は2つの役割を1人でこなすエンジニア・科学者も少なくありませんが、それぞれ行う作業や必要とされるスキルも異なるため、分業されることもしばしばです。
AIエンジニアはデータアナリスト、データサイエンティストとの違いが議論されることもありますが、データサイエンティストはデータの分析を行うためにAIも利用する人ということができます。
AIエンジニアの2分類のうち前者は、エンジニアというより「サイエンティスト:科学者」といったほうが適切です。
サイエンスとエンジニアリングの違い
サイエンスとエンジニアリングの違いはなんでしょうか。おそらく哲学的な論争にも発展する難しい問題ですが、分かりやすさ優先で説明するなら、大学の理学部と工学部の違いといってもいいかもしれません。理学部はどちらかというと自然界の原理や真理を探究し、それの体系化を研究する――一般に科学と呼ばれる領域であり、サイエンスに該当するといえます。工学部では、科学によって作られた体系をもとに道具や製品として社会実装する役割を担いため、エンジニアリングに該当します。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)AIエンジニアの仕事内容―― AIの開発フロー
このセクションではAIエンジニアの実際の業務や作業を解説しますが、AIサイエンティストではなく、2分類の後者であるAIエンジニアの作業に寄った内容で解説を進めます。もし、AIサイエンティストの道を歩みたい、まったく新しいAIの実現方法を探究したいということであれば、大学や専門の研究機関、シンクタンクなどで研究活動、論文発表などを地道に続けることになります。
もちろん、AIエンジニアの中にも、新しいAIの手法や概念を考えつく人もいます。このあと説明するAI開発の中で、それを見つける人も存在します。エンジニアとサイエンティストの間に明確な境界を引くことはできませんが、ここでは業務としてAI開発を行う人を前提にします。
業務としてAI開発を行うというのは、科学者や研究者が発明または考案したAIモデル、AIアーキテクチャを利用してなんらかのタスクをこなすAIシステムを開発するということです。
AIシステム開発のステークホルダー
総務省 AIネットワーク社会推進会議が作成したガイドラインによれば、AI開発には基本となる4つのステークホルダーが定義されています。
- ・開発者:AIシステム・サービスの研究開発を行う
- ・利用者:開発者が作ったシステムやサービスを利用する
- ・データ提供者:学習用または処理対象となるデータを開発者や利用者に提供する
- ・第三者:AIシステム・サービスによって影響を受ける

※AIネットワーク社会推進会議:AI利活用ガイドライン(P8、図2)より引用
上図の中では利用者を最終利用者とAIサービスプロバイダに分けています。最終利用者は、開発者にとってのクライアントが代表例です。開発するシステムやサービスがオープンなもの、コンシューマ向け(B2C)のものならユーザーが最終利用者になります。AIサービスプロバイダーも開発者にとってはクライアント(発注元)になりますが、システムやサービスを構築する上で、プロバイダーの機能をライブラリやAPIとして開発者が利用することもあります。
AIシステムの開発プロセス
前述のガイドラインでは、AI開発の業務フローを下図のようにまとめています。この例は、AIサービスプロバイダーの開発から運用までの流れを示したものといえます。例えば、画像データを入力すると写っている動物の種類を教えてくれるWeb上のAIサービスにあてはめることができます。

※AIネットワーク社会推進会議:AI利活用ガイドライン(P11、図3)より引用
計画フェーズ
「計画」では、例えば、動物の種類を判定してくれる汎用的なサービスサイトまたはAPIサービスがあれば学校の授業や教材、図鑑アプリなどに利用できビジネスにもなる、といったプラン、アイデアを考えます。企業の事業計画やITのシステム化計画に相当する部分です。この段階を「構想フェーズ」と呼ぶこともあります。
AI構築フェーズ
次の「AI構築」では、動物判定AIに必要なAIモデル、学習方法を考えます。さらに学習用データをそろえ、AIモデルをタスクに合わせて構築、チューニングします。この段階を「PoC(Proof of Concept)フェーズ」と呼ぶこともあります。AIの性能や構築コストなどがある程度分かる段階でもあるので、ここで事業性を検証することもあります。
この段階で学習に必要なデータを自前で持っていることは少ないので、多くの場合、新たにデータやテスト環境を購入またはライセンスを取得する必要があります。精度が高く信頼性のある学習データを用意することは簡単ではありません。
システムへの実装フェーズ
「システムへの実装」は、目的のタスクをサービスおよび製品として構成・構築する作業です。AIの基本的なモデルは「AI構築」で済んでいるので、ここでの作業は一般的なITシステムやWebアプリ・サービスの開発作業に近いものになります。実装フェーズでもAIの結合テストや微調整は必要ですが、ほかにもUI画面の設計をしたり、サービスやアカウントを管理するためのデータベースを用意したりする必要があります。
デプロイ、運用フェーズ
図ではWebサービスで一般的になっているDevOpsによる開発とサービス展開・運用を想定しているため、「デプロイ」と「運用」を分けています。プロセスをより一般化すると「運用フェーズ」としてまとめることもできます。この場合の「運用」は、製品・システム・サービスを完成させ、クライアントに納品、製品として出荷、サービスのリリースを行うことを意味します。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)AI開発のための環境づくり
開発作業を進めるには、AIモデルや開発のためのプラットフォーム(クラウド利用が多い)、開発環境、ツール類、学習やAIシステムに必要なハードウェアリソースも必要です。
プラットフォーム
AIモデルの利用、カスタマイズやチューニングには、AIモデルの学習や構築を行うためのプラットフォームが必要です。現在はクラウド上のPaaS(Platform as a Service)を利用することが多く、AWS、Azure、GCPといったオープンプラットフォームを使うことが一般的です。
PaaSは、クラウド上のプロセッサ、メモリ、OSまでの仮想環境を提供します。AIの学習、モデル構築には、かなり潤沢なCPUリソースが必要です。複雑な多項式の演算やニューラルネットワークの構築・処理にはマルチコアCPUは当然として、128、2048といった数のクラスタ構成を持つプロセッサが必要なことがあるからです。クラウドのPaaSサービスなら、これらを必要に応じて利用することが可能です。
AIサービスプロバイダーやSIerがAIシステムを開発する場合、クラウドサービスを利用して開発、構築するのが一般的です。
しかし、独自のAIアルゴリズムやAIモデルに特化した企業で、かつ産業機器やクリティカルな用途のAIを開発する場合、あるいは単純に規模が大きいAI開発ベンダーは、独自のAI開発プラットフォームをオンプレミスで構築することがあります。Preferred Networks(PFN)がその一例です。同社は、データセンターにNVIDIAのAI用プロセッサのクラスタシステムを独自に構築し、社内エンジニアが自由にAIモデル開発、構築、学習テストができるような環境を持っています(オープンクラウド環境も活用しています)。
ハードウェア
AIシステム開発においてコンピュータリソースは、AIのパフォーマンスや開発スピードに直結する重要な要素です。高性能サーバーをクラスタ構成したようなハイパフォーマンスコンピューティングの技術が必要ですが、これらは現在、AWS、Azure、GCPといったクラウドで利用することができます。
したがって、エンジニアの手元に必要なコンピュータリソースは、高性能なノートPCでも(セキュアかつ高速なネットワーク回線があれば)十分です。しかし、開発するシステムが産業ロボットや自動運転車などの場合、開発したシステム(AIモデルを含む)をターゲットハードウェアにインストールするか必要なサーバー側システムをクラウド展開(デプロイ)しなければなりません。
このとき必要なハードウェアは、AIモデルを学習・構築していたときの環境とは異なります。AI開発にはGPU(Graphics Processing Unit)由来のAIプロセッサボードやサーバーが必要(NVIDIAがそのトップブランド)とされますが、システムに組み込まれるAIモデルの実行には平均的なPCや組み込みシステムが利用されます。
AIプロセッサは一般的に高価です。消費電力も高く、サイズも決まっているのでロボットや最終製品に組み込む用途に向いていません。また、出来上がったAIモデルの実行には、学習や開発で要求されるような並列処理性能や高い行列演算能力は必要ありません。
開発時と同じプロセッサをターゲットシステムにも使うのは、構築時と同じシステムアーキテクチャでAIモデルを実装できるメリットがあります。そのためNVIDIAは車載用、組み込み用のAIプロセッサを用意していますが、SoC(System On a Chip)としてAIモデルを含んだシステム全体をワンチップ化することが求められる組み込み機器への応用は難しくなります。
このような用途にはFPGA (Field Programmable Gate Array)を使うことも増えています。FPGAは、専用の記述言語でICの内部回路(ロジック)を任意に設定、プログラミングできる半導体デバイスです。プログラマブルなので、内部のロジック回路の書き換えも可能であり、LSIやSoCのプロトタイプ設計に多用されていました。FPGAは、ICのマスクパターンだけでなく、ソフトウェアコードを論理回路としてIC化することもできます。
ソフトウェア
AIモデル開発・構築において、Pythonは機械学習のためのライブラリが豊富なためポピュラーなプログラム開発言語といえます。ほかにもC++、R言語も機械学習に利用されることが多い言語です。Rustも機械学習ライブラリの開発が進んでいる言語です。
機械学習では、学習データの前処理が必要です。データのスクリーニングやフィルタリング処理です。プログラミング言語のAIライブラリには、この前処理用のものと、機械学習やAIモデルのチューニングを行うためのものがあります。
機械学習やAIモデル構築に特化した開発ツールも豊富です。C++やJavaのプログラミングで一般的に使われるVisual StudioやEclipseのように、AI開発でもGUIによる開発環境、ツールが存在します。
また、AWS、Azure、GCPにはAI開発向けの開発環境、ツールサービス、APIサービスが豊富にあります。GCPはAI関連のツールやAPIサービスが豊富とされています。利用できるツールやサービスはダッシュボードやマーケットプレイス画面で探すことができます。
AI専用ツールではありませんが、高度な数理処理、数値計算のプラットフォームとしてMATLABを使うAIエンジニアも少なくありません。MATLABはシミュレーションなどに欠かせない数値処理環境ですが、機械学習の前処理や統計計算、複雑なモデル計算に利用します。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)AIエンジニアに必要なスキル
AIシステム開発に必要なスキルセットには、数学などリテラシーとして必要なものと、コンピュータサイエンスとして必要なものがあります。
数学・統計
数学や統計の知識はAI開発において重要とされます。エキスパートシステムや機械学習のようなAIアーキテクチャの発明・考案から、AIモデルの開発・構築にはルールベースアルゴリズム、回帰分析、行列演算、確率論、統計、ニューラルネットワークなどの基本的な知識も必要です。
これらは、高校・大学(学部)で学ぶレベルが該当します。理系であれば問題ないですが、文系でも教養課程で選択する数学、あるいは近年増えているリベラルアーツとして学ぶ高等教育をカバーしていることが望ましいです。
理系・文系にかかわらず、重要なのは、数学的な思考ができるかどうかです。計算処理は機械にまかせることができます。帰納法的な思考ができる、数式によるモデル化や抽象化が理解できる能力があれば大丈夫です。数学は選択していたけれど統計はやらなかった、というのはあまり問題になりません。必要なときに統計学の本を読んで数式やモデルが理解できればいいのです。
コンピュータサイエンス
数学とコンピュータサイエンス をいっしょくたに捉える人もいますが、本来この2つは別物です。純粋な数学は極めて概念的・抽象的で科学を代表するひとつの体系です。コンピュータはエンジニアリングそのものであり、概念よりも実装が求められます。
ただし、コンピュータが扱うデータ(情報)は、現実世界をモデル化したものです。数学では離散数学という分野があります。離散数学は、デジタル化やサンプリング原理の元になっています。また、プログラミングに欠かせないアルゴリズムも現象や手順をモデル化によって一般化・抽象化する概念です。数学とコンピュータサイエンスは別物ですが、基礎部分でつながっています。
AIシステム開発では、プログラミングやコンピュータの知識が不可欠となります。具体的には、2進数やコンピュータの基本構造、アルゴリズムやプログラミング言語に関する知識、ネットワーク・通信に関する基本的な理解です。もうひとつ付け加えるならサイバーセキュリティの知識です。
理系以外のスキルセット
AIシステム開発には、理系の素養や下地はとても重要で必須ともいえますが、AIを課題解決のためのツールとして考えた場合、じつはこれらの知識よりも課題に関する分野の知識が重要という考え方も成立します。
「SNSの雑多な投稿からトレンドを分析したい」「防犯カメラの映像から特定の人物だけ抽出したい」といったニーズや課題があったとき、そのソリューションの実現にAIを使いたいとします。この目的達成のために必要なのは、自分でAIモデルを構築することではなく、出来合いのAIモデルで使えるものがあればそれを利用することです。
近年、機械学習、とくにディープラーニングの分野で、学習やその前処理を自動化するAIやツールの開発、API化が進んでおり、AIモデルの開発や構築の現場でも、これらを多用する動きが広がっています。学習結果を見ながら関数のパラメータ調整の試行錯誤を繰り返すような作業を減らしてくれます。AI研究の最先端の動きは、AI専門家以外にも適用範囲を広げ、ツール化を促進しています。
業務やタスクがAI利用に特化できるなら、数学やコンピュータに関する知識は最小限でも、それを利用できるリテラシーがあれば対応は可能です。そしてこの場合、むしろ重要なのは対応する課題分野の専門知識です。EC、金融、工業、製造、物流、農業など業種や職種ごとの仕組みや業務プロセス、市場、関連法令に精通している必要があります。
機械学習の自動化、ツール化が進むことでより重要性を増しているのが、データの精度や信頼性。そしてその所有者や作成方法についての認識です。データの収集方法や集計方法のようなテクニカルな知識、分析能力のほかに、プライバシー、個人情報、人権や分野ごとの規制や関連法令に関する知識やセンスが問われます。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)AIエンジニアに必要な資格
AIシステム開発において、持っておくと役に立つ資格もあります。基本的なリテラシーを証明するものとして、基本情報技術者試験やAWS、Azure等のクラウド構築関連の認定試験、セキュリティマネジメント関連の資格などを挙げることができます。AIに特化したものとしては、例えば以下のものがあります。
- G検定、E資格(日本ディープラーニング協会)
- AWS Certified Machine Learning - Specialty(Amazon Web Service)
- Microsoft Certified: Azure AI Fundamentals(Microsoft)
- Professional Machine Learning Engineer(Google)
海外では、特定ベンダーや特定団体の認定資格よりも、CourseraやUdacityのような大学レベルのオンライン講座・授業の修了証の取得が一般的です。海外や外資系企業であれば、これらの履修も検討するとよいでしょう。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)まとめ
この記事では、AIエンジニアの定義や業務内容、開発フローや環境構築、必要なスキルや資格など多岐にわたり解説してきました。
AIエンジニアに関する技術を学び、転職も含めてキャリアに活かしたいとお考えなら、転職エージェントを利用するのも一案です。
dodaエージェントサービスでも、AIエンジニアに関する求人の市場動向や具体的な求人探し面接対策など、転職活動のお手伝いをいたしますのでぜひお気軽にご相談ください。
エージェントサービスに登録して
AIエンジニア転職について相談する(無料)
技術評論社 デジタルコンテンツ編集チーム
理工書やコンピュータ関連書籍を中心に刊行している技術評論社のデジタルコンテンツ編集チームでは、同社のWebメディア「gihyo.jp」をはじめ、クライアント企業のコンテンツ制作などを幅広く手掛ける。
- 自分の強みや志向性を理解して、キャリアプランに役立てよう
- キャリアタイプ診断を受ける
- ITエンジニア専任のキャリアアドバイザーに無料で転職相談
- エージェントサービスに申し込む(無料)
- キャリアプランに合う求人を探してみよう
- ITエンジニア求人を探す