From the Vegan Society:
To get the full benefit of a vegan diet, vegans should do one of the
- Eat fortified foods two or three times a day to get at least three
micrograms (mcg or µg) of B12 a day OR
- Take one B12 supplement daily
providing at least 10 micrograms OR
- Take a weekly B12 supplement
providing at least 2000 micrograms.
The less frequently you obtain B12 the more B12 you need to take, as
B12 is best absorbed in small amounts. The recommendations above take
full account of this.
From the vegan r.d.:
Current recommendations are for vegans to supplement with cyanocobalamin in one of the following three ways:
- 2.5 mcg two times per day
- 25-100 mcg daily
- 1,000 mcg two times per week
As far as I know, this kind of thing always happens when supplementing any nutrient (though probably more for some nutrients than others). Concentrating a large amount of a chemical into a small pill makes it hard for the body to absorb it properly before it passes through. This effect gets worse as the dose increases, which means it gets even worse as it is compensated for. It's not impossible to overcome, but the result is that in order to get enough of the vitamin, you do need to ingest much more. So to get the RDA of about 3 µg in a single pill you need to take somewhere around 25 µg, and to get 7 days' worth in one go you need much more than 7 times that.
Note that the amounts above are for people who simply want to maintain a healthy level of B12. If you need to recover from a deficiency, you may indeed need to take something like 2000 µg daily:
For persons suffering from vitamin B12 deficiency and pernicious anemia:
The recommended daily dosage is 300-10,000 mcg. There is also evidence suggesting that the most effective way of increasing vitamin B12 in such persons is through oral dosage of between 647-1032 mcg on a daily basis. (source)
The range here is so wide because it really depends on how deficient you are. If you suspect a deficiency, avoid looking for answers on the Internet - get a blood test and advice from a doctor!