← Adobe Interview Insights

Adobe·Machine Learning Engineer·Technical Phone Screen·Senior

Senior
May 2026

Summary

Went through a technical phone screen for an ML Engineer role at Adobe that was pretty much entirely focused on numerical precision and mixed precision training. Not a lot of breadth, just one topic drilled pretty deep.

Questions Asked (3)

Q1

Can you walk through the differences between FP16, BF16, and FP32, and explain why mixed precision training speeds things up?

Technical Trade-offsSystem Design
Author's notes

This is where I spent most of the interview.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining each format in terms of bit allocation (sign, exponent, mantissa) and dynamic range vs. precision. Then explain how mixed precision training leverages FP16/BF16 for compute-intensive operations while keeping FP32 for numerically sensitive parts, and why this speeds up training. Finally, connect to hardware support and practical trade-offs.

Pro tip: Mention that BF16 has the same exponent range as FP32, which avoids loss scaling, while FP16 requires loss scaling to prevent underflow—this shows you understand real-world implementation details.

1. Define the formats

Explain that FP32 uses 1 sign, 8 exponent, and 23 mantissa bits; FP16 uses 1, 5, 10; BF16 uses 1, 8, 7. Highlight that BF16 has the same exponent range as FP32 but less precision, while FP16 has more precision but limited range.

2. Compare dynamic range and precision

Discuss how FP16's narrow range can cause underflow/overflow, requiring loss scaling, whereas BF16's wide range avoids this but may lose precision in small gradients. FP32 offers the best precision but is slower and more memory-intensive.

3. Explain mixed precision training

Describe how mixed precision uses FP16/BF16 for forward and backward passes (matrix multiplications, convolutions) and FP32 for master weights and updates. This balances speed and numerical stability.

4. Why it speeds up training

Explain that lower-precision operations are faster due to reduced memory bandwidth and higher throughput on tensor cores (e.g., NVIDIA GPUs). Also, reduced memory footprint allows larger batch sizes or models.

5. Discuss trade-offs and practical considerations

Mention that BF16 is easier to use (no loss scaling) but may require more careful hyperparameter tuning; FP16 can be faster on some hardware but needs loss scaling. Also note that mixed precision may not benefit all layers equally.

Key Points to Mention

  • Bit allocation: sign, exponent, mantissa for each format
  • Dynamic range vs. precision trade-off
  • Loss scaling for FP16 to prevent underflow
  • BF16's advantage: same exponent range as FP32, no loss scaling needed
  • Hardware acceleration: tensor cores and memory bandwidth reduction
  • Master weights in FP32 for stable updates

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Why is BF16 generally preferred over FP16 for training large language models?

Technical Trade-offs
Author's notes

Knew this one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining BF16 and FP16 in terms of bit allocation and dynamic range, then explain why BF16's wider exponent range prevents overflow/underflow during training. Conclude by discussing practical benefits like stability, reduced need for loss scaling, and hardware support for mixed precision.

Pro tip: Mention that while BF16 has lower mantissa precision, its dynamic range is the same as FP32, which is crucial for handling the wide distribution of gradients and activations in large models. Also note that BF16 often requires no loss scaling, simplifying training pipelines.

1. Define BF16 and FP16

Explain that BF16 uses 8 exponent bits and 7 mantissa bits, while FP16 uses 5 exponent bits and 10 mantissa bits. Highlight that BF16's exponent matches FP32, giving it a much larger dynamic range.

2. Explain dynamic range importance

Discuss how large language models have a wide range of values in activations, gradients, and weights. BF16's wider range reduces the risk of overflow and underflow, which are common issues with FP16.

3. Address precision trade-offs

Acknowledge that BF16 has lower mantissa precision, but argue that for training, dynamic range is more critical than precision. The reduced precision acts as a regularizer and is often acceptable.

4. Discuss training stability and loss scaling

Explain that FP16 often requires loss scaling to prevent underflow of small gradients, adding complexity. BF16 typically does not require loss scaling, simplifying the training process and improving stability.

5. Mention hardware and ecosystem support

Note that modern accelerators (e.g., TPUs, NVIDIA Ampere+ GPUs) natively support BF16, and major frameworks (PyTorch, TensorFlow) have built-in support, making it a practical choice.

Key Points to Mention

  • BF16 has 8 exponent bits (same as FP32) and 7 mantissa bits; FP16 has 5 exponent bits and 10 mantissa bits.
  • BF16's wider dynamic range prevents overflow/underflow in gradients and activations, crucial for large models.
  • FP16 requires loss scaling to handle small gradients, while BF16 often does not, simplifying training.
  • Lower mantissa precision in BF16 is acceptable because training is more sensitive to dynamic range than precision.
  • BF16 is supported by modern hardware (TPUs, NVIDIA Ampere+) and deep learning frameworks.
  • BF16 enables faster training with mixed precision without sacrificing model accuracy.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

What are the tradeoffs between a wider exponent range and more mantissa bits in floating point formats?

Technical Trade-offs
Author's notes

Felt like a follow-up to the BF16 question.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining the two components: exponent bits determine range, mantissa bits determine precision. Then explain the fundamental tradeoff: for a fixed total bit width, increasing one reduces the other, so you must balance range vs. precision based on the application. Finally, relate this to ML workloads, where both range (to avoid overflow/underflow) and precision (to maintain model accuracy) matter.

Pro tip: Mention that modern ML hardware often uses mixed-precision or non-standard formats like bfloat16 (more exponent bits) and TF32 (more mantissa bits) to target specific needs, showing awareness of industry trends.

1. Define the components

Explain that floating point numbers consist of sign, exponent, and mantissa. The exponent controls the range (largest and smallest representable magnitudes), while the mantissa controls precision (number of significant digits).

2. State the tradeoff

For a fixed total bit width, allocating more bits to the exponent increases range but reduces precision, and vice versa. This is a zero-sum tradeoff.

3. Discuss implications for ML

In ML, range is crucial for handling large gradients or activations without overflow, while precision affects model convergence and accuracy. Different layers or operations may have different sensitivities.

4. Give examples

Compare formats: FP32 (8 exponent, 23 mantissa), FP16 (5 exponent, 10 mantissa), bfloat16 (8 exponent, 7 mantissa), and TF32 (8 exponent, 10 mantissa). Explain how each balances range and precision for specific use cases.

5. Conclude with practical considerations

Summarize that the choice depends on the application: training often needs more range (bfloat16) to avoid overflow, while inference may benefit from more precision (FP16) for accuracy. Mention that hardware support and mixed-precision techniques can mitigate tradeoffs.

Key Points to Mention

  • Exponent bits determine dynamic range (max/min values), mantissa bits determine precision (significant digits).
  • Fixed total bit width forces a tradeoff: more exponent bits mean fewer mantissa bits and vice versa.
  • ML training often requires larger range to prevent overflow/underflow in gradients and activations.
  • ML inference may prioritize precision to maintain model accuracy.
  • Examples: FP32, FP16, bfloat16, TF32 and their bit allocations.
  • Mixed-precision training and hardware support can help balance both needs.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.