Cómo calcular la cantidad de parámetros del modelo Bert

BERT es un modelo preentrenado basado en la estructura del transformador . Para una introducción específica a los principios de bert, consulte el blog: Interpretación y mejora de Bert Series_&Eternal Galaxy& Blog-CSDN Blog_bert Series

Resolver los parámetros del modelo de Bert es una pregunta común en las entrevistas, y también es un punto que un ingeniero de algoritmos debe saber. Saber usar no significa familiaridad. Hoy, tome el modelo BERT BASE como ejemplo para calcular sus parámetros. Inicie el tema:

En BERT BASE:

  • El tamaño del vocabulario es (lista de palabras): 30522
  • El número de capas del codificador es (capa): 12
  • Tamaño del vector de palabra (vocab dim): 768
  • Longitud máxima del texto (longitud sec): 512
  • Número de cabezas (atención de múltiples cabezas): 12
  • El número de neuronas en las dos capas totalmente conectadas de Feed Forward es: 3702, 768

 Estructura del codificador de BERT

El codificador en BERT incluye: capa de incrustación, capa de atención de múltiples cabezas, capa de red de avance y parámetros de capa LayerNorm.

1. Capa de incrustación

Esta capa incluye tres tipos de Incrustación, específicamente Incrustación de Token, Incrustación de Segmento, Incrustación de Posición

Parámetros de la capa de incrustación de tokens: 30522 * 768

Parámetros de capa de incrustación de segmento : 2 * 768

Parámetros de capa de incrustación de posición: 512 * 768

Entonces la cantidad total de parámetros es: (30522 + 512 +2) * 768 = 23835648 =  22.7 M

2. Capa de atención de múltiples cabezas

Esta capa se compone principalmente de tres operaciones matriciales de Q, K y V. En el modelo BERT, es un mecanismo de autoatención de múltiples cabezales (denominado como SA). En primer lugar se obtiene la matriz de peso correspondiente mediante operaciones de matriz Q y K y transformación softmax, luego se multiplica la matriz de peso por la matriz V, y finalmente se concatenan los resultados obtenidos por las 12 cabezas para obtener la capa SA final producción.

Y debido a que el modelo BERT contiene 12 capas de codificador de transformador, la cantidad total de parámetros para cambiar las capas es: [768 * (768/12) * 3 * 12 + 768 * 768] * 12 = 28311552 =  27M

3. Capa LayerNorm

La capa LayerNorm tiene principalmente dos parámetros, peso y sesgo . La capa LN se utiliza en la capa de incrustación, la capa de autoatención y la capa de red de avance , por lo que el número total de parámetros en la capa LN es: 768 * 2 + (768 * 2) * 12 + (768 * 2 ) * 12 = 38400 =  37,5 KB

4. Red Feed-Forward层

La red feedforward FFN se compone principalmente de dos capas completamente conectadas, y las formas de W1 y W2 son (768,3072), (3072,768) respectivamente, y el número de capas es 12, por lo que la cantidad de parámetros de esta capa es :

(768 * 3072 + 3072 * 768)* 12 = 56623104 =  54M

Sumando los resultados de los cálculos anteriores, el número total de parámetros del modelo BERT es: 23835648 + 28311552 + 56623104 + 38400 = 108808704 ≈  104M.

La capa de incrustación representa aproximadamente el 20 % de los parámetros totales y la capa de transformador representa aproximadamente el 80 % de los parámetros totales.

Supongo que te gusta

Origin blog.csdn.net/weixin_44402973/article/details/126405946
Recomendado
Clasificación