To save memory, the backward pass recompute some parts. The forward pass doesn’t store a lot so you can use big batch without fearing RAM/GPU-RAM issues. Then, during the backward pass you compute only what you need using the few values stored and you store only the needed gradients for backpropagation algorithm.
I hope it’s clear, don’t fear to ask more detailed/clear explanations