Un maniquí de jerga es un maniquí matemático que describe un jerga humano como una distribución de probabilidad sobre su vocabulario. Para entrenar una red de estudios profundo para modelar un idioma, es necesario identificar el vocabulario y instruirse su distribución de probabilidad. No puedes crear el maniquí de la nadie. Necesita un conjunto de datos del que instruirse su maniquí.
En este artículo, aprenderá sobre los conjuntos de datos utilizados para entrenar modelos de jerga y cómo obtener conjuntos de datos comunes de repositorios públicos.
Empecemos.
Conjuntos de datos para entrenar un maniquí de jerga
Foto por dan v. Algunos derechos reservados.
Un buen conjunto de datos para entrenar un maniquí de jerga
Un buen maniquí de jerga debe instruirse el uso correcto del jerga, vacante de sesgos y errores. A diferencia de los lenguajes de programación, los lenguajes humanos carecen de gramática y sintaxis formales. Evolucionan continuamente, lo que hace inalcanzable catalogar todas las variaciones lingüísticas. Por lo tanto, el maniquí debe entrenarse a partir de un conjunto de datos en lado de elaborarse a partir de reglas.
Configurar un conjunto de datos para el modelado del jerga es un desafío. Necesita un conjunto de datos egregio y diverso que represente los matices del idioma. Al mismo tiempo, debe ser de ingreso calidad y presentar un uso correcto del jerga. Idealmente, el conjunto de datos debería editarse y limpiarse manualmente para eliminar ruidos como errores tipográficos, errores gramaticales y contenido no idiomático, como símbolos o etiquetas HTML.
Crear un conjunto de datos de este tipo desde cero es costoso, pero hay varios conjuntos de datos de ingreso calidad disponibles gratis. Los conjuntos de datos comunes incluyen:
- rastreo popular. Un conjunto de datos masivo y continuamente actualizado de más de 9,5 petabytes con contenido diverso. Lo utilizan los modelos líderes, incluidos GPT-3, Pira y T5. Sin confiscación, transmitido que proviene de la web, contiene contenido duplicado y de mengua calidad, adicionalmente de prejuicios y material ofensivo. Se requiere una exactitud y filtrado rigurosos para que sea útil.
- C4 (Corpus trepador honrado y colosal). Un conjunto de datos de 750 GB extraído de la web. A diferencia del rastreo popular, este conjunto de datos se limpia y filtra previamente, lo que facilita su uso. Aún así, espere posibles sesgos y errores. El maniquí T5 se entrenó con este conjunto de datos.
- Wikipedia. Sólo el contenido en inglés ocupa aproximadamente de 19 GB. Es enorme pero manejable. Está correctamente curado, estructurado y editado según los estándares de Wikipedia. Si correctamente cubre una amplia gradación de conocimientos generales con gran precisión objetiva, su estilo y tono enciclopédicos son muy específicos. El entrenamiento solo con este conjunto de datos puede hacer que los modelos se ajusten demasiado a este estilo.
- WikiTexto. Un conjunto de datos derivado de artículos destacados y buenos verificados de Wikipedia. Existen dos versiones: WikiText-2 (2 millones de palabras de cientos de artículos) y WikiText-103 (100 millones de palabras de 28.000 artículos).
- LibroCorpus. Un conjunto de datos de unos pocos GB de textos de libros extensos, ricos en contenido y de ingreso calidad. Útil para instruirse narraciones coherentes y dependencias de liberal trascendencia. Sin confiscación, ha conocido problemas de derechos de autor y prejuicios sociales.
- la pila. Un conjunto de datos curado de 825 GB de múltiples fuentes, incluido BookCorpus. Combina diferentes géneros de texto (libros, artículos, código fuente y artículos académicos), proporcionando una amplia cobertura temática diseñada para el razonamiento multidisciplinario. Sin confiscación, esta disparidad da como resultado una calidad variable, contenido duplicado y estilos de escritura inconsistentes.
Obtener los conjuntos de datos
Puede despabilarse estos conjuntos de datos en linde y descargarlos como archivos comprimidos. Sin confiscación, deberá comprender el formato de cada conjunto de datos y escribir código personalizado para leerlos.
Alternativamente, busque conjuntos de datos en el repositorio de Hugging Face en https://huggingface.co/datasets. Este repositorio proporciona una biblioteca de Python que le permite descargar y descubrir conjuntos de datos en tiempo verdadero utilizando un formato estandarizado.
Repositorio de conjuntos de datos de Hugging Face
Descarguemos el conjunto de datos WikiText-2 de Hugging Face, uno de los conjuntos de datos más pequeños adecuados para construir un maniquí de jerga:
importar fortuito desde conjuntos de datos import load_dataset dataset = load_dataset(«wikitext», «wikitext-2-raw-v1″) print(f»Tamaño del conjunto de datos: {len(dataset)}») # imprime algunas muestras n = 5 mientras n > 0: idx = random.randint(0, len(dataset)-1) text = dataset(idx)(«text»).strip() if text y not text.startswith(«=»): imprimir(f»{idx}: {texto}») n -= 1
|
importar fortuito de conjuntos de datos importar conjunto de datos de carga conjunto de datos = conjunto de datos de carga(«wikitexto», «wikitexto-2-raw-v1») imprimir(F«Tamaño del conjunto de datos: {len(conjunto de datos)}») # imprimir algunas muestras septentrión = 5 mientras septentrión > 0: identificación = fortuito.randint(0, len(conjunto de datos)–1) texto = conjunto de datos(identificación)(«texto»).costado() si texto y no texto.comienza con(«=»): imprimir(F«{idx}: {texto}») septentrión -= 1 |
El resultado puede hallarse así:
Tamaño del conjunto de datos: 36718 31776: Las cabeceras de Missouri sobre Three Forks se extienden mucho más río hacia lo alto que… 29504: Las variantes regionales de la palabra Alá aparecen tanto en pre @-@ pagano como cristiano… 19866: Pokiri (inglés: Rogue) es una película de entusiasmo en idioma @-@ indio telugu de 2006,… 27397: El primer molino harinero en Minnesota se construyó en 1823 en Fort Snelling como… 10523: La industria musical tomó nota del éxito de Carey. Ganó dos premios en el…
|
Tamaño del conjunto de datos: 36718 31776: Las cabeceras del Missouri sobre Three Forks se extienden mucho más hacia lo alto río hacia lo alto que… 29504: Las variantes regionales de la palabra Alá aparecen tanto en pre @-@ pagano como cristiano… 19866: Pokiri (inglés: Rogue) es una película de entusiasmo en idioma indio Telugu @-@ de 2006,… 27397: El primer molino harinero en Minnesota se construyó en 1823 en Fort Snelling como… 10523: La industria musical tomó nota del éxito de Carey. Ganó dos premios en el… |
Si aún no lo has hecho, instala la biblioteca de conjuntos de datos de Hugging Face:
Cuando ejecuta este código por primera vez, load_dataset() descarga el conjunto de datos a su máquina locorregional. Asegúrese de tener suficiente espacio en disco, especialmente para conjuntos de datos grandes. De forma predeterminada, los conjuntos de datos se descargan a ~/.cache/huggingface/datasets.
Todos los conjuntos de datos de Hugging Face siguen un formato estereotipado. El dataset El objeto es un iterable, con cada punto como un diccionario. Para el entrenamiento de modelos de jerga, los conjuntos de datos suelen contener cadenas de texto. En este conjunto de datos, el texto se almacena bajo el "text" clave.
El código mencionado muestra algunos utensilios del conjunto de datos. Verás cadenas de texto sin formato de diferentes longitudes.
Postprocesamiento de los conjuntos de datos
Ayer de entrenar un maniquí de jerga, es posible que desee realizar un posprocesamiento del conjunto de datos para limpiarlos. Esto incluye reformatear el texto (recortar cadenas largas, reemplazar varios espacios con espacios simples), eliminar contenido que no sea de idioma (etiquetas HTML, símbolos) y eliminar caracteres no deseados (espacios adicionales aproximadamente de la puntuación). El procesamiento específico depende del conjunto de datos y de cómo desea presentar el texto al maniquí.
Por ejemplo, si entrena un maniquí pequeño de estilo BERT que maneja solo literatura minúsculas, puede ceñir el tamaño del vocabulario y simplificar el tokenizador. Aquí hay una función de magneto que proporciona texto posprocesado:
def wikitext2_dataset(): conjunto de datos = load_dataset(«wikitext», «wikitext-2-raw-v1») para el punto en el conjunto de datos: texto = punto(«text»).strip() si no es texto o texto.startswith(«=»): continuar # eludir las líneas vacías o líneas de encabezado producir texto.lower() # gestar una traducción en minúsculas del texto
|
definición conjunto de datos wikitext2(): conjunto de datos = conjunto de datos de carga(«wikitexto», «wikitexto-2-raw-v1») para artículo en conjunto de datos: texto = artículo(«texto»).costado() si no texto o texto.comienza con(«=»): continuar # saltar las líneas vacías o líneas de encabezado producir texto.más bajo() # gestar una traducción en minúsculas del texto |
Crear una buena función de posprocesamiento es un arte. Debería mejorar la relación señal-ruido del conjunto de datos para ayudar al maniquí a instruirse mejor, preservando al mismo tiempo la capacidad de manejar formatos de entrada inesperados que puede encontrar un maniquí entrenado.
Lecturas adicionales
A continuación se muestran algunos bienes que pueden resultarle avíos:
Prontuario
En este artículo, aprendió sobre los conjuntos de datos utilizados para entrenar modelos de jerga y cómo obtener conjuntos de datos comunes de repositorios públicos. Este es sólo un punto de partida para la exploración de conjuntos de datos. Considere explotar las bibliotecas y herramientas existentes para optimizar la velocidad de carga del conjunto de datos para que no se convierta en un cuello de botella en su proceso de capacitación.