背景
機械学習の分野は急速に発展し、今やさまざまな産業でその重要性が高まっています。この需要の増加に応えるため、多くの研究者やエンジニアが機械学習のキャリアを選択したいと考えていますが、競争も必至となっています。ML InterviewCatは、機械学習のキャリアを目指す方々に向けて、面接準備に必要な情報をまとめています。
本書では、機械学習エンジニアの面接でよく出る質問やその回答、そして回答に必要な知識について詳しく解説しています。機械学習エンジニアがカバーすべき範囲は多岐にわたります。それこそ機械学習だけでなく、データベース、データパイプライン、システム設計まで必要となる役割も存在します。できるだけ広く解説しているので、皆さんが面接に臨む際、質問に答えられるよう本書はデザインされています。
私自身、最近ビッグテック企業のポジションの面接を受けましたが、ML InterviewCatに掲載されている内容が役立ちました。この本は、皆さんの面接準備に必ず役立つと確信しています。
ML InterviewCatは初心者から経験豊富なプロフェッショナルまで、機械学習のキャリアを成功させたい方にとって最適な教材です。この一冊で、あなたのキャリアを次のステップに進めてください。どうぞ、この本が皆様のキャリアにとって価値ある一冊となりますように。
ML InterviewCatを活用できる面接
ML InterviewCatの想定読者はITエンジニアの実務経験を持ち転職をこれからの3か月~半年後の転職を検討されている方です。もちろん、まだ転職を全然考えておらず転職の大変さを知りたい方にもオススメです。
この本のメインの対象者としては
- テック企業(Google・Amazon・Microsoft・PayPay・Mercari)への入社を考える機械学習エンジニア、データサイエンティスト、データエンジニア、コンサル、ML関連のポストセールス職など
次に、この本を読んで得られるメリットですが
- MLエンジニア職の面接の流れや各面接の種類と対策方法が分かる
- MLエンジニア職の面接にたどり着くまでの情報が分かる
- MLエンジニア職の面接フローが分かる
- 分野別の質問の問題集を解く事で面接を想定した対策ができる
などがあります。本書が皆様の転職活動の参考になることを願っています。
機械学習エンジニアとは?
機械学習エンジニアは、機械学習アルゴリズムとモデルを設計、開発、および実装する専門家です。コンピューターサイエンスの原則と機械学習の知識を組み合わせて、予測モデルを構築し、データからインサイトを引き出す役割を果たします。以下は機械学習エンジニアの主な業務内容と必要なスキルの図です。
主な業務
- モデルの設計と開発:
機械学習エンジニアは、問題を解決するために最適な機械学習アルゴリズムを選択し、それらのモデルを設計、構築、およびテストします。
- データの前処理:
データのクレンジング、変換、および前処理を行い、モデルの訓練のためのデータを準備します。
- モデルの訓練とテスト:
大量のデータセットを使用してモデルを訓練し、モデルのパフォーマンスを評価し、必要に応じてモデルを調整します。
- モデルのデプロイ:
構築されたモデルを実際の環境にデプロイし、リアルタイムまたはバッチ処理のタスクに使用します。
- パフォーマンスのモニタリングとメンテナンス:
モデルのパフォーマンスを定期的にモニタリングし、必要に応じてモデルを更新または改善します。
必要なスキル
- プログラミング:
PythonやSQLなどのプログラミング言語に精通している必要があります。
- 数学および統計学:
線形代数、確率、統計学などの数学的な知識は重要です。
- データ処理:
データの前処理とクレンジングを熟知している必要があります。
- アルゴリズムの知識:
様々な機械学習アルゴリズム(分類、回帰、クラスタリングなど)の理解が必要です。
- 問題解決のスキル:
複雑な問題を解決するためのアナリティカルおよびクリティカルシンキングスキルが必要です。
機械学習エンジニアは、ビジネスや組織の様々な問題を解決するために、データ駆動型のアプローチを行います。機械学習のモデルを活用して、効率的な組織の意思決定を支援し、新しいビジネスチャンスを開拓していきます。
組織内のデータと機械学習関連の職種と本書の対象読者
組織内には、データと機械学習に関連するさまざまな職務があります。
データサイエンティストとは、データセットの収集、解釈、処理に焦点を当てた職種です。彼らはデータに対して統計的および探索的分析を実行します。データサイエンティストは機械学習に関連して、データ収集、特徴量エンジニアリング、モデル構築などに取り組むことがあります。データサイエンティストは通常、ノートブック環境のPythonまたはRで作業し、組織の機械学習モデルを構築する最初の人物です。
データエンジニアは、組織のデータを支えるインフラストラクチャとワークフローに焦点を当てた職種です。彼らは、会社がデータをどのように収取し、データパイプラインを管理し、データがどのように保存および転送されるかを支援します。データエンジニアは、データ周りのインフラストラクチャとパイプラインを実装します。別名は「Data Site Reliability Engineer」或いは「Data Platform Engineer」です。
機械学習エンジニアは、データエンジニアと似たタスクを行いますが、MLモデルに焦点を当てています。彼らは、データサイエンティストによって開発されたモデルを受け取り、それらのモデルをトレーニングし、デプロイする周りのインフラストラクチャとオペレーションを管理します。MLエンジニアは、モデルの更新、モデルバージョニング、およびエンドユーザーへの予測の提供を扱う本番環境を構築するのに役立ちます。
企業のデータサイエンスチームが小さく、チームがよりアジャイルであるほど、同じ人が複数の役割を果たす可能性が高くなります。そのような状況にある場合、データサイエンティストやデータエンジニアとしての役割もこなす必要があります。
読者はYahoo機械学習に関するキャリアをデータエンジニアとして開始し、データパイプラインの構築を担当していました。その後、データサイエンティストの役割に移行してMLモデルを構築を経験しました。最終的には、MLエンジニアとして、モデルを本番環境で運用するような仕事を行います。大規模な組織では、多数のチームの連携しながら仕事することもあるでしょう。
研究者(リサーチャー)は、機械学習の分野を進歩させるための新しいアルゴリズムの発見と開発に主に焦点を当てた職種です。機械学習のさまざまな分野、モデルアーキテクチャ、自然言語処理、コンピュータビジョン、ハイパーパラメータチューニング、モデルの解釈可能性などが含まれるかもしれません。ここで議論されている他の役割とは異なり、研究者は、本番環境のMLシステムを構築するのではなく、MLへの新しいアプローチをプロトタイピングして評価することにほとんどの時間を費やします。機械学習のより深い知識が必要となる職種です。
データアナリストは、データから洞察を評価し、収集し、これらのインサイトを組織内の他のチームに共有します。彼らはSQLやスプレッドシートで作業し、ビジネスインテリジェンスツール(BIツール)を活用して、インサイトを共有するためのデータビジュアライゼーションのダッシュボードを開発します。
データアナリストは、プロダクトチームと密接に協力して、ビジネス課題を解決するインサイトを提供する重要な役割を担います。データアナリストは既存のデータの傾向を特定し、それからインサイトを導き出すことに焦点を当てているのに対し、データサイエンティストはそのデータを使用して将来の予測を生成し、インサイトの生成を自動化またはスケールアウトすることに焦点をあてる事が多いです。
開発者は、エンドユーザーがMLモデルにアクセスできるようにする本番システムを構築する責任があります。彼らは、モデルをクエリして予測を返し、ウェブアプリケーションまたはモバイルアプリケーションを介してユーザーフレンドリーな形式で結果を返すAPIの設計を行います。これには、クラウドでホストされるモデル、またはデバイス上で提供されるモデルが含まれる場合があります。開発者は、MLエンジニアによって実装されたモデル提供インフラストラクチャを利用して、モデルユーザーに予測を提示するためのアプリケーションおよびユーザーインターフェースを構築します。
本書の進め方
機械学習エンジニアにとって、本書の内容は全て総合的な理解が必要であり、特に面接ではこれらの知識が試されることが一般的です。面接官は、これらの概念をただ理解するだけでなく、実際の問題解決に応用できる候補者を求めています。本書では、星の数を使って重要度を示します。
Chapter Title | English Translation | 重要度 |
第1章 データ基盤 | Chapter 1: Data Platform | ⭐⭐⭐ |
第2章 データベース | Chapter 2: Database | ⭐⭐⭐⭐ |
第3章 データエンジニアリング | Chapter 3: Data Engineering | ⭐⭐⭐⭐ |
第4章 特徴量エンジニアリング | Chapter 4: Feature Engineering | ⭐⭐⭐⭐⭐ |
第5章 統計 | Chapter 5: Statistics | ⭐⭐⭐⭐⭐ |
第6章 教師あり学習 | Chapter 6: Supervised Learning | ⭐⭐⭐⭐⭐ |
第7章 教師なし学習 | Chapter 7: Unsupervised Learning | ⭐⭐ |
第8章 深層学習 | Chapter 8: Deep Learning | 作成中🛠️ |
第9章 自然言語処理 | Chapter 9: Natural Language Processing | 作成中🛠️ |
第10章 レコメンドシステム | Chapter 10: Recommender System | 作成中🛠️ |
第11章 検索システム | Chapter 11: Search Engine | 作成中🛠️ |
第12章 システム設計 | Chapter 12: System Design | 作成中🛠️ |
第13章 MLOps | Chapter 13: MLOps | 作成中🛠️ |
※ 8章からはML InterviewCat応用編として別コンテンツとして販売予定です。
Authorについて
マレーシア出身。2011年、17歳のときに渡日し、高等専門学校に入学。大学、大学院では固体物理学を専攻し、密度汎関数理論を駆使したFortranとC++でのシミュレーションを学びました。
2019年、Yahooにデータエンジニアとして入社。Yahoo!ショッピングと当時のPayPayモールのためのSpringBootを使ったバックエンド開発、AirflowによるETL開発、Apache Zeppelinの社内ツール開発、MLOpsでのMLflowを用いた機械学習モデルデプロイメントを経験。同社での経験は、データサイエンスを実用化させる事に取り組んでいました。
2021年、Walmartに入社。Walmartの内部システムから西友のデータインフラに向けてのデータプラットフォームの設立と移行において中核を担いました。また、西友の食料品のダイナミックプライシング戦略の核となる価格弾力性モデルの開発に貢献しました。
2023年、PayPayに入社。検索エンジンのインフラ、ランキング学習、および推薦システムを担当。担当業務は、フィンテックの革新と機械学習が交差する点にあり、技術が金融サービスをよりパーソナライズし、改善する方法の限界を広げています。
プライベートでは、ハイキングと旅行を趣味とする。また、ウェブアプリケーションの構築や、機械学習システムデザインの最新の動向について研究を行う。
2023年にDrBunnyを共同開発し、渡日した外国人が医療症状を英和翻訳できるプラットフォームを立ち上げました。当プロジェクトは、言語の背景にかかわらず、すべての人が自分の健康上の懸念を効果的に医師に伝えられることを目指しています。
イラストレーターについて
業務コンサルタント、アーティスト。
2022年にITコンサルタント会社に入社し、経理業務専門のコンサルタントとしてBPRやシステムリプレイスプロジェクトに従事。業務コンサルタントの傍ら、アーティストとして活動中。学生時代から続けている趣味のレタリングやイラストスキルを活かし、挿絵、メニュー表、Webサイトのアイコンを制作しています。現在、UI/UXデザイナーを目指し学習中。