Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

TorchLeet

65 PyTorch problems from real ML/AI interviews at Google, Meta, Anthropic, and more.

GitHub starsWebsite

Follow me on Twitter | Try the Terminal | AI Tutor | Send Feedback


I struggled to grind for ML/AI interviews so I went back to the basics and created a list after careful research. These are real problems from first person reports from real engineer interviews.

Important

Don't use GPT. The whole point is to struggle through these yourself. If you paste these into ChatGPT you're wasting your time. The goal is to deeply understand PyTorch, not to get an answer. I used GPT to help write some of the initial code, but I tested and solved every problem myself. That's where the learning happens.

AI Tutor (NEW)

Turn any AI assistant into your PyTorch interview coach. The TorchLeet MCP server gives your AI access to all 65 problems, progressive hints, company prep plans, and learning paths, while enforcing a no-spoilers teaching style.

# Clone the repo first
git clone https://github.com/Exorust/TorchLeet.git
cd TorchLeet
# Then connect the AI Tutor (pick your client)# Claude Code
claude mcp add torchleet -- npx -y torchleet-mcp
# Codex
codex mcp add torchleet -- npx -y torchleet-mcp
Claude Desktop / Cursor / VS Code

Add this to your MCP config:

{
"mcpServers": {
"torchleet": {
"command": "npx",
"args": ["-y", "torchleet-mcp"]
}
}
}

Four learning guides:

GuideWhat it does
torchleet-tutorGuides you through problems with progressive hints
torchleet-interview-prepTimed mock interviews for specific companies
torchleet-reviewSenior ML engineer reviews your code
torchleet-explainDeep-dives from intuition to math to code

Set up the AI Tutor | torchleet-mcp on npm


65 problems across three tracks:

TrackFocusQuestions
BasicsCore PyTorch, classical ML, fundamentals24
LLM Learning PathBuild an LLM from scratch in order23
AdvancedSystems, kernels, modern architectures, alignment48

Questions overlap between tracks. Company-tagged questions tell you exactly what Google, Anthropic, Meta, and others ask.


Quick Start

# Install PyTorch# https://pytorch.org/get-started/locally/# Pick a problem, fill in the TODOs, compare with the solution
jupyter notebook torch/basic/lin-regression/lin-regression.ipynb

Each problem has a question file and a _SOLN solution file. Fill in the ... and #TODO blocks, then check your work.


LLM Learning Path

Build an LLM from scratch, one question at a time. Recommended order:

1. Foundations

ProblemLinks
Implement Byte Pair Encoding from ScratchQ
Implement Sinusoidal EmbeddingsQ / S
Implement ROPE EmbeddingsQ / S
Implement RMS Norm
Implement Attention from ScratchQ / S

2. Core Transformer

ProblemLinks
Implement Multi-Head AttentionQ / S
Implement Grouped Query AttentionQ / S
Implement KV CacheQ / S
Implement Sliding Window AttentionQ / S

3. Full Model

ProblemLinks
Implement SmolLM from ScratchQ / S

4. Alignment & Fine-Tuning

ProblemCompaniesLinks
Implement KL Divergence Loss
Implement LoRAMeta, Google, Anthropic, OpenAIQ / S
Apply SFT on SmolLM
Implement DPO LossAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFAnthropic, OpenAI, DeepMind, MetaQ / S
Implement GRPO (DeepSeek-R1)DeepMind, Anthropic, OpenAIQ / S

5. Decoding & Inference

ProblemCompaniesLinks
Temperature SamplingOpenAI, Anthropic, CohereQ / S
Top-k SamplingAnthropic, OpenAI, DeepMindQ / S
Top-p (Nucleus) SamplingAnthropic, OpenAI, DeepMindQ / S
Speculative DecodingGoogle, DeepMind, AnthropicQ / S
Continuous BatchingPerplexity, Together AI, MetaQ / S
Build a Complete LLM Inference EnginePerplexity, Together AI, Fireworks AIQ / S

6. Systems

ProblemCompaniesLinks
Mixture of Experts LayerGoogle, DeepMind, Mistral, xAIQ / S

Basics

Core PyTorch and classical ML fundamentals.

ProblemDifficultyLinks
Implement Linear RegressionBasicQ / S
Custom Dataset and DataLoaderBasicQ / S
Custom Activation FunctionBasicQ / S
Custom Loss Function (Huber Loss)BasicQ / S
Implement a Deep Neural NetworkBasicQ / S
Visualize Training with TensorBoardBasicQ / S
Save and Load PyTorch ModelBasicQ / S
Implement a CNN on CIFAR-10EasyQ / S
Implement an RNN from ScratchEasyQ / S
Data Augmentation with torchvisionEasyQ / S
Add Benchmarking to PyTorch CodeEasyQ / S
Train an Autoencoder for Anomaly DetectionEasyQ / S
Quantize Your Language ModelEasyQ / S
Mixed Precision TrainingEasyQ / S
Implement Softmax (numerically stable)EasyQ / S
Implement K-Means ClusteringEasyQ / S
Implement KNN in PyTorchEasyQ / S
Implement Logistic RegressionEasyQ / S
KL Divergence LossEasy
RMS NormEasy
Byte Pair EncodingEasyQ
CNN Parameter InitializationMediumQ / S
Implement a CNN from ScratchMediumQ / S
Implement an LSTM from ScratchMediumQ / S

