Advice???

I’ve been dating this guy for almost a year. He is so amazing. I have a son from a previous relationship and he cares for him. He helps me out whenever I need him too. He is a marine and he is deployed most of the time but when he comes home sometimes he is angry. Sometimes if I fall asleep and. It FaceTime him he says horrible things to me that hurts me and brings my past up. He will say that “I’m a slut bc I was sexually assaulted as child” when we have sex he hits me like slaps my face. He spanks me until I’m blue even when I beg him to stop and cry. The worst thing he did and he done twice. When we have sex he will choke me until I can’t breathe ill claw and try to scream. He says it’s bc he wants me to pass out but I feel like o will die. He’s a great man but has flaws but I’m so in love that I feel like this a red flag but my heart ignores it. I don’t know what to do