At this age it is a lot harder to teach him to control his bite but it can be done if you decide he is going to learn manners.
One non violent way of working on his brain is to use the nothing in life is free program. You can read about this here
Right now your dog is under the impression that its OK to bite you, and perhaps that he can get his own way if he does.
Dogs love rough play and when you yell at him its very similar to another dog indicating 'lets get wild' in play. Not quite what you want to tell him. So in addition to the new rules of nothing in life is free add some new rules about playing.
If he touches you with his teeth make a high pitched yipe sound like he might make if you accidentally stepped on a tail or toe. YIIIIPE!
Then stand up and fold your arms and turn away from him and stop playing for a minute.
If when you yipe and turn away he gets lots wilder and rougher and bites harder then don't continue with this.
But if he comes over and nips more lightly then Yipe again and totally leave the room for a minute or two.
As the usual dog's goal is to get more play, and have more attention, taking away play (and he may see your yelling and shoving as 'fun') and taking attention away is not what he wants at all.
When you are done 'punishing' him by shunning him for a moment go back to play and then again end play if he gets too rough and signal him with 'ouch that hurts' in dog by saying YIPE.
It may take a little bit but you should see a reduction in teeth use as you do this.
Fun=gentle and rough= no fun!
Now in addition to the nothing in life is free trying working with a different trainer and may be one on one first should also help. www.apdt.com
may help you find a trainer doing positive reinforcement training. That is what you need to help the dog learn that doing what you want is a great idea rather than trying to punish him into it.
Hope this helps you!