Dogs usually learn this because we cannot hold out as long as they can.. You go for a walk and try to get them to stop pulling you get exhausted and give up, they pull for the rest of the walk and then you try again next time..
Try playing ball for awhile first to get the crazies out.
Don't tolerate it, you need to have patience TONS of it, keep turning around when there is pulling, keep correcting, I just like a word, and if that doesn't work a small correction with a martingale collar, I am not a fan of chokers or prong collars. Try the halti again, when he tries to get it off, stop him, and move! fast keep moving, he cannot get it off if he is at a trot. He will still be thinking about it though and wont be pulling. My dog tried to get it off for a long time too, and then took to rubbing her head on the side of my leg to try and rub it off, I just correct her for doing it.
If they pull, block in front of their face, with your hand, leg, or body, you can also swing the end of the leash in front of them, DO NOT HIT THEM, they wont pass it, if they do try and get bumped with the leash on the nose it wont hurt, but it is not the intention to actually hit them, just block.
But dont tolerate it, dont give up, dont allow any pulling, when they are walking nice you can start to give a command 'ok' that they can then go up a bit and sniff around, but they cannot pull first and then u say ok, you choose when it is ok or not. You have to persist the whole walk, each walk, each day, you will win, but every time you let them pull you are putting yourself back at the beginning. I would rather rely on training than equipment,
I have a lab also, and I have gone through this, persistence persistence, and they will get it, just never ever walk with them pulling, you are in training mode now and it is not acceptable.