Hi Lorna! My choice would be to go to the Sea Life Center in Seward. They are very small, even from a tour boat - but you can see them in their natural habitat on one of the day cruises out of Seward. If you go to the Sea Life Center, you have a two story glass panel to watch them, either under water or from above. There is also a open air viewing area where you can "almost" touch them. They are so cute and funny!
My clear preference is in the wild - even though I did go to the Seward Sealife Center, they do have an excellent exhibit of underwater viewing. You will see them on the boat tours of at least 6 hours out of Seward. I have seen them in Glacier Bay but not on all trips and not in the numbers of the other post. The other place I have gone is to St. Lazaria Island on a boat trip out of Sitka, only SE Alaska accessable puffin rookery. BUT if every in Maine- don't miss Norton's out of Jonesport and be sure to purchase the permit to get on the island- hours of extremely close up viewing in blinds.