¿Cuál es la importancia de utilizar BPE (codificación de pares de bytes) para la tokenización en el modelo de lenguaje multilingüe? ¿Hay algún problema con esto?
Descripción general de BPE
Byte-Pair-Encoding es un método utilizado para resolver palabras no registradas. En primer lugar, mencione brevemente qué son las palabras no registradas. Las palabras no registradas pueden entenderse como palabras que no aparecen en el corpus de entrenamiento pero sí en el corpus de prueba. Cuando tratamos tareas de PNL, generalmente generamos un diccionario basado en el corpus, colocamos las palabras del corpus cuya frecuencia de palabras es mayor que un cierto umbral en el diccionario, y las palabras cuya frecuencia es menor que el umbral se codifican como "#DESCONOCIDO". La ventaja de este método de procesamiento es que es simple, pero también tiene un gran problema. Si hay palabras no registradas en el corpus de prueba, será difícil para nuestro modelo procesarlas. Dado que este artículo no pretende explicar cómo lidiar con palabras no registradas en PNL, no hablaremos mucho sobre otras tonterías. Solo hablaremos sobre cómo el algoritmo BPE resuelve palabras no registradas.
Por lo general, nuestros diccionarios son a nivel de palabras, lo que significa que el diccionario se basa en palabras o frases, pero esto inevitablemente encontrará el problema de las palabras no registradas, porque no es posible diseñar un diccionario muy grande. Diccionario que cubre todas las palabras. Además, otro diccionario es la palanca de caracteres, que consiste en diseñar un diccionario con una sola letra o carácter chino (chino) como palabra básica. Este método teóricamente puede resolver el problema de las palabras no registradas, porque todas las palabras están compuestas de letras. Pero la desventaja de esto es que la granularidad del modelo es demasiado fina y carece de información semántica. Algunas personas han realizado experimentos para demostrar que este método no es bueno.
Más tarde, en 2016, Rich et al. propusieron un método para generar un diccionario basado en subpalabras. Este método combina las ventajas del nivel de palabra y del nivel de caracteres y aprende los subcaracteres de caracteres más frecuentes. todas las palabras de la cadena del corpus y luego combine estas subcadenas de caracteres de alta frecuencia en un diccionario. En este diccionario, hay subcadenas a nivel de palabra y subcadenas a nivel de carácter. Entre ellos, el método utilizado para encontrar subcadenas de alta frecuencia es el algoritmo BPE que se explicará en este artículo.
El algoritmo BEP es muy simple y se utiliza principalmente para encontrar subcadenas de alta frecuencia en cadenas. Específicamente, agregamos un token de parada "" al final de cada palabra del corpus. Luego dividimos cada palabra en su forma de letra.
Por ejemplo, inicialmente tenemos las siguientes palabras:
{'low': 5, 'lower': 2, 'newest': 6, 'widest': 3}
Agregar detener Después del token y la división, se convierte en la siguiente forma:
{'l o w lt;/wgt;': 5, 'l o w e r lt;/wgt;': 2, 'n e w e s t lt;/wgt; : 6, 'w i d e s t lt;/wgt;': 3}
A continuación, calculamos la frecuencia de aparición de dos letras adyacentes y seleccionamos el par con la frecuencia más alta para fusionar en el ejemplo anterior, '. e' y 's'*** aparecen 9 veces, con la frecuencia más alta, las fusionamos:
{'l o w lt;/wgt;': 5, 'l o w e r lt;/wgt;': 2 , 'n e w es t lt;/wgt;': 6, 'w i d es t lt;/wgt;': 3}
Continúe repitiendo el método ahora y descubra que 'es' y ' t'** * aparece 9 veces, con la frecuencia más alta, fusionarlas:
{'l o w lt;/wgt;': 5, 'l o w e r lt;/wgt;': 2, 'n e w est lt;/wgt; ;': 6, 'w i d est lt;/wgt;': 3}
Y así sucesivamente, iterando n veces hasta alcanzar el tamaño de vocabulario de subpalabras preestablecido o el siguiente byte más frecuente se alcanza La frecuencia de aparición es 1.