なんで俺の機械学習ポートフォリオ、見向きもされないの?
これ、最近ほんとによく聞かれるんですよね。機械学習のポートフォリオ、めちゃくちゃ頑張って作ったのに、全然書類が通らない、面接に呼ばれないって。Kaggleのコンペでそこそこの成績出したのに、とか。わかる、その気持ち。
多分ですけど、それ、プロジェクトの量とか、使ってる技術がどうこうって話じゃなくて、もっと根本的な問題。作ったプロジェクトの「レベル」が、企業が求めているものとズレてる可能性がすごく高いです。
今日はその「プロジェクトのレベル」ってやつを、自分なりに5段階に分けて整理してみようかなと。これを読めば、自分が今どの位置にいて、次に何をやればいいのか、たぶんスッキリするはず。
先說結論
いきなり結論から言っちゃうと、多くの人が作ってるポートフォリオって、実は「レベル1」か、よくて「レベル2」止まりなんです。でも、企業が「おっ」と思って採用したいってなるのは、最低でも「レベル3」以上のスキルを持ってる人。ここに、めちゃくちゃ大きなギャップがある。
だから、Kaggleのチュートリアルを10個やるより、1個でもいいからレベル3のプロジェクトをやり遂げた方が、正直、就職・転職には圧倒的に有利です。マジで。
あなたのプロジェクトはどのレベル?5段階でチェック
じゃあ、そのレベルって具体的に何なんだよって話ですよね。ちょっと見ていきましょう。
レベル1:入門者の遊び場
ここがスタート地点。誰でも通る道です。Kaggleにあるような、もうすっかり綺麗にお掃除済みのデータセットを使う感じ。自分のPCのJupyter Notebook上で、pandasでデータ読み込んで、scikit-learnでとりあえずモデル作ってみる、みたいな。たぶん、欠損値は平均で埋めたり、カテゴリ変数はOne-hotエンコーディングしたり。これは学習にはすごくいい。でも、現実の仕事とは、まあ、かなり違いますよね。現実のデータはもっと汚いし、Notebookだけで完結する仕事なんてほぼない。
レベル2:データサイエンティストっぽい思考
Notebook一本やりから卒業して、ちょっとプロっぽくなってくる段階。コードをちゃんと`data_cleaning.py`とか`train.py`みたいに機能ごとにファイルを分けたり、Gitでバージョン管理を始めたり。実験のパラメータをconfigファイルで管理したりとか。顧客の離反予測みたいな、ちょっとビジネスっぽい課題に挑戦するのもこのレベル。複数のデータソースを組み合わせて、自分なりに特徴量を作ってみたり。ここまで来ると、かなり「それっぽい」仕事にはなってる。でも、「じゃあ、それ明日から本番で使える?」って聞かれると、多分「うっ…」って詰まっちゃう。
レベル3:モデルを「現実世界」にデプロイする
ここからが本番。データサイエンティストから、機械学習エンジニアへの第一歩。良いモデルを作るだけじゃなくて、「使えるようにする」ことがゴールになります。作ったモデルをDockerコンテナに入れて、FastAPIとかでAPIとして公開する。Grafanaとかでモデルのパフォーマンスを監視するダッシュボード作ったり。MLflowとかDVCで、どのバージョンのデータでどのモデルを学習させたか、ちゃんと追跡できるようにしたり。これができると、一気に市場価値が上がります。ほとんどの企業のML関連の求人は、このレベルのスキルを求めてると思っていい。
レベル4:スケーラブルなMLシステムを構築する
レベル3ができるようになったら、次は「スケール」を考える段階。データ量やユーザーが爆発的に増えても、システムが安定して動き続けるように設計する。もう個人のPCじゃなくて、AWS SageMakerとかGoogle Vertex AIみたいなクラウドサービスをがっつり使う世界。Airflowとかで複雑なデータパイプラインを組んだり、Kubernetesでサービスを管理したり。金融機関の不正利用検知システムとか、まさにこれ。ここはもう、シニアなMLエンジニアとかMLOpsエンジニアの領域ですね。
レベル5:AIの境界を押し広げる
これはもう、研究者の世界。既存の問題を解くだけじゃなくて、新しい解き方を発明するレベル。独自のニューラルネットワークを設計したり、自己教師あり学習で超巨大なデータセットを扱ったり。AI創薬みたいに、AIが科学的な仮説を立てて、実験をシミュレーションする…みたいな。正直、ほとんどのビジネスパーソンには直接関係ないかもしれないけど、AIの未来はこういうところから生まれてくるんですよね。
各レベルの具体的な違いは?一枚の比較表で見てみよう
言葉で説明しても分かりにくいと思うんで、表にまとめてみました。たぶん、これ見ると一発でイメージ湧くはず。
| レベル | プロジェクトの典型例 | 使うツール・環境 | 主な関心事 | ぶっちゃけ、キャリア的には |
|---|---|---|---|---|
| レベル1 入門 |
タイタニックの生存予測とか、アヤメの品種分類とか。まあ、Kaggleのチュートリアルですね。 | 自分のPC、Jupyter Notebook、Pandas、Scikit-learn。ほぼこれだけで完結。 | とりあえずコードを動かすこと。精度が85%から86%になった!って喜ぶ段階。 | 学習の第一歩。でも、これだけで就職は、正直かなり厳しい…。 |
| レベル2 中級 |
顧客の離反予測。複数のCSVを結合して、EDA(探索的データ分析)をしっかりやる。 | Gitでのバージョン管理が始まる。コードをちゃんと機能別にファイル分割する。 | 適切な評価指標は何か?(精度だけじゃないよね、とか)。クラス不均衡にどう対処するか? | データサイエンティスト職の入り口。ここまで出来て、ようやくスタートラインって感じ。 |
| レベル3 実践 |
作ったモデルをAPI化して、簡単なWebアプリから呼び出せるようにする。コンテンツ推薦エンジンとか。 | Docker、FastAPI/Flask、MLflow。場合によっては簡単なCI/CDパイプラインも。 | 「使える」ようにすること。推論速度、エラー処理、バージョニング。どうやって監視するか? | ここがスイートスポット!多くのMLエンジニア求人はここを求めてる。これをやれば引く手あまた。 |
| レベル4 大規模 |
金融機関のリアルタイム不正検知システム。ECサイトの超大規模な推薦基盤。 | AWS SageMaker、Kubernetes、Airflow。クラウドネイティブなツールがずらり。 | スケーラビリティ、信頼性、保守性。どうやってチームで開発・運用していくか。 | シニアMLエンジニア、MLOpsの専門家。高い給与が期待できる領域。 |
| レベル5 研究 |
AIによる創薬、独自の画像生成モデル(Stable Diffusionみたいなの)の開発。 | PyTorch/TensorFlowの内部構造をいじる。場合によってはカスタムハードウェアも。 | まだ誰も解いたことのない問題をどう解くか。新しいアーキテクチャの探求。 | トップ企業のR&D部門とか、大学の研究者。博士号持ってたりする人が多い世界。 |
じゃあ、どのレベルを目指せばいいの?
ここまで読んで、じゃあ自分はどこを目指せばいいんだ?って思いますよね。
答えは、目指す職種によります。
- 新卒・未経験でデータサイエンティストを目指すなら、まずはしっかりしたレベル2のプロジェクトを完成させることが大事。なぜその分析をしたのか、どうやってモデルを評価したのか、ちゃんと自分の言葉で説明できること。
- 機械学習エンジニアや、ある程度経験のあるデータサイエンティストとして転職したいなら、レベル3は必須です。デプロイ、API化、モニタリング、バージョン管理の経験があるかどうか。ここが一番見られます。
- シニアなMLエンジニアやMLOpsのポジションなら、レベル4の経験が求められます。クラウド上でスケーラブルなシステムを構築・維持した経験ですね。
- AI系のトップ企業の研究職は…まあ、レベル5ですね。トップカンファレンスでの論文発表とか、そういう世界です。
面白いのは、これ、国や企業文化で結構変わるってこと。例えば、米国のスタートアップなら、雑でもいいから自分でデプロイまでやったレベル3の経験がすごく評価されたりする。一方で、日本の大手メーカーとかだと、デプロイは専門チームがやるから、それよりはレベル2の分析や検証をどれだけ丁寧に、深くやったかを見られることもある。Googleの有名な論文『Rules of Machine Learning』なんかはグローバルな基準にはなるけど、結局は応募する企業の体質を見極めるのが大事ですよね。
よくある勘違い:「たくさん作ればOK」の罠
最後に、よくある勘違いについて。それは「とにかく数をこなせばいい」っていう考え方です。
レベル1のプロジェクトを10個、20個作っても、それはレベル1のスキルしか示せません。採用担当者から見れば、「チュートリアルをたくさんこなせる人なんだな」で終わっちゃう。正直、それはあまり評価されません。
それよりも、たった一つでもいいから、現実の課題(たとえ小さなものでも)を見つけて、データを自分で集めて(あるいはそれに近い状態にして)、レベル3、つまりデプロイして「使える」形にするところまでやり遂げたプロジェクトの方が、何百倍も価値があります。
あと、レベルを飛ばすことはできないってのもポイント。レベル2の基礎、つまり適切なモデル評価やデータハンドリングが分かってないと、レベル3のデプロイなんてできないし、やっても意味がない。焦らず、一歩ずつ進むのが結局は近道なんだと思います。
で、あなた自身のプロジェクトは今、どのレベルにありそうですか?そして、次のレベルに進むために、どこで一番詰まってます?もしよかったら、教えてください。
