The hardest part is to let go of someone who one minute cares for you with undying love and the next acts selfishly & completely carelessly without disregard to your feelings. It would be hard but not impossible for him to quit smoking weed. If he does, those mood swings might stop. However, being abused physically is not good, and for you to harm yourself in the course of finding an answer is not on. Let others, families & friends be your rock and to hold you in a good place. You're blessed to have a child, some of us are not so lucky.
How old are you both?