Binary search works here because of one observation: if nums[mid] < nums[mid + 1], there must be a peak somewhere to the right. Why? The values are rising. Either they keep rising to the end (making the last element a peak, since the boundary is negative infinity) or they drop at some point (creating a peak there).
The same logic applies in reverse. If nums[mid] < nums[mid - 1], a peak exists to the left.
So at each step, compare nums[mid] with nums[mid + 1]. Move toward the higher neighbor. You'll always converge on a peak.