My question is pretty simple: when using qml.probs() (for computational basis states), the probabilities are exact and the circuit is differentiable. However, I want to obtain these same probabilities by sampling instead and also want it to be differentiable.

Am I correct that there is no argument in qml.probs() that achieves this and we have to implement it ourselves? E.x. sample every qubit in Z basis, then convert computational basis state binary representation into floats and then calculate probabilities. Would that even be differentiable? Seems like too much work for something that’s definitely not a rare requirement.