[Teoría de la red neuronal de Pytorch] 39 Modelos de la serie BERTology en la biblioteca de Transformers

Si desea seguir estudiando, debe comprender la implementación de nivel inferior en la biblioteca de Transformers y aprender a cargar y utilizar los modelos específicos de la serie BERTology de forma individual.

1 Estructura de archivos de la biblioteca de Transformers

1.1 Explicar el modelo de pre-entrenamiento en la biblioteca de Transformers en detalle

En la biblioteca de Transformers, hay tres tipos principales de archivos de modelos de entrenamiento previo y sus funciones específicas son las siguientes:

  1. Archivo de vocabulario: al entrenar el modelo, use este archivo como una tabla de mapeo para convertir palabras de entrada en números específicos. (guardado como texto)
  2. Archivo de configuración: almacena los hiperparámetros del modelo e instancia la clase del modelo en el código fuente de acuerdo con los hiperparámetros del archivo de configuración para generar un modelo utilizable. (guardado como texto)
  3. Archivo de peso: correspondiente a los valores de cada variable en la memoria del modelo disponible.Después de completar el entrenamiento del modelo, guarde estos valores. El proceso de carga de los pesos del modelo consiste en que estos valores se "sobrescriben" en las variables del modelo en la memoria, de modo que todo el modelo se restaura al estado después del entrenamiento. (guardado en modo binario)

1.2 Diagrama de archivo asociado del modelo BERT

Figura 3-18 (a) El archivo de vocabulario relacionado con el modelo básico de pre-entrenamiento del modelo BERT El archivo de vocabulario contiene palabras específicas, y el número de serie de cada palabra es su valor de índice correspondiente.

Figura 3-18 (b) El archivo de configuración relacionado con el modelo básico de preentrenamiento del modelo BERT, el archivo de configuración muestra los parámetros relevantes en el modelo, algunos de los cuales son los siguientes. Nombre del esquema: BertForMaskedLM. Tasa de abandono de abandono en la capa de atención: 0,1. La función de activación de la capa oculta: función de activación GEL∪. Tasa de abandono de abandono en capa oculta: 0.1.

 1.3 El directorio de archivos de la biblioteca de Transformers

# 目录地址
\Anaconda3\envs\python38\Lib\site-packages\transformers

1.3.1 Archivo de código de configuración

El archivo que comienza con confiquraton es el archivo de código de configuración del modelo de la serie BERTOOQy.

1.3.2 Archivos de código modelo

El archivo que comienza con el modelado es el archivo de código de modelo del modelo de la serie BERTology

 1.3.3 Archivo de código de vocabulario

El archivo que comienza con tokenización es el archivo de código de vocabulario del modelo de la serie BERToogy.

 1.4 Cada modelo corresponde a los tres archivos anteriores

Cada modelo corresponde a 3 archivos de código, que almacenan las direcciones de descarga de los archivos asociados.

1.4.1 Ejemplo: lista de archivos correspondientes del modelo BERT:

Archivo de código de configuración: configuration_bert.py.
Archivos de código modelo: modeling_bert, py.
Archivo de código de vocabulario: tokenization_bert.py.

1.5 Cargar el modelo preentrenado

La parte principal del modelo de entrenamiento son los tres archivos de código del archivo de código modelo, el archivo de código de configuración y el archivo de código de vocabulario. Para estos tres archivos de código, hay clases correspondientes en la biblioteca de Transformers para operar.

Clases de configuración: parámetros relacionados del modelo, definidos en el archivo de código de configuración.

Clases de modelo: es la estructura de red del modelo y se define en el archivo de código del modelo.

Clases de tokenizadores: preprocesamiento de vocabulario para el texto de entrada, definido en el archivo de código de vocabulario.

Estas 3 clases tienen el método from_pretrained,

1.5.1 Breve descripción de la función de llamada

from_pretrained(): Puede agregar modelos o parámetros previamente entrenados.

save_pretraining(): Guarde el archivo de configuración de sugerencias, el archivo de peso, el archivo de vocabulario del modelo localmente para que puedan cargarse nuevamente usando el método from_pretraining.

1.5.2 Carga automática

Cuando está en uso, se descarga y carga automáticamente en la memoria pasando el nombre de la versión del modelo especificado al método from_pretrained.

from transformers import BertTokenizer,BertForMaskedLM

# 使用bert-base-uncased版本的BERT预训练模型,其中BertTokenizer类用于加载词表,BertForMaskedLM类会自动加载配置文件和模型文件。

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')#加载词表

model = BertForMaskedLM.frompretrained('bert-base-uncased')#加载模型


# 该代码运行后,系统会自动从指定网站加载对应的关联文件。这些文件默认会放在系统的用户目录中


1.5.3 Carga manual

En el código fuente, busque la dirección de descarga correspondiente, cárguela manualmente y luego use el método frompretrained para cargarla.

from transformers import BertTokenizer,BertForMaskeduM

#加载词表
tokenizer=BertTokenizer.frompretrained(r'./bert-base-uncased/bert-base-uncased-vocab.txt')
#加载模型
model=BertForMaskedLM.frompretrained('./bert-base-uncased/bert-base-uncased-pytorch_model.bin',conig='./bert-base-uncased/bert-base-uncased-conig.json')

# 手动加载与自动加载所使用的接口是一样的,手动加载需要指定加载文件的具体路径,而且在使用BertForMaskedLM类进行加载时,还需要指定配置文件的路径。

2 Encuentra los modelos disponibles en la biblioteca de Transformers

Al nombrar el archivo de código del modelo, puede ver los modelos que se pueden usar en la biblioteca de Transformers. Pero este no es un nombre de clase específico. Si desea encontrar un nombre de clase específico, puede usar las siguientes tres formas:
(1) Busque la introducción del modelo de pre-entrenamiento a través del archivo de ayuda.
(2) Busque el modelo preentrenado en el archivo __init__.py de la biblioteca de Transformers. [relativamente laborioso, pero más preciso]
(3) Use el método de código para generar las definiciones de macro en la biblioteca de Transformers.

2.1 Busque el modelo preentrenado en el archivo __init__.py de la biblioteca de Transformers. [relativamente laborioso, pero más preciso]

2.2 Usar código para generar la definición de macro en la biblioteca de Transformers

from transformers import BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST
print("输出全部模型:",BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST)
# ['facebook/blenderbot_small-90M']

Supongo que te gusta

Origin blog.csdn.net/qq_39237205/article/details/124411704
Recomendado
Clasificación