Давайте посчитаем параметры модели. Для базовой модели BERT это:
- вложения: 30-тысячные вложения, состоящие из 768 измерений = 23M
- 12 слоев трансформатора, каждый с:
- слоем прямой связис 2 проекциями 768 × 4 × 768 = 2,4M
- проекции запросов, ключей и значений в самообслуживании для 12 голов = 12 × 3 × 768 × 768 = 21,2M
- проекция из 12вектор контекста головы в один вектор контекста = 12 × 3 × 768 × 768 = 7,1M
- это 32,7M параметров на слой = 392,4M
Это 415.M параметры для всей модели. Стандартные числа с плавающей точкой в TensorFlow имеют 32 бита, то есть 4 байта, что дает вам примерно 1,5 ГиБ только параметров BERT. Вам нужно немного места для определения модели, у вашего классификатора также есть некоторые параметры. По моим оценкам, ваша сохраненная модель должна быть чуть больше 2 ГБ.
Оптимизатор Adam сохраняет импульсы для всех параметров, т. Е. В итоге вы сохраняете три числа для каждого параметра, что делает сохраненную модель в три раза больше. Это может быть и ваш случай.