Gpt2-china
Descripción
- Versión china del código de entrenamiento GPT2, utilizando Bert Tokenizer o BPE Tokenizer. Se basa en el repositorio extremadamente impresionante de Huggingface Team Transformers. Puede escribir poemas, noticias, novelas o entrenar modelos de idiomas generales. Apoye el nivel de char, nivel de palabra y nivel de BPE. Apoyo al gran corpus de entrenamiento.
- El Código de Entrenamiento de GPT2 chino utiliza el modelo BPE de Bert's Tokenizer o SentencePiece (gracias a la contribución de Kangzhonghua, implementar el modelo BPE requiere modificar ligeramente el código de Train.py). Puede escribir poesía, noticias, novelas o entrenar un modelo de idioma común. Admite la unidad de palabras, el modo de participio de palabras o el modo BPE (requiere código de trenes.py ligeramente modificado). Apoya al gran entrenamiento corpus.
Actualización 04.11.2024
- Muchas gracias por su atención a este proyecto. Desde el lanzamiento de ChatGPT, este proyecto también ha atraído algo de atención nuevamente. El proyecto en sí es un programa de capacitación para aprender Pytorch solo, y no tengo intención de hacer mantenimiento y actualizaciones a largo plazo. Si está interesado en Big Model LLM, puede enviarme un correo electrónico ([email protected]) para unirse al grupo para comunicarse o discutirlo en cuestión.
Actualización 02.06.2021
Este proyecto ha agregado un modelo previamente capacitado GPT-2 general de GPT-2, un modelo pequeño de entrenamiento previamente capacitado GPT-2 general, un modelo de prioridad previamente capacitado GPT-2 y un modelo previamente capacitado clásico GPT-2 chino. El modelo está entrenado por el proyecto UER-PY y es bienvenido a usarlo. Además, el modelo se sube al Hub Model Hub. Para obtener más detalles del modelo, consulte GPT2-Chinese-CluecorpussMall, GPT2-Distil-Chinese-Cluecorpussmall, GPT2-Chinese-Lyric y GPT2-Chines-Atient.
Al generar usando todos los modelos, debe agregar un símbolo inicial antes del texto ingresado, como: si desea ingresar "lo más hermoso no es el día lluvioso, son los aleros los que han escapado de usted", el formato correcto es "[CLS] lo más hermoso no es el día lluvioso, son los aleros los que han escapado de usted".
Actualización 11.03.2020
Este proyecto ha agregado el antiguo modelo de entrenamiento previo al poema GPT-2 y el modelo previamente capacitado de pareado GPT-2. El modelo está entrenado por el proyecto UER-PY y es bienvenido a usarlo. Además, el modelo se sube al Hub Model Hub. Para obtener más detalles del modelo, consulte GPT2-Chinese-Poem y GPT2-Chinese-Couplet.
Al generar usando el modelo de poesía antigua, debe agregar un símbolo inicial antes del texto ingresado, como: si desea ingresar "Meishan es como jiqing," el formato correcto es "[cls] meishan es como jiqing".
El formato corpus utilizado en el entrenamiento del modelo de pareado es "pareado de pareja superior-bajo". Cuando se usa el modelo PULLET para generar, se debe agregar un carácter inicial antes del texto de entrada, como: si desea ingresar "Danfeng River Lengren Chu GO-", el formato correcto es "[CLS] Danfeng River Lengren Chu GO-".
Noticias 08.11.2020
- Se ha publicado Cdial-GPT (se puede cargar con este código). Este proyecto contiene un conjunto de datos de diálogo chino de dominio abierto de dominio abierto estrictamente a gran escala. Este proyecto también contiene el modelo previamente capacitado del diálogo GPT capacitado en este conjunto de datos y la muestra generada. Todos son bienvenidos a visitar.
Noticias 12.9.2019
- Se ha lanzado el nuevo proyecto GPT2-Chitchat, en parte basado en el código de este proyecto. Contiene el código y el modelo de entrenamiento para la capacitación del modelo de diálogo GPT2, así como generar muestras. Todos son bienvenidos a visitar.
Noticias 12.7.2019
- El nuevo proyecto Decoders-Chinese-TF2.0 también admite la capacitación china para GPT2, que es más simple de usar y no causa fácilmente varios problemas. Todavía está en la etapa de prueba, y todos son bienvenidos para dar sus opiniones.
Noticias 11.9
- GPT2-ML (ninguna asociación directa con este proyecto) se ha publicado y contiene el modelo GPT2 chino 1.5B. Si está interesado o lo necesita, puede convertirlo en el formato Pytorch compatible con este proyecto para más capacitación o pruebas de generación.
Actualización 10.25
- El primer modelo previamente capacitado de este proyecto se ha anunciado y es un modelo de generación en prosa. Para obtener más detalles, consulte la sección ReadMe Model Sharing.
Estado del proyecto
- En el momento del anuncio de este proyecto, los recursos chinos GPT2 eran casi cero, y la situación ahora es diferente. En segundo lugar, las funciones del proyecto han sido básicamente estables, por lo que este proyecto se ha detenido temporalmente. Mi intención original de escribir estos códigos era practicar el uso de Pytorch. Incluso si trabajé en la etapa posterior, todavía había muchos aspectos inmaduros, así que por favor entienda.
Cómo usar
- Cree una carpeta de datos en el directorio raíz del proyecto. Ponga el corpus de entrenamiento en el directorio de datos bajo el nombre de Train.json. Train.json es una lista de JSON, y cada elemento de la lista es el contenido de texto de un artículo para ser capacitado (no un enlace de archivo) .
- Ejecute el archivo Train.py y verifique - -RAW para preprocesar los datos automáticamente.
- Después de completar el preprocesamiento, la capacitación se realizará automáticamente.
Generar texto
python ./generate.py --length=50 --nsamples=4 --prefix=xxx --fast_pattern --save_samples --save_samples_path=/mnt/xx
- --dast_pattern (aportado por leecp8): si el parámetro de longitud generado es relativamente pequeño y la velocidad no es básicamente diferente, probé personalmente longitud = 250, que fue 2 segundos más rápido, por lo que si no se agrega-Fast_pattern, entonces el método Fast_Pattern no se usa por defecto.
- --save_samples : por defecto, la muestra de salida se imprimirá directamente en la consola. Pase este parámetro y se guardará en muestras.txt en el directorio raíz.
- --save_samples_path : puede especificar el directorio guardado usted mismo. Puede crear directorios de varios niveles de forma recursiva de forma predeterminada. No puede pasar el nombre del archivo. El nombre del archivo es samples.txt de forma predeterminada.
Estructura de archivo
- Generate.py y Train.py son scripts para la generación y el entrenamiento, respectivamente.
- Train_single.py es una extensión de Train.py que puede usarse para una gran lista de elementos individuales (como entrenar un libro en el cielo).
- Eval.py se utiliza para evaluar las puntuaciones de PPL del modelo generado.
- Generate_Texts.py es una extensión de Generate.py. Puede generar varias oraciones con las palabras clave iniciales de una lista y llevarlas a un archivo.
- Train.json es un ejemplo de formato de muestras de entrenamiento para referencia.
- La carpeta de caché contiene varias vocabes Bert. make_vocab.py es un script que ayuda a crear vocabes en un archivo Corpus Train.json. Vocab.txt es el Bert Vocab original, Vocab_all.txt ha agregado Vocab Ancient adicional y VOCAB_SMALL.txt es el pequeño vocabulario.
- La carpeta de tokenizaciones es tres tipos de tokenizers que se pueden seleccionar, incluido el tokenizador Bert predeterminado, la versión participante de Bert Tokenizer y BPE Tokenizer.
- Los scripts incluyen entrenamiento de muestras y scripts de generación
Aviso
- Este proyecto utiliza el tokenizador de Bert para procesar caracteres chinos.
- Si no usa la versión del participio de tokenizador y no necesita clasificar las palabras usted mismo, el tokenizer lo ayudará a dividirla.
- Si usa la versión del participio de tokenizer, es mejor usar el archivo make_vocab.py en la carpeta de caché para crear una lista de vocabulario para su corpus.
- El modelo debe calcularse por sí mismo. Si ha completado el pre-entrenamiento, no dude en comunicarse.
- Si su memoria es muy grande o el corpus es pequeño, puede cambiar el código correspondiente en los archivos de compilación en Train.py y preprocesar el corpus directamente sin dividirlo.
- Si usa BPE Tokenizer, debe crear su propia lista de palabras chinas
Materiales
- Se puede descargar desde aquí y aquí.
- El Doupo Sky Corpus se puede descargar desde aquí.
FP16 y soporte de acumulación de gradiente
- He agregado soporte FP16 y de acumulación de gradiente al archivo Train.py. Si instala Apex y sabe qué es FP16, puede cambiar la variable fp16 = verdadero para habilitarlo. Sin embargo, actualmente, FP16 puede no converger, por razones desconocidas.
Contactar al autor
Citando
@misc{GPT2-Chinese,
author = {Zeyao Du},
title = {GPT2-Chinese: Tools for training GPT2 model in Chinese language},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/Morizeyao/GPT2-Chinese}},
}
Intercambio de modelos
| Nombre del modelo | Introducción al modelo | Compartido por | Dirección de enlace 1 | Dirección de enlace 2 |
|---|
| Modelo en prosa | Use 130 MB de famosa prosa, prosa emocional y entrenamiento de poesía en prosa. | hughqiu | Baidu netdisk 【fpyu】 | RDAB |
| Modelo de poesía | Los resultados del entrenamiento utilizando aproximadamente 800,000 poemas antiguos en 180 MB. | Hhou435 | Baidu NetDisk 【7FEV】 | RDAB |
| Modelo pareado | Los ingresos de capacitación de usar aproximadamente 700,000 pareados de 40 MB. | Hhou435 | Baidu netdisk 【i5n0】 | RDAB |
| Modelo chino general | Los resultados obtenidos utilizando el entrenamiento de Cluecorpussmall Corpus. | Hhou435 | Baidu NetDisk [N3S8] | RDAB |
| Modelo pequeño chino general | Los resultados obtenidos utilizando el entrenamiento de Cluecorpussmall Corpus. | Hhou435 | Baidu NetDisk [RPJK] | RDAB |
| Modelo de letra china | Los resultados del entrenamiento se obtuvieron utilizando aproximadamente 150,000 letras chinas de 140 MB. | Hhou435 | Baidu NetDisk 【0qnn】 | RDAB |
| Modelo chino clásico | Se obtuvieron alrededor de 3 millones de piezas clásicas de entrenamiento chino usando 1.8 GB. | Hhou435 | Baidu NetDisk [EK2Z] | RDAB |
Aquí hay un archivo modelo obtenido de la capacitación de amigos Git entusiastas y generosos, y está abierto a todos los amigos para su uso. Al mismo tiempo, todos los socios pueden revelar el modelo que han entrenado aquí.
Manifestación
- El modelo capacitado por el usuario Jameshujy basado en el código modificado de este almacén se utiliza como fondo de verso y cuartetas regulados. Se ha lanzado la nueva versión del generador de poesía de las nueve canciones.
- Contribuido por LeeMengtaiwan, proporciona un artículo que proporciona una introducción directa a GPT-2 y cómo visualizar los mecanismos de autoatención. Los cuadernos y modelos de Colab también se proporcionan para que cualquier usuario genere nuevos ejemplos de una sola vez.
Generar muestra
-Los siguientes son ejemplos de la generación de ensayos literarios, aportados por Hughqiu, y el modelo se ha compartido en la lista de compartir modelos. Corpus 130 MB, tamaño por lotes 16, 10 rondas de entrenamiento a 10 capas de profundidad. 


- La siguiente es una generación de muestra de Doupo Cangqiong. GPT2 con unos 50 m de parámetros se entrenó en un contenido novedoso de 16 MB Doupo Cangqiong con un tamaño de 32 batch. Aquí [SEP] significa una nueva línea.

- La siguiente es una muestra de la generación de poemas antiguos, que son calculados y aportados por el usuario Jameshujy.


- La siguiente es una generación de muestra después de la generación del poema antiguo, que es calculado y contribuido por el usuario Jameshujy.



- El siguiente es el texto de muestra del script generado, que es calculado y contribuido por el usuario Chiangandy.
[StartText] La trama del juego de amor cuenta la historia del lindo amor entre padre e hija del piano, una audiencia con trabajo duro y valor para la realidad de la vida, y la obtención de una serie de amor. Los intermediarios compartieron los medios de grabación de acciones de la década de 1980. Era el hermano del director de marca del creador principal Chen Layun en 2014, el gran país del río Shanghai Huaihe. Aunque los jóvenes de la compañía de primera línea no tenían una carrera, Lan Zhengshi se negó a entenderlo. La aparición del concepto de ayuda de Lan Yue ha abierto un claro malentendido y el negocio se ha convertido en un río Love. En una serie de televisión accidental, la serie de televisión cambió su destino. Los tres fueron asignados a sus creaciones en un accidente automovilístico. Se les preguntó sobre el malentendido y el talento discreto en la industria. Chen Zhao y Tang Shishiyan comenzaron una "relación 2014" completamente diferente. Los dos tenían carácter mutuo y tenían cura mutua. Aunque fueron un pequeño viaje en dormitorios registrado por la Universidad Beijing Huaqiao, una generación posterior a los 90 y jóvenes sobresalientes como Tang Ru y Sheng, ¿cómo fueron las vidas de las personas en contra de sus deseos y crearon juntos? ¿Y por qué tuvieron el éxito y la preocupación del otro? [EndText]
[StartText] Aprendiendo el amor cuenta principalmente la historia de dos pares de Xiaoman. Después de una prueba ridícula, finalmente eligieron a tres niños y comenzaron un negocio juntos para crear cuatro hijos, y comenzaron un negocio exitoso en una gran ciudad. Las dos compañías se unieron a la ciudad de Beijing, y después de un período de tiempo, la ciudad se transformó en agitación y diferente, finalmente ganaron el verdadero amor de sus sueños. La ceremonia de apertura de los principales personajes empresariales, como ideales patrocinadores, series de televisión, dramas, etc., se celebró en Beijing. El drama se basa en la perspectiva televisiva de tres recién llegados en Hainan. Cuenta la historia de varios jóvenes que han mejorado los no románticos en Beijing y las generaciones de comedia. Con los jóvenes únicos de la era dual desde Beijing hasta Beijing, la urbanización de China, las grandes ciudades de China se han desarrollado. Con los cambios en las ciudades del lenguaje, mientras que sus estilos de vida graduales han organizado una vulgaridad tan simple para su propia dirección. Está filmado en tiempos contemporáneos. ¿Cómo estar en esta ciudad? Entonces una ciudad tranquila es el estilo de la ciudad. Zhang Jiahe apoya la creación de trabajo, y este es un punto en que es necesario crear una reunión de tripulación de drama del aeropuerto. Las personas que se transforman en ajedrez y culturas son muy únicas y sensacionales, entrelazadas, divertidas y provienen del hermoso noreste y el continente, y las dos chicas se atreven a ser llamadas niñas mute. La gente del entrelazado hizo una broma, y el impresionante temperamento hizo que la gente se viera muy cómica. Lo que sabían era un partidario de la familia extranjera "noreste", lo que la hizo lucir buena para leer dramas. Después de eso, Qi Fei, Qi Fei, Fan Er, Chu Yuezi y Bai Tianjie que expresaron amor por él. La amistad entre las dos generaciones parece estar sin la combinación de declaraciones alegres y maravillosas. [EndText]
- El siguiente es un ejemplo de la generación de novelas de Jin Yong y Wu Qi, contribuido por Leemengtaiwan. El tamaño del modelo es de aproximadamente 82 m, el material del lenguaje es de 50 MB y el tamaño del lote es 16. Proporciona un artículo para introducir GPT-2 y cómo visualizar los mecanismos de autoatensión. Los cuadernos y modelos de Colab también se proporcionan para que cualquier usuario genere nuevos ejemplos de una sola vez.



