I can't see any way in the interface to do it.
Once in awhile, an opposite-aligned faction will get pissed and cancel it, or it'll expire, and sometimes the AI will offer to pay you to attack other factions, but I don't see any means of breaking it manually.
I'm fine with nasty diplomatic penalties for cancelling a NAP, but I don't see any way to do so at all.