ml-system-design-interview について
ML System Design Interviewは、スタッフ以上のMLエンジニア向けのシステム設計面接対策スキルです。要件、指標、データ、特徴量、モデル、サービング、監視の順に回答を組み立て、MLの基礎は扱いません。
主な機能
- 017段階の設計フレームワーク
- 0245分面接の時間配分
- 03代表的なMLシステム課題集
- 04サービング方式の比較
- 05スタッフ級回答の差別化要素
- 06ホワイトボード戦略と典型的な誤り
活用シーン
- 0145分のML設計面接の練習
- 02推薦システムの回答構成
- 03サービングアーキテクチャの比較
- 04システム設計回答のレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill ml-system-design-interviewインストール後、Claude Code で/ml-system-design-interviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonreferences/evaluation-metrics-guide.mdml-design-templates.mdserving-tradeoffs.md詳細
ML システム設計面接
スタッフ以上のエンジニア向けの、エンドツーエンドの ML パイプライン設計コーチングです。問題定義から本番環境でのモニタリングまで、トップクラスの ML 組織における L6 以上の面接で期待される範囲を網羅します。
このスキルは、ML/CV/AI/NLP 分野で15年以上の経験があることを前提としています。基礎は教えません。すでに持っている知識を、面接官に評価される形式に整理します。
使用する場面
次の用途に使用します:
- 45分間の ML システム設計面接の練習
- 推薦、ランキング、RAG、不正検知、知覚システムに関するホワイトボードでのプレゼンテーションの構成
- サービングアーキテクチャのトレードオフの分析(バッチ、オンライン、ストリーミング)
- L6 以上で差がつく要素(問題のオーナーシップ、組織上の制約、データのフライホイール)の特定
- ML システム設計の回答のレビューと批評
次の用途には使用しません:
- コーディング面接(
senior-coding-interviewを使用してください) - 行動面接/リーダーシップに関する質問(
interview-loop-strategistを使用してください) - ML 理論や数学的な導出
- モデルの実装や学習コードの作成
- 論文の読解や研究レビュー
7段階の設計フレームワーク
ML システム設計の回答はすべて、この流れに沿って進めます。各段階は順番に進みますが、制約が明らかになるにつれて前の段階に戻ります。以下の Mermaid 図をホワイトボードでの骨組みとして使います。
flowchart TD
R[1. Requirements\n- Business goal\n- Users and scale\n- Latency/throughput SLA\n- Constraints] --> M[2. Metrics\n- Offline: precision, recall, NDCG\n- Online: CTR, conversion, revenue\n- Guardrails: latency p99, fairness]
M --> D[3. Data\n- Sources and collection\n- Labeling strategy\n- Pipeline: ETL, validation\n- Freshness and staleness]
D --> F[4. Features\n- Engineering and transforms\n- Feature store architecture\n- Online vs offline features\n- Freshness requirements]
F --> Mo[5. Model\n- Architecture selection\n- Training pipeline\n- Iteration strategy\n- Baseline and ablation]
Mo --> S[6. Serving\n- Batch vs online vs streaming\n- Caching and precomputation\n- Scaling and cost\n- Canary and shadow mode]
S --> Mon[7. Monitoring\n- Data drift detection\n- Model degradation alerts\n- A/B testing framework\n- Rollback strategy\n- Feedback loops]
Mon -.->|Feedback loop| D
Mon -.->|Retrain trigger| Mo
各段階の詳細
ステージ 1 -- 要件(5分) 設計を始める前に、確認の質問をします。ユーザーは誰か、ビジネス指標は何か、レイテンシの SLA は何か、規模(QPS、データ量)はどの程度か、コスト、プライバシー、規制などの厳しい制約は何かを明確にします。L6 以上の候補者は問題定義を主体的に担います。面接官から要件を提示されるのを待ってはいけません。
ステージ 2 -- 指標(3分) デプロイ前に測定できるオフライン指標と、ビジネス上重要なオンライン指標を定義します。その差について説明します。「オフラインでの NDCG の改善が、必ずしもオンラインでの CTR 向上につながるとは限りません。位置バイアスや新奇性効果があるためです。」ガードレール指標として、レイテンシ p99、ユーザーセグメント間の公平性、予測あたりのコストを定義します。
ステージ 3 -- データ(7分) 学習データはどこから得られるか、どのようにラベル付けされるか(人手、弱教師あり学習、暗黙的なシグナル)、クラスのバランスはどうか、データはどの程度新鮮である必要があるか、データパイプラインは何か(バッチ ETL とストリーミングのどちらか)、どのようなデータ品質チェックがあるかを確認します。この段階で L6 以上の候補者と L5 の候補者に差が出ます。若手の候補者は、ラベル付きデータに問題がないものと考えがちです。
ステージ 4 -- 特徴量(5分) モデルに必要な特徴量を確認します。事前に計算するもの(オフライン)と、リクエスト時に計算するもの(オンライン)を区別します。特徴量ストアのアーキテクチャは、オンラインストア(低レイテンシのルックアップ)とオフラインストア(バッチ学習)に分けます。特徴量の鮮度については、ユーザー特徴量は毎日、アイテム特徴量は毎時、コンテキスト特徴量はリアルタイムで更新する想定です。
ステージ 5 -- モデル(8分) まずシンプルなベースライン(ロジスティック回帰、XGBoost)から始め、その理由を説明します。その後、本番環境向けのアーキテクチャ(2タワー、Transformer など)を提案し、アップグレードする理由を示します。学習パイプラインについて、実行頻度、データ量、分布シフトへの対処方法を説明します。反復戦略として、最初に実施する実験を挙げます。
ステージ 6 -- サービング(8分) ここでシステム設計と ML が交差します。推論のレイテンシ要件、バッチ事前計算とオンライン推論のどちらを使うか、GPU と CPU のトレードオフ、モデルサービングのフレームワーク、キャッシュ戦略、コスト最適化(量子化、蒸留、スポットインスタンス)について説明します。サービングアーキテクチャを図に描きます。
ステージ 7 -- モニタリング(5分) デプロイ後に何が起きるかを説明します。データドリフトの検出(PSI、KL ダイバージェンス)、モデル劣化のアラート(指標の経時的な低下)、A/B テストのフレームワーク(サンプルサイズ、期間、新奇性効果)、ロールバック戦略(シャドーモード、カナリーの割合)、そして時間とともにモデルを改善するフィードバックループを扱います。
45 分間の時間配分
| フェーズ | 時間(分) | 扱う内容 |
|---|---|---|
| 要件と確認 | 5 | ビジネス目標、ユーザー、規模、SLA、制約 |
| 指標 | 3 | オフライン、オンライン、ガードレール、指標の整合性 |
| データ | 7 | ソース、ラベル付け、パイプライン、品質、鮮度 |
| 特徴量 | 5 | エンジニアリング、ストアのアーキテクチャ、オンライン/オフラインの分離 |
| モデル | 8 | ベースライン、本番アーキテクチャ、トレーニング、反復 |
| サービング | 8 | レイテンシ、アーキテクチャ、コスト、デプロイ戦略 |
| モニタリング | 5 | ドリフト、アラート、A/B テスト、ロールバック、フィードバック |
| 質疑応答のバッファ | 4 | 面接官による掘り下げ、トレードオフの説明 |
面接官から質問が入った場合は柔軟に対応してください。ただし、短時間でも 7 つのステージすべてを扱いましょう。モニタリングを省略するのは、L5 で最もよくあるミスです。
標準的な問題セット
| 問題 | 主な課題 | 必ず話し合う内容 |
|---|---|---|
| レコメンデーションシステム | コールドスタート、位置バイアス、多目的最適化 | ツータワー検索+再ランキング、探索と活用 |
| 検索ランキング | クエリ意図の分類、関連性とエンゲージメント、スケール時のレイテンシ | 転置インデックス+埋め込み検索、L1/L2 ランキングカスケード |
| コンテンツモデレーション | マルチモーダル(テキスト+画像+動画)、敵対的回避、適合率と再現率のトレードオフ | 人間を介した処理、エスカレーションの段階、異議申し立てワークフロー |
| RAG パイプライン | 検索品質、チャンク戦略、ハルシネーションの検出、評価 | 埋め込みモデルの選定、ハイブリッド検索、再ランキング、引用 |
| 不正検出 | 極端なクラス不均衡、敵対的な適応、リアルタイム要件 | 特徴量の更新速度、グラフ特徴量、アンサンブル+ルール、フィードバックの遅延 |
| 自動運転の認識 | センサー融合、安全性が重要なレイテンシ、ロングテール分布 | マルチタスクアーキテクチャ、シミュレーション、OTA アップデート、規制対応 |
サービングアーキテクチャの比較
| パターン | レイテンシ | 鮮度 | コスト | 最適な用途 |
|---|---|---|---|---|
| バッチ予測 | 該当なし(事前計算) | 数時間古い | 計算コストは低く、ストレージコストは高い | メールのレコメンデーション、日次レポート |
| オンライン推論 | 10~500ms | リアルタイム | 計算コストが高い(GPU) | 検索ランキング、不正検出 |
| ニアリアルタイム | 1~60 秒 | 数分以内 | 中程度 | フィードランキング、コンテンツモデレーション |
| ストリーミング | 1 秒未満 | 継続的 | 高い(常時稼働) | 不正検出、異常検出、入札 |
サービングのトレードオフ、フレームワークの比較、コスト最適化戦略の詳細は、references/serving-tradeoffs.md に記載されています。
L6+ の差別化につながる要素
シニアの回答とスタッフ以上の回答を分けるもの:
1. 問題の定義を自ら担う 提示された問題をそのまま受け入れないでください。「最適化するビジネス指標は何ですか? これは収益の問題ですか、それともエンゲージメントの問題ですか? 現在の解決策は何で、なぜ不十分なのですか?」と尋ねます。L5 の候補者は「レコメンデーションシステムを構築する」を受け入れます。L6 以上の候補者は「何を、誰にレコメンドし、成功とはどのような状態ですか?」と尋ねます。
2. 組織上の制約について話す 実際のシステムは組織の中で運用されます。チームの規模(カスタムモデルを保守できるのか、それともマネージドサービスを使うべきなのか)、オンコールの負担、チーム間のデータ依存関係、コンプライアンス要件、レガシーシステムからの移行経路について取り上げます。
3. データフライホイール戦略 好循環について考えていることを示しましょう。モデルの改善 -> エンゲージメントの向上 -> データの増加 -> モデルの改善、というサイクルです。このサイクルを加速する方法として、アクティブラーニング、暗黙的なフィードバックループ、探索戦略、コールドスタートのブートストラップについて話します。
4. 自社開発か購入かの判断 すべてをカスタムで構築する必要はありません。適切な場合はマネージドサービス(埋め込み API、フィーチャーストア、サービングプラットフォーム)を選び、競争優位性のために必要な場合はカスタムソリューションを選ぶ理由を説明します。総所有コストを理解していることを示しましょう。
5. 多目的の視点 実際のシステムは、関連性と多様性、精度と公平性、品質とレイテンシなど、複数の目標を同時に最適化します。パレート最適化、制約付き最適化、マルチタスク学習、ビジネスルールによる後処理など、競合への対処方法を話します。
ホワイトボード戦略
何を、いつ描くか:
| 時間 | 描くもの | 目的 |
|---|---|---|
| 0-5 min | 箇条書きを含む要件ボックス | 議論の軸を定め、構造的に考えていることを示す |
| 5-8 min | 指標テーブル(オフラインとオンライン) | モデルの精度だけにとどまらず考えていることを示す |
| 8-15 min | データパイプライン図(ソース -> ETL -> ストア) | データエンジニアリングを理解していることを示す |
| 15-20 min | フィーチャーアーキテクチャ(オフラインストア + オンラインストア) | フィーチャーストアの知識を示す |
| 20-28 min | モデルアーキテクチャとサービング図 | システム設計の中核となる成果物 |
| 28-36 min | レイテンシの注釈を付けたシステム全体図 | すべてをつなぎ、リリースまで実現できることを示す |
| 36-41 min | 監視ダッシュボードのスケッチとフィードバックの矢印 | フィードバックループを完成させ、本番運用を意識していることを示す |
コンポーネントにはボックス、データフローには矢印を使い、レイテンシやスループットの数値を書き添えます。30 分後に入室した人にも読める図にしましょう。
アンチパターン
モデルファーストの思考
初級者:問題を理解し、指標を定義し、データについて話し合う前に、最初の 2 分で「Transformer を使います」や「アテンション機構について説明します」と話し始めます。時間の 70% をモデルアーキテクチャに費やし、サービングにはまったく触れません。
エキスパート:モデルに言及する前に、最初の 10 分を要件、指標、データの検討に費やします。まずは単純なベースライン(手作業で作成した特徴量を使ったロジスティック回帰)を挙げ、ベースラインの限界が明らかになってから複雑な手法を提案します。サービングと監視にも同じだけ時間を割きます。
見分け方:アーキテクチャ図には詳細なモデルのボックスがある一方、データパイプライン、フィーチャーストア、サービングレイヤー、監視コンポーネントがありません。最初の一文でモデルアーキテクチャに言及します。
データを無視する
初心者:大規模なクリーンでラベル付け済みのデータが存在することを前提とします。ラベルの入手先やコスト、クラス分布、データの陳腐化について触れずに、「何百万ものラベル付きサンプルで学習します」と述べます。
エキスパート:データソース、ラベル付け戦略(人手によるラベル付け、弱教師あり学習、暗黙的なシグナル)、クラス不均衡への対処、データ鮮度の SLA、データ品質のモニタリングについて尋ねます。ラベル付けのコストについて検討し、それを削減する戦略(アクティブラーニング、半教師あり手法、合成データ)を提案します。
判定方法:回答のどこにも、データ収集、ラベル付けのコスト、クラス不均衡、データ品質チェック、データ鮮度についての議論がありません。「ラベル」という言葉も出てきません。
モニタリングの説明がない
初心者:設計がサービング層で終わっています。モデルのデプロイ後に何が起こるかについて触れません。性能劣化の検知方法、ロールバック方法、時間の経過に伴うモデルの改善方法について検討しません。
エキスパート:データドリフトの検出(母集団安定性指数、特徴量分布のモニタリング)、モデル性能の低下に関するアラート、適切な統計的厳密性を備えた A/B テストのフレームワーク、カナリアデプロイ戦略、安全なロールアウトのためのシャドウモード、再学習にデータを戻す明示的なフィードバックループについて検討します。
判定方法:アーキテクチャ図にモニタリングのコンポーネントがありません。本番環境から学習に戻るフィードバックの矢印もありません。A/B テスト、カナリアデプロイ、ロールバックについての言及もありません。
参考ファイル
詳細を調べる際は、以下を参照してください。デフォルトでは読み込まれません。
| ファイル | 参照する場面 |
|---|---|
references/ml-design-templates.md | 特定の問題(推薦、検索、RAG、不正検知、コンテンツモデレーション、知覚)に取り組むとき。Mermaid 図を含む、詳細に解説された設計が6つあります。 |
references/serving-tradeoffs.md | サービングアーキテクチャ、フレームワークの選定、キャッシュ、コスト最適化、デプロイ戦略を詳しく検討するとき。フレームワークの比較と、ユースケース別のレイテンシ目標が記載されています。 |
references/evaluation-metrics-guide.md | 指標の選定、指標の整合性の把握、A/B テストの設計、生成 AI の評価を行うとき。指標の判断ツリーと数式が記載されています。 |