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.