The AI Engineering Skills Map を発表できることを嬉しく思います。AI のおかげで、2022 年とはまったく異なる方法でソフトウェアを構築できるようになりました。この変化を活かせるスキルを持つ人には、エキサイティングなプロジェクトや仕事の機会が数多くあります。しかし、ノイズが多く、誇張された情報があふれる AI 関連の情報環境の中で、あなたが学ぶべき最も価値のあるスキルは何でしょうか。私はチームとともに、AI エンジニアリングスキルのマップをまとめる作業を進めてきました。これは、(i) 開発者が何を学ぶべきかの優先順位を決め、(ii) 雇用主が熟練した開発者を採用するのに役立てるためです。
1 万件以上の求人情報の分析、AI 専門家・採用マネージャー・リクルーターへの数十回にわたる構造化インタビューの実施、アンケートによるデータ収集、その他のオンラインデータの統合に基づき、最も重要な AI エンジニアリングスキルは次の 4 つです。
- AI アプリケーションの構築とデプロイ
- ソフトウェアエンジニアリングの基礎
- コーディングエージェントの活用
- 構築の方向性を決める
このプロセスは、膨大な求人データと専門家へのインタビューデータに対してクラスタリングを実行し、現在だけでなく近い将来においても重要なスキルを特定するようなものだと、大まかに考えていただいて構いません。
用語について補足します。私は「AI エンジニア」という職務(AI システムを構築する仕事)ではなく、AI エンジニアリングスキルという言葉を使います。後者のほうがはるかに広い概念だからです。現在、すべての開発者はクラウドを扱う方法を知るべきですが、「クラウドエンジニア」という肩書きを持つ人は一部に限られます。同様に、すべての開発者(フルスタックエンジニア、データエンジニア、DevOps エンジニア、機械学習エンジニア、そしてもちろん AI エンジニアも)には、AI エンジニアリングスキルが必要になります。
AI アプリケーションの構築とデプロイ。AI アプリケーションと非 AI アプリケーションの最大の違いは、前者の出力が予測不能であることです。LLM にプロンプトを送っても、何が返ってくるかはわかりません。深層学習アルゴリズムをトレーニングしても、新しい例に対してどのような予測をするかはわかりません。対照的に、従来のソフトウェアはより予測どおりに動作します。
AI アプリケーションの構築とデプロイに長けた人は、AI の構成要素(LLM、コンテキストエンジニアリング、RAG、エージェンティックワークフロー、機械学習、深層学習など)を理解しているだけでなく、重要な点として、AI システムをより予測どおりに動作させるために、統計的手法を使って測定・制御・管理する方法を理解しています。その中核となるスキルは、規律正しい評価(evals)とエラー分析のループを適切に回す方法を知ることです。
ソフトウェアエンジニアリングの基礎。ソフトウェアがどのように動作するかを深く理解していれば、はるかに効果的に構築できます。ソフトウェアエンジニアリングでは、コスト、スケーラビリティ、信頼性、速度などの間でトレードオフを行う必要があります。セキュリティとプライバシーは、さらに複雑さを増します。
ソフトウェアの基礎を理解していれば、どのようなトレードオフが存在するのかを見極められます。その結果、ソフトウェアスタックの選択、システムアーキテクチャの設計、データストアの設計、テストなどにおいて、より良い判断ができるようになります。また、コーディングエージェントが行っているトレードオフを理解せずに「バイブコーディング」でソリューションを作ってしまう経験の浅い開発者よりも、はるかに良い結果につながります。そのような開発者は、コーディングエージェントに与えるべきコンテキストを知らないため、多くの場合、質の低いトレードオフを選んでしまうからです。ソフトウェアエンジニアリングの基礎を理解していれば、ソフトウェアエンジニアリングの正確な言語を使ってコーディングエージェントを導き、良いトレードオフを選択できるようになります。
コーディングエージェントの活用。エージェンティックコーディングを効果的に使うことは、今やすべての開発者にとって重要なスキルです。このスキルを身につけると、エージェントがどのように機能するかについての良いメンタルモデルを持てるようになります。エージェントの限界とその回避方法を理解し、いつ介入すべきか、いつ任せておくべきかを判断しながら素早く導き、時間やトークンを過度に浪費せずに堅牢なソフトウェアを構築できるようになります。
そのためには、コーディングエージェントのコンテキストを管理する方法、計画と実行のトレードオフを判断する方法、検証ツールや評価(evals)を提供してエージェントが自律的にループを閉じるのを支援する方法を知っておく必要があります。また、明確なスペックを活用する方法(そして、わざわざスペックを作らないほうがいい場合)や、協調して動作する複数のエージェントをオーケストレーションする方法、エージェントが本番データベースを壊してしまうといった落とし穴を回避する方法も知る必要があります。エージェンティックコーディングは急速に進化しているため、コーディングエージェントを巧みに使うには、最新のプラクティスを知るだけでなく、新しいツールを試し続け、ベストプラクティスの変化に合わせてワークフローを進化させる習慣を持つことも重要です。
構築の方向性を決める。明確なスペックがあれば、コーディングエージェントはそれに沿って成果物を届ける能力が急速に向上しています。そのため、エンジニアの仕事は、スペックに何を盛り込むかを決める方向へとシフトしています。エンジニアは、ピクセル単位で完璧なデザインを与えられて、それを実装するだけという役割を期待すべきではありません。その代わり、効果的な AI エンジニアリングには、プロダクトセンスと、ビジネスコンテキストや顧客のゴールを理解することが求められます。そうすることで、何を構築するかの調整と推進に参加できるようになります。
また、AI はこれまで以上に大きなオーナーシップと主体性を発揮する機会を与えてくれます。興味深い問題や機会を見つけ、それを責任ある形で活かすために実行することができます。この機会を活かすには、プロジェクトを前進させる方法を知っている必要があります。たとえば、ユーザーテストのために MVP をすばやく構築すべきタイミングと、より慎重に構築するために速度を落として時間をかけるべきタイミングを見極めることです。
これらすべてのスキルの土台にあるのは、継続的に学び続けるマインドセットです。AI は急速に変化し続けているため、私たちは皆、学び続け、新たなベストプラクティスを取り入れるためにスキルを進化させていく必要があります。
DeepLearning.AI の主な焦点は、開発者がこれらの AI エンジニアリングスキルを習得できるよう支援することです。この 4 つのスキルそれぞれについては、さらに詳しく述べたいことがあります。今後の投稿でそれぞれを詳しく掘り下げ、より詳細な AI エンジニアリングスキルマップを共有する予定です。AI エンジニアリングのゆくえを見渡すと、私たち全員が何を構築できるようになるのか、とてもワクワクしています。皆さんがこの未来でエキサイティングな役割を果たしてくれることを願っています。