Advanced

Company-tagged questions from real ML/AI interviews. Sorted by topic.

Modern Architectures

ProblemDifficultyCompaniesLinks
Contrastive Loss (InfoNCE) + CLIPMediumOpenAI, Anthropic, DeepMind, MidjourneyQ / S
2D Positional EmbeddingsMediumAnthropic, DeepMind, Midjourney, RunwayQ / S
Sliding Window AttentionMediumMistral, Anthropic, Google, DeepMindQ / S
Knowledge DistillationMediumGoogle, Apple, Meta, Qualcomm, TeslaQ / S
Mixture of Experts LayerHardGoogle, DeepMind, Mistral, Databricks, xAIQ / S
DDPM (Denoising Diffusion)HardMidjourney, Runway, Stability AI, Adobe, GoogleQ / S
DDIM Sampling + Classifier-Free GuidanceHardMidjourney, Runway, Stability AI, AdobeQ / S
Selective State Space Model (Mamba)HardDeepMind, Google, AnthropicQ / S
Vision Transformer + MAE PretrainingHardMeta, Google, Apple, Tesla, WaymoQ / S
Swin Transformer Block (Shifted Window Attention)HardMicrosoft, Meta, ByteDance, GoogleQ / S

Alignment & Training

ProblemDifficultyCompaniesLinks
Implement LoRAMediumMeta, Google, Anthropic, OpenAI, DatabricksQ / S
Implement DPO LossHardAnthropic, OpenAI, DeepMind, MetaQ / S
Implement PPO for RLHFHardAnthropic, OpenAI, DeepMind, MetaQ / S
Gradient CheckpointingHardMeta, Google, NVIDIA, TeslaQ / S
Implement GRPO (DeepSeek-R1)ExpertDeepMind, Anthropic, OpenAIQ / S
Apply SFT on SmolLMHard

LLM Inference & Systems

ProblemDifficultyCompaniesLinks
Implement KV CacheMediumAnthropic, OpenAI, Meta, PerplexityQ / S
Speculative DecodingHardGoogle, DeepMind, Anthropic, AppleQ / S
Continuous BatchingHardPerplexity, Together AI, Anyscale, MetaQ / S
GPTQ QuantizationHard
RAG Search of EmbeddingsMedium
Build a Complete LLM Inference EngineExpertPerplexity, Together AI, Anyscale, Fireworks AIQ / S

GPU Systems & Kernels

ProblemDifficultyCompaniesLinks
Fused Softmax Kernel in TritonExpertNVIDIA, Meta, Google, xAI, TeslaQ / S
FlashAttention-2 in TritonExpertNVIDIA, Meta, Together AI, xAIQ / S
FSDP (Fully Sharded Data Parallel)ExpertMeta, Google, NVIDIA, Anthropic, xAIQ / S
Ring Attention for Long ContextsExpertAnthropic, Google, Meta, xAIQ / S

Hard Foundations

ProblemDifficultyLinks
Custom Autograd Function (SILU)HardQ / S
Write a Transformer from ScratchHardQ / S
Write a GANHardQ / S
Sequence-to-Sequence with AttentionHardQ / S
Explainable AI (GradCAM/SHAP)HardQ / S

Company Quick-Reference

"If I'm interviewing at X, which questions should I prioritize?" Numbers reference the v3-tagged questions above.

CompanyPriority Questions
Anthropic5, 6, 7, 8, 10, 12, 13, 14, 15, 18, 22, 26, 27, 30
OpenAI5, 7, 8, 10, 11, 12, 14, 15, 27
DeepMind5, 6, 7, 8, 9, 13, 14, 15, 17, 18, 22, 27
Meta1, 2, 3, 4, 9, 11, 12, 14, 15, 16, 19, 23, 24, 25, 26, 30
Google1, 2, 4, 9, 11, 13, 16, 17, 18, 20, 22, 23, 24, 26, 29, 30
Apple1, 5, 9, 18, 23, 29
NVIDIA16, 24, 25, 26
Midjourney / Runway / Stability AI5, 6, 20, 21
Perplexity / Together AI / Anyscale7, 10, 12, 19, 25, 28
Tesla / Waymo16, 23, 24, 29
xAI17, 24, 25, 26, 30
Mistral / Cohere7, 8, 10, 13, 17

Contributing

Found a bug? Have a question from your own interview? PRs are welcome. Follow the notebook structure (question file + _SOLN file) and tag the authors.

If you found this helpful, follow me on Twitter. I post about ML interviews, PyTorch tips, and what I'm building next. Or just send me feedback, I read everything.


Contributors

Thanks to everyone who has added problems, fixes and solutions (11 so far):

Exorust
Exorust
samhubs
samhubs
AtulAravindDas
AtulAravindDas
CaslowChien
CaslowChien
emmanuel-ferdman
emmanuel-ferdman
PadLex
PadLex
bargav25
bargav25
ezhoureal
ezhoureal
Hylthek
Hylthek
gulbaki
gulbaki
jg-eno
jg-eno

Authors

Stargazers

Stargazers over time

About

LeetCode for PyTorch — 65 ML/AI interview problems from real interviews at Google, Meta, Anthropic. Jupyter notebooks, an auto-grader, and an MCP AI tutor.

Topics

Resources

Code of conduct

Contributing

Stars

2.5k stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages