tgoop.com/quant_prune_distill/528
Last Update:
Минутка удивительных 🤩 (или не очень) фактов.
Интуитивно кажется, что fp16/bf16 должны быть если не строго математически, то практически близки к некоему непрерывному описанию множества действительных чисел. Во всяком случае, в окрестности нуля. Поэтому вероятность принять конкретное значение должна быть малой. Что-то порядка 1 / мощность множества.
Однако, если сгенерировать x ~N(0, 1) оказывается, что для bfloat16 вероятность, что число окажется в точности нулем не так уж мала - примерно 0.6%. Для float16 и float32, к сравнению, она 0.07%.
И какова мораль 🤔, спрашивается?
Если в коде с bfloat16 (не говоря уже о типах более низкой точности), есть деление на нечто случайное, или граничный случай, стоит внимательнее обрабатывать их. Ибо они не такая уж редкость.
[Ноутбук на колабе]
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/528