Estás leyendo la publicación: Un tutorial completo sobre modelado de lenguaje enmascarado usando BERT
Cuando el aprendizaje profundo se combina con la PNL, se desarrollan una variedad de aplicaciones interesantes. La traducción de idiomas, el análisis de sentimientos, la generación de nombres, etc., son algunas de estas interesantes aplicaciones. El modelado de lenguaje enmascarado es también una de esas aplicaciones interesantes. El modelado de imágenes enmascaradas es una forma de realizar predicciones de palabras que originalmente se ocultaron intencionalmente en una oración. En este artículo, analizaremos en detalle el modelado de imágenes enmascaradas, junto con un ejemplo de su implementación mediante BERT. Los puntos principales que se discutirán en el artículo se enumeran a continuación.
Tabla de contenidos
- ¿Qué es el modelado de lenguaje enmascarado?
- Aplicaciones de los modelos de lenguaje enmascarado
- Modelado de lenguaje enmascarado usando BERT
Comencemos con la comprensión del modelado de lenguaje enmascarado.
¿Qué es el modelado de lenguaje enmascarado?
El modelado de lenguaje enmascarado y el modelado de imágenes se pueden considerar similares al modelado de codificación automática que funciona en función de la construcción de resultados a partir de entradas no ordenadas o corruptas. Como sugiere el nombre, el enmascaramiento funciona con estos procedimientos de modelado, lo que significa que enmascaramos palabras de una secuencia de entrada u oraciones y el modelo diseñado debe predecir las palabras enmascaradas para completar la oración. Podemos comparar este tipo de procedimiento de modelado con el proceso de completar los espacios en blanco en un examen. El siguiente ejemplo puede explicar el modelado de imágenes enmascaradas de trabajo.
Pregunta: ¿Qué es nombre?
Respuesta: cuál es mi/tu/su/su/su nombre.
Cuando hablamos sobre el funcionamiento de un modelo, el modelo necesita aprender las propiedades estadísticas de las secuencias de palabras. Dado que el procedimiento puede necesitar predecir una o más de una palabra, pero no toda la oración o el párrafo, necesita aprender ciertas propiedades estadísticas. El modelo necesita predecir palabras usando las otras palabras que se presentan en una oración. La siguiente imagen representa el funcionamiento de un modelo de lenguaje enmascarado.
Fuente de imagen
Aquí en lo anterior, hemos visto qué es un modelo de lenguaje enmascarado. Veamos dónde podemos usarlos.
Aplicaciones de los modelos de lenguaje enmascarado
Hablando de los lugares donde deberíamos usar modelos de lenguaje enmascarado, encontramos que deberíamos usar estos modelos donde debemos predecir el contexto de las palabras. Dado que las palabras pueden tener diferentes significados en diferentes lugares, el modelo necesita aprender representaciones múltiples y profundas de las palabras. Estos modelos han mostrado niveles de rendimiento mejorados en las tareas posteriores, como las tareas sintácticas que requieren una representación de capa inferior de ciertos modelos en lugar de una representación de capa superior. También podemos encontrar su uso en el aprendizaje de las representaciones bidireccionales profundas de las palabras. El modelo debe poder aprender el contexto de las palabras desde el comienzo de la oración, así como desde atrás.
Aquí hemos visto dónde podemos encontrar el requisito de modelado de imágenes enmascaradas. Veamos la implementación del modelado de lenguaje enmascarado.
Implementación
En este artículo, vamos a utilizar un modelo sin carcasa basado en BERT para el modelado de lenguaje enmascarado. Estos modelos ya están entrenados en el idioma inglés utilizando los datos de BookCorpus que consisten en 11,038 libros y datos de Wikipedia en inglés donde las tablas de lista y los encabezados se excluyen de los datos para realizar objetivos de modelado de lenguaje enmascarado.
Para el modelado de lenguaje enmascarado, el modelo basado en BERT toma una oración como entrada y enmascara el 15 % de las palabras de una oración y, al ejecutar la oración con palabras enmascaradas a través del modelo, predice las palabras solicitadas y el contexto detrás de las palabras. También uno de los beneficios de este modelo es que aprende la representación bidireccional de oraciones para hacer la predicción más precisa.
Este modelo también es capaz de predecir palabras usando las dos oraciones enmascaradas. Concatena dos palabras enmascaradas e intenta predecir. De modo que si dos oraciones se correlacionan entre sí, puede predecir con mayor precisión.
Podemos obtener este modelo usando la biblioteca de transformadores que se puede instalar usando las siguientes líneas de códigos:
!pip instalar transformadores
Después de la instalación, estamos listos para usar los modelos preentrenados disponibles en el módulo de tubería del modelo de transformador.
Importemos la biblioteca.
de oleoducto de importación de transformadores
Instanciando el modelo:
modelo = canalización (‘máscara de relleno’, modelo = “bert-base-sin carcasa”)
Producción:
Después de la creación de instancias, estamos listos para predecir palabras enmascaradas. Este modelo requiere que pongamos [MASK] en la oración en lugar de una palabra que deseamos predecir. Por ejemplo:
pred = modelo(“¿Qué es [MASK] nombre?”) pred
Producción:
En el resultado anterior, podemos ver qué tan precisas son las predicciones como hemos pensado anteriormente. Con la predicción, también obtenemos puntajes y contamos la palabra predicha.
También podemos usar este modelo para obtener la característica de cualquier texto de las siguientes maneras.
Usando PyTorch
#importando biblioteca desde transformadores import BertTokenizer, BertModel #definiendo tokenizer tokenizer = BertTokenizer.from_pretrained(‘bert-base-uncased’) #instanciando el modelo model = BertModel.from_pretrained(“bert-base-uncased”) #definiendo text text = ” ¿Cómo te llamas?” #extracción de funciones entrada_codificada = tokenizador(texto, tensores_retorno=”pt”) modelo(**entrada_codificada)
Producción:
Usando TensorFlow
#importación de biblioteca desde transformadores import BertTokenizer, TFBertModel #definición de tokenizer tokenizer = BertTokenizer.from_pretrained(‘bert-base-uncased’) #instanciación del modelo model = TFBertModel.from_pretrained(“bert-base-uncased”) text = “¿Cuál es su ¿nombre?” #extracción de funciones entrada_codificada = tokenizador(texto, tensores_retorno=”tf”) modelo(entrada_codificada)
Producción:
Una cosa que entra dentro de la limitación del modelo es que da predicciones sesgadas incluso después de entrenar el modelo usando datos bastante neutrales. Por ejemplo:
model = pipeline(‘fill-mask’, model=”bert-base-uncased”) pred = model(“puede trabajar como [MASK].”)
Producción:
pred = modelo(“Ella puede trabajar como [MASK].”)
Producción:
Aquí podemos ver los resultados sesgados del modelo. Así es como podemos construir y usar un modelo de lenguaje enmascarado usando el transformador BERT.
última palabra
En el artículo, hemos repasado la introducción general del modelado de imágenes enmascaradas con los detalles donde podemos encontrar su uso. Junto con esto, hemos pasado por la implementación de un modelo sin carcasa de base BERT para el modelado de lenguaje enmascarado.
Referencias