Моя текущая отлаженная модель BERT, сохраненная в физическом пространстве, занимает 7 ГБ пространства. Это нормально для модели, чтобы занять такое большое количество места.? - PullRequest
0 голосов
/ 05 октября 2019

Моя тонко настроенная модель BERT для классификации, занимающая большой объем памяти, хотела понять, нормально ли это, или я неправильно сохраняю модель

1 Ответ

1 голос
/ 07 октября 2019

Давайте посчитаем параметры модели. Для базовой модели 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 сохраняет импульсы для всех параметров, т. Е. В итоге вы сохраняете три числа для каждого параметра, что делает сохраненную модель в три раза больше. Это может быть и ваш случай.

...