初めに
私がAIエンジニアとして、長期インターンを経験してから約1年の期間が経過しました。(厳密には11か月)
その中でエンジニアとして働くために最低限何が必要なのかを学んだため、紹介していきたいと思います。
紹介したスキルを身に着けることで、AIエンジニアインターンの採用率は格段に上がると思います。
必要スキル一覧
- AtCoder茶色ランク相当のアルゴリズム実装能力
- 機械学習・深層学習システムの構築経験
- Git・Github利用経験
- Linux利用経験
- Dockerによる環境構築経験
- テストの実装経験
必要スキルに関する説明
AtCoder茶色ランク相当のアルゴリズム実装能力
アルゴリズム実装能力は高ければ高いほど良いのには違いないのですが、最低限として基本的な実装はでき、計算量も意識しながら実装できる能力があれば十分ということで、Atcoder茶色ランク相当としました。茶色になるためには以下の記事を参考にすると良いと思います。
緑・水色レベルの実装力になると、アルゴリズム実装面において実力不足で困ることは少ないと思うので、できる方は、是非目指した方が良いと思います。
機械学習・深層学習システムの構築経験
これに関しては以下の2段階で取り組むのが良いと感じます。
- kaggleに参加し、ipynbで1から前処理・学習・推論のシステムの構築について実践的なデータセットから学ぶ
- ローカルで環境を構築し、Pythonファイル(.py)によってkaggleで作成したシステムのようなシステムを構築する
kaggleでは実践的なデータセットでのモデル構築について学ぶことができるので積極的に大会に参加して、実装力を見つけると良いです。
しかし、実務では簡単な分析で.ipynbを利用しますが、ほぼPythonファイル(.py)でシステムが構築されます。そのため、環境構築方法・パスの通し方、コマンドからの実行などで躓くことがあるので、一度、Pythonファイルでシステムを構築した方が良いと思います。また、Githubに載せることでポートフォリオにできるのでおすすめです。
Git・Github利用経験
Gitは実務・個人開発の両方で重要です。詳しい説明は省きますが、簡単にいうと、コードの変更履歴を管理できるシステムで、高確率で利用することになります。
以下を読んでもらうと理解できると思います。
Githubに関しては、先ほども記載しましたが、ポートフォリオとして自身のコードを載せることもできますし、リポジトリ単位でコードを管理することで、Gitでの変更履歴の確認やIssue、PRといったものを利用することが可能です。抽象的説明ですみません。
以下を読めばある程度はわかると思います。
Linux利用経験
Macを利用してれば、さほど問題ないと思うのですが、Windowsの場合はwslでLinux環境を構築して、そこで開発を行った方が良いです。
機械学習・深層学習を行う環境はLinuxであることが多いので、使えるようにしておくことは必須です。特にコマンドで操作できるようにしておくことが大事です。
Dockerによる環境構築経験
これはLinux利用経験とも関係しています。
Dockerとは何ぞや?と思う方がいるかもしれないので、以下を読んでもらえば理解できると思います。
かなり省略していうと、PC上にさらにPCを作るようなイメージです。
これは実務において、環境を汚さずに手軽に開発を行える面で重宝されています。難易度は高いと思いますが、Linux環境でのDocker利用経験があると良いです。
WindowsのDocker Desktopは商用利用でお金がかかるので、Linux環境でDockerを利用した方が良いです。
テストの実装経験
これは実務で良いシステムを作成する上で必須となります。
例えば、実行に数時間かかるシステムを構築したとして、変更するたびに実行して確認するのはかなり効率が悪く、確認をしなければエラーが発生しているのかわからない状態になります。
そこで、テストが必要となります。関数単位でテストを作成したり、軽量なダミーデータで実行を行うようなテストを作成したりすることで、短時間でエラーを確認することができます。
最後に
具体的な説明というよりかは、簡単な紹介になってはしまったのですが、参考になれば幸いです。