The 60-second answer
Use log-sum-exp: subtract the per-row max, compute logsumexp, then select the target logit to obtain negative log likelihood. Avoid explicitly forming probabilities when they are unnecessary; this improves numerical stability.
Build the answer in this order
Use log-sum-exp: subtract the per-row max, compute logsumexp, then select the target logit to obtain negative log likelihood.
Avoid explicitly forming probabilities when they are unnecessary; this improves numerical stability.
Support a clear reduction contract (none/mean/sum) and validate label bounds and tensor shapes.
Compare forward values and gradients against the framework implementation on random and extreme logits.
A useful interview mental model
This is the shape of a strong answer—not a script to memorize.
Senior-level signal
- Senior answers discuss ignore-index, class weights, label smoothing, and distributed reduction semantics.
- Test mixed-precision behavior and keep critical reductions in a stable dtype when needed.
What the interviewer is really testing
Likely follow-up questions
Common weak-answer patterns
- Ignoring shape, dtype, device, masking, or broadcasting assumptions.
- Using a framework call without explaining the underlying operation.
- Skipping gradient, numerical-stability, and batching checks.