Este repositorio contiene el código fuente y el modelo capacitado para un modelo de generación de respuesta de diálogo previamente a gran escala. Los resultados de la evaluación humana indican que la respuesta generada a partir de diáloga es comparable a la calidad de la respuesta humana bajo una prueba de conversación de un solo cambio.
El repositorio se basa en Huggingface Pytorch-Transformer y OpenAI GPT-2, que contiene un script de extracción de datos, código de entrenamiento de modelo y un punto de control de modelo pequeño (117m) (345m) y grande (762m).
El modelo está capacitado en un diálogo de 147 millones de múltiples vueltas desde el hilo de discusión de Reddit. El modelo más grande se puede capacitar en varias horas en un 8 máquinas V100 (sin embargo, esto no es necesario), con capacitación distribuida y opción FP16.
El script de incluido se puede utilizar para reproducir los resultados del desafío de generación de diálogo fundamentado DSTC-7 y un conjunto de datos de 6K múltiples referencias creado a partir de datos reddit.
Página web del proyecto: https://www.microsoft.com/en-us/research/project/large-scale-pretining-for-response-generation/
Documento ARXIV: https://arxiv.org/abs/1911.00536
(Actualización 07/09/2022) Los cambios en los archivos.pushshift.io/reddit servidor causaron que nuestra tubería de generación de datos se rompiera. Estos problemas ahora se han solucionado, y los pasos explicados en la subsección de preparación de datos a continuación deberían funcionar nuevamente. Los datos se generan en aproximadamente 10 horas con 8 procesos ( -j 8 ), y se necesitan 800 GB de espacio en el disco temporal.
(Actualización 23/06/2021) Hemos lanzado una versión de Dialogpt (RetGen) de recuperación de recuperación (RetGen), consulte el Retgen Repo y Retgen Paper
(Actualización 20/05/2021) Un tutorial de video impresionante en YouTube para el diáloga de Prakhar Mishra
(Actualización 31/03/2021) Una demostración de terceros de AK391 utilizando la demostración web de Gradio Pruébelo
(Actualización 15/09/2020) ¡Se ha lanzado un conjunto de modelos de clasificación de diálogo a gran escala!
La generación de diáloga se mejora integrándose con nuestros últimos modelos de clasificación de diálogo, dialograft
(ACTUALIZACIÓN 07/08/2020) ¡Se ha lanzado el conjunto de pruebas de 6k multi-REF!
Para generar los datos, Pleaser ejecutar demo.py y establecer la opción de datos en 'completo', el conjunto de pruebas múltiple de 6k generado se ubicará en
./data/test.refs.txt
(Actualización 10/03/2020) Tarjetas de modelo disponibles en Huggingface Transformers!
Consulte nuestras tarjetas modelo en el repositorio de Transformers Huggingface. Con varias líneas de código, debería ser bastante sencillo jugar con el diáloga de manera interactiva.
Modelo pequeño: https://huggingface.co/microsoft/dialogpt-small
Modelo medio: https://huggingface.co/microsoft/dialogpt-medium
Modelo grande: https://huggingface.co/microsoft/dialogpt-large
(Nuevo) Modelo de clasificación: https://huggingface.co/microsoft/dialogrpt-updown
(Actualización 01/06/2020) Algunas implementaciones de script de decodificación de terceros:
Dialogpt se desarrolló completamente en Ubuntu 16.04 y, dependiendo de nuestra disponibilidad, intentamos proporcionar soporte si experimenta dificultades para ejecutar el código en la misma configuración. Sin embargo, no podemos brindar soporte para otras distribuciones u sistemas operativos . Las partes del código pueden ejecutarse en otros sabores UNIX (MacOS, subsistema de Windows para Linux, Cygwin, etc.), pero se recomienda usar Ubuntu para el código de entrenamiento principal.
El código de entrenamiento se puede ejecutar en CPU, pero puede ser lento. Recomendamos usar GPU para entrenar y Finetune todos los modelos. No existe un límite mínimo del número de GPU. Sin embargo, si se usa un tren distribuido para una configuración de GPU múltiple, la aceleración frente a la cantidad de GPU es aproximadamente sublineal. Para simular el mismo lote cuando se usa menos GPU, utilice un gradient_accumulation_steps más grande_accumulation_steps en el entrenamiento del modelo.
El modelo de 117m y 345m se puede cargar en una sola GPU con memoria de 12 g. El modelo 762M requeriría una sola GPU que tenga más de 16 g de memoria para un entrenamiento eficiente. La velocidad de entrenamiento en un punto de referencia con casos de capacitación de 50 m y GPU V100:
| N_GPU | Tiempo de época (h) | token/seg |
|---|---|---|
| 1 | 118 | 10847 |
| 2 | 62 | 20645 |
| 4 | 34 | 37647 |
| 8 | 18 | 71356 |
El ajuste fino de nuestro modelo previo a un nuevo conjunto de datos generalmente requiere 1-2 épocas.
Creamos un script de demostración demo.py para aliviar la dificultad de la implementación de este sistema. demo.py contiene una tubería de descarga de modelos , extracción de datos, preprocesamiento de datos y capacitación en modelos a través de un conjunto de datos ficticios dentro de una línea de comandos.
Utilice las líneas de comandos a continuación para clonar, instale los requisitos y cargue el entorno de conda (tenga en cuenta que se requiere el kit de herramientas de desarrollador NVIDIA CUDA 10.0):
sudo apt-get install -y make wget gzip bzip2 xz-utils zstd sedgit clone https://github.com/microsoft/DialoGPT.git
cd DialoGPT
conda env create -f LSP-linux.yml -n LSP
conda activate LSP Si ejecuta esto en una arquitectura que no sea Linux, use LSP-generic.yml en lugar de LSP-linux.yml pero tenga en cuenta que el genérico no se prueba en toda la plataforma, por lo que la estabilización no puede ser cuidada. Para usar la capacitación FP16, instale APEX utilizando los comandos a continuación
conda activate LSP
git clone https://github.com/NVIDIA/apex
cd apex
git reset --hard 3d01e4a0a188cc8df54bc6e44cf5eb40ff6b4cc5
pip install -v --no-cache-dir --global-option= " --cpp_ext " --global-option= " --cuda_ext " .
python3.6 demo.pyPara comenzar, primero instale Docker y Nvidia-Docker desde sus repositorios oficiales. El entorno de imagen para ejecutar el código se puede cargar a continuación:
Nvidia-Docker V2. *
$ docker run --gpus all --ipc=host --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashNvidia-Docker V1. *
$ nvidia-docker --rm -it -v $PWD :/workspace --network=host icaruszyz/large-scale-training:dialogpt bashDentro del contenedor Docker, ejecute
python demo.py Esta sección explica todos los componentes en demo.py
Antes de ejecutar demo.py , puede establecer Data_Folder (valor predeterminado ./models ) en demo.py como el lugar en el que desea descargar todos los datos y los modelos previos a la aparición/ajustado. Entonces simplemente corre
python demo.pya
Tenga en cuenta que de manera predeterminada el demo.py utilizará datos ficticios, especifique los datos de capacitación Reddit utilizando la opción --data . Hay tres opciones disponibles: dummy , small y full .
python demo.py --data small
python demo.py --data fullLos pequeños datos de Reddit son de alrededor de 140 MB y los datos completos de Reddit son más de 27 GB. ¡Puede preparar una taza de café al procesar con los datos completos de Reddit porque lleva mucho tiempo !
Para generar los datos del conjunto de pruebas múltiples de 6K, el complemento de la ejecución de demo.py y establecer la opción de datos en 'completo', la generación se ubicará en
./data/test.refs.txt
Los modelos previos y ajustados están disponibles en Azure Blobstorage. Ejecute/consulte demo.py para obtener más detalles sobre cómo descargar/usar esos modelos. O puede descargar directamente usando los enlaces en demo_utils.py .
Primero, use el prepare4db.sh para convertir un archivo de datos TSV en el formato correcto que el siguiente script puede reconocer. Los datos de Trainig deben procesarse en un archivo de base de datos con la línea de comandos a continuación:
python prepro.py --corpus $DATA_PATH El script de entrenamiento se puede usar en una sola GPU o en múltiples configuraciones de GPU (capacitación distribuida en múltiples GPU dentro de un solo nodo):
python ./LSP_train.py # Single GPU training
python -m torch.distributed.launch --nproc_per_node=8 ./LSP_train.py # Training on 8 GPUsEl guión de entrenamiento acepta varios argumentos para ajustar el entrenamiento:
| Argumento | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| max_seq_length | int | 128 | Número máximo de tokens para cada instancia de entrenamiento. |
| Train_input_file | str | "" | Ruta del conjunto de datos de capacitación en un formato .db |
| eval_input_file | str | "" | Ruta de la validación establecida en un formato TSV |
| Continir_FROM | int | 0 | Reanudando la capacitación después de un número específico de pasos |
| FP16 | boolean | True | Si se debe usar un punto flotante de 16 bits para el entrenamiento modelo. |
| Train_batch_size | int | 4 | Tamaño de lote para el entrenamiento |
| válido_batch_size | int | 4 | Tamaño de lote para la validación |
| gradiente_accumulación_steps | int | 2 | Acumular gradientes en varios pasos |
| aprendizaje_rate | float | 1e-5 | Tasa de aprendizaje |
| lr_schedule | str | noam | El horario de tarifas de aprendizaje se puede elegir entre [ noam , noamwd , BERT , None ] |
| num_optim_steps | int | 1000000 | Número de pasos de optimización de entrenamiento |
| No_Token_id | boolean | True | Si se establece verdadero, usando la incrustación de tipo Token All-Peroses. |
Durante la capacitación, se actualizarán dos archivos de registro. train_log.txt y eval_log.txt contienen las estadísticas de pérdida, perplejidad y velocidad de entrenamiento (tokens/seg) para el conjunto de capacitación y desarrollo.
El archivo de registro y el punto de control de modelo guardado se pueden encontrar en ./models/output_model
Observamos que incluso con el conjunto de datos reddit filtrado correctamente, a veces nuestro modelo aún puede generar respuestas moderadamente tóxicas/inapropiadas. Debido a esta razón, no podemos proporcionar el script de decodificación en este momento (la demostración en vivo y el acceso al script de decodificación están en invitación solo ahora). Actualmente todavía estamos trabajando en un método de decodificación controlado para evitar que este sistema se genere una generación tóxica. Estén atentos.
Consulte los temas #3 y las discusiones de Reddit para algunas discusiones sobre métodos de decodificación de terceros.
Vea a continuación algunos métodos de decodificación de terceros:
Liberamos 6 modelos ajustados que se pueden ajustar aún más en un conjunto de datos de bajo recurso de recursos. Los parámetros totales en estos modelos varían de 117 m a 762 m, de acuerdo con los tamaños del modelo OpenAI GPT-2.
| Modelo | Fino sintonizado de GPT-2 | Entrenado desde cero |
|---|---|---|
| Modelo de diátelo 762m | [Enlace] [Tarjeta de modelo Huggingface] | [enlace] |
| Modelo de diátelo de 345m | [Enlace] [Tarjeta de modelo Huggingface] | [enlace] |
| Modelo de diátelo de 117M | [Enlace] [Tarjeta de modelo Huggingface] | [enlace] |
| Modelo de diátelo de 345m (reverso, para MMI) | enlace | - |
| Dialogra ( nuevos modelos de clasificación) | enlace | - |
Los archivos del modelo se pueden cargar exactamente como los puntos de control del modelo GPT-2 desde los transformadores de Huggingface. Puede encontrar los archivos de configuración correspondientes ( merges.txt , config.json , vocab.json ) en el repositorio de Dialogpt en ./configs/* .
El modelo inverso está prediciendo la fuente desde el objetivo. Este modelo se utiliza para la resonancia MMI.
Los modelos de dialografías de nuestros modelos de clasificación recientemente propuestos utilizados para predecir la retroalimentación humana (votos, respuestas) de las respuestas. Estos modelos se pueden utilizar para mejorar la calidad de la generación de diálogo (consulte nuestro documento EMNLP para más detalles).
El primer paso para volver a entrenar los modelos completos es generar el conjunto de datos reddit de 27 GB mencionado anteriormente. Esto implica descargar volcados de envío y comentarios completos de https://files.pushshift.io/reddit y crear archivos intermedios, que en general requieren 700 GB de espacio en disco local . La descarga y el procesamiento de los datos completos requiere aproximadamente 1-2 días, dependiendo de sus capacidades de cómputo (CPU) (por ejemplo, ~ 24 horas con 8 núcleos en una computadora reciente). Suponiendo que ejecute los pasos de configuración e instalación de la Conda (activar LSP, etc.), puede crear el conjunto de datos completo ejecutando:
python demo.py --data full
o
cd reddit_extractor; SIZE=full make -j 8; cd ..
El primer comando llama a este último, por lo que los dos métodos son equivalentes. Recomendamos el primero, ya que el segundo es principalmente útil si se encuentra con algún problema o desea personalizar cualquier argumento (por ejemplo, el comando make le permite construir solo un subconjunto de los datos). Tenga en cuenta que la fase de descarga puede ser propensa a errores, por ejemplo, según su geolocalización (firewall, etc.). Si los comandos anteriores no logran generar data/train.tsv , o si ese archivo no está cerca de 27 GB, significa que algo salió mal. En ese caso, es posible que desee inspeccionar reddit_extractor/wget-log y reddit_extractor/logs/*.log para cualquier error obvio (por ejemplo, wget no puede descargar desde pushshift.io). Si los mensajes de error no tienen sentido para usted, no dude en contactarnos. Si es así, asegúrese de incluir cualquier mensaje de error recopilado de estos archivos de registro.
Estadísticas de datos de capacitación: el archivo TSV de capacitación generado debe tener aproximadamente 26.8 GB sin comprimir, con 146.8 millones de instancias de entrenamiento, tokens de fuente 3.87b y tokens objetivo 2.14B (incluidos los pesos de nivel de expresión 0/1). El archivo TREN.TSV resultante debe contener 146,846,215 líneas.
Recomendamos generar los datos anteriores utilizando demo.py --data full , ya que (1) genera los datos, (2) los convierte en formato DB y (3) entrena un modelo con python LSP_train.py . Edite directamente demo.py si desea personalizar cualquiera de los hiperparámetros.
Nuestro modelo logró los resultados de vanguardia en la tarea de generación de respuesta de desafío DSTC-7.
| Experimento | NIST2 | NIST4 | Bleu2 | Bleu4 | METEORITO | ENT-4 | Dist-1 | Dist-2 | Avg. Fila |
|---|---|---|---|---|---|---|---|---|---|
| Respuesta humana | 2.62 | 2.65 | 12.35% | 3.13% | 8.31% | 10.45 | 16.66% | 67.01% | 18.8 |
| Ganador de DSTC-7 | 2.51 | 2.52 | 14.35% | 1.83% | 8.07% | 9.03 | 10.89% | 32.49% | 15.1 |
| Dialogpt 345m | 2.80 | 2.82 | 14.16% | 2.31% | 8.51% | 10.08 | 9.13% | 39.73% | 16.9 |
| Dialogpt 345m (BS) | 2.92 | 2.97 | 19.18% | 6.05% | 9.29% | 9.57 | 15.73% | 51.03% | 14.2 |
donde ENT representa la puntuación de entropía, y DIST representa la puntuación distinta. Para todas las métricas, excepto la longitud promedio, más grandes son mejores.
Tenga en cuenta que la evaluación automática superior en comparación con las respuestas humanas no implica que nuestro modelo logre la paridad humana. Consulte nuestro artículo para un análisis más detallado.
Para ajustar el modelo de diálogo 345M en los datos de desafío DSTC-7 en un servidor con 8 GPU V100, ejecute la siguiente línea de comandos (los datos DSTC se pueden encontrar en DSTC-7 Repo):
python3 -m torch.distributed.launch --nproc_per_node=8 train_LSP.py --init_checkpoint ./models/medium/medium_ft.pkl --train_input_file ./data/DSTC_train.db --eval_input_file ./data/DSTC_valid.tsv --model_name_or_path ./model/medium/ --learning_rate 1e-4 --train_batch_size 64 --eval_batch_size 64 --no_token_idEl modelo entrenado se puede encontrar en el modelo DSTC Medium
Descarga los siguientes paquetes de terceros y guarde en la carpeta vacía 3rdparty :
cpan install ): XML: Twig, Sort: Naturally and String: Util. Siga el repositorio oficial DSTC-7 para extraer los datos y colocar data-official-test/test.refs.txt en la carpeta ./dstc/data/ .
Ejecute el script de extracción a continuación para producir el archivo de hipótesis de respuesta humana human.resp.txt :
python extract_human.pyFinalmente, para reproducir los resultados de la hipótesis humana en el conjunto de datos DSTC, ejecute los siguientes comandos en la carpeta Repo:
python batch_eval.py Los resultados de la evaluación se generarán en la carpeta ./dstc/eval/
Probamos en 6K Multi-REF DataSet de Reddit. Los resultados se resumen a continuación
| Experimento | NIST2 | NIST4 | Bleu2 | Bleu4 | METEORITO | ENT-4 | Dist-1 | Dist-2 | Avg. Fila |
|---|---|---|---|---|---|---|---|---|---|
| Respuesta humana | 3.41 | 4.25 | 17.90% | 7.48% | 10.64% | 11 | 14.50% | 63.00% | 13.1 |
| Dialogpt 117m | 2.39 | 2.41 | 10.54% | 1.55% | 7.53% | 10.78 | 8.60% | 39.90% | 12.8 |
| Dialogpt 345m | 3 | 3.06 | 16.96% | 4.56% | 9.81% | 9.13 | 6.80% | 26.30% | 12.2 |
| Dialogpt 762m | 2.84 | 2.9 | 18.66% | 5.25% | 9.66% | 9.72 | 7.76% | 29.93% | 11.2 |
| Dialogpt 345m (BS) | 3.4 | 3.5 | 21.76% | 7.92% | 10.74% | 10.48 | 12.38% | 48.74% | 11.3 |
| Dialogpt 345m (W/MMI) | 3.28 | 3.33 | 15.68% | 3.94% | 11.23% | 11.25 | 9.39% | 45.55% | 17.2 |
Realizamos evaluaciones humanas (6k ejemplos para cada método, cada ejemplo es evaluado por 3 jueces humanos). Los resultados muestran una sólida evidencia de que nuestra calidad de generación es abordar la calidad de las respuestas humanas reales, bajo esta prueba de Turing no interactiva:
Relevancia : A y B, que uno es más relevante para el indicador de la fuente.
| Sistema A | A gana (%) | TIES (%) | B gana (%) | Sistema B |
|---|---|---|---|---|
| Dialogpt 345m | 2671 (45%) | 513 (9%) | 2816 (47%) | Respuestas humanas |
| Dialogpt 345m | 3281 (72%) | 394 (9%) | 882 (19%) | Personalidad |
| Dialogpt 345m w/ mmi | 2871 (48%) | 522 (9%) | 2607 (43%) | Respuestas humanas |
Información : A y B, cuál es más contento e informativo.
| Sistema A | A gana (%) | TIES (%) | B gana (%) | Sistema B |
|---|---|---|---|---|
| Dialogpt 345m | 2722 (45%) | 234 (4%) | 3044 (51%) | Respuestas humanas |
| Dialogpt 345m | 3490 (77%) | 206 (5%) | 861 (19%) | Personalidad |
| Dialogpt 345m w/ mmi | 3011 (50%) | 234 (4%) | 2755 (46%) | Respuestas humanas |
Humano : A y B, ¿cuál crees que es más probable que sea generado por el humano?
| Sistema A | A gana (%) | TIES (%) | B gana (%) | Sistema B |
|---|---|---|---|---|
| Dialogpt 345m | 2716 (45%) | 263 (4%) | 3021 (50%) | Respuestas humanas |
| Dialogpt 345m | 3462 (76%) | 196 (4%) | 899 (20%) | Personalidad |
| Dialogpt 345m w/ mmi | 2978 (50%) | 241 (4%) | 2781 (46%) | Respuestas humanas |
Consulte los detalles completos en nuestro documento ARXIV.
| Role | Respuesta |
|---|---|
| Usuario | ¿El dinero compra la felicidad? |
| Bot | Depende de cuánto dinero gaste en él. |
| Usuario | ¿Cuál es la mejor manera de comprar la felicidad? |
| Bot | Solo tienes que ser millonario a principios de los 20 años, entonces puedes ser feliz. |
| Usuario | ¡Esto es tan difícil! |
| Bot | No tienes idea de lo difícil que es ser millonario y feliz. Hay una razón por la que los ricos tienen mucho dinero |
| Role | Respuesta |
|---|---|
| Usuario | ¿Cuál es el significado de la vida? |
| Bot | El significado es estar con su familia y amigos. |
| Bot | Voy a adivinar: significa que tus padres y amigos te han amado. Ese es el significado, creo. |
| Bot | Creo que el significado es asegurarse de que estés vivo cuando mueras. Entonces estarás con tu familia, amigos y tú mismo. |
| Bot | No lo es, pero gracias por tratar de ayudar. |
| Usuario | Bot |
|---|---|
| quien es el primer presidente de los Estados Unidos | George Washington |
| ¿Cuál es el punto de ebullición del agua? | Creo que es alrededor de 212 F. |
| ¿Cuál es más grande, sol o luna? | El sol. |
| ¿Qué animal tiene rayas en blanco y negro? | Un gato a rayas en blanco y negro. |
| Usuario | Bot |
|---|---|
| La guerra comercial entre China y Estados Unidos todavía está sucediendo. | Estoy seguro de que el gobierno chino y el U. S . Estará bien con eso siempre que mantengan sus brazos sobre la mesa y el dinero fluyendo. |
| ¿Quién ganó la Copa del Mundo en 2018? | Alemania, creo. |
| Titan RTX de Nvidia es realmente bueno. | Tengo esta tarjeta y me encanta. Sin quejas. |
| ¿Puede Porsche vencer a Tesla con su nuevo Taycan EV? | No me parece . El Tesla es más poderoso que el Porsche. |
| Usuario | Bot |
|---|---|
| ¿Cuál es el significado de una buena vida? | Creo que todos estamos conectados con nuestras vidas pasadas y el significado de la vida es vivir de la manera que quieras y cómo quieres. |
| ¿Qué es más importante: tener éxito o ser feliz? | Tener éxito es simplemente interminable. Ser feliz es lo único que importa. |
| ¿Es la paz la única forma de detener la guerra? | No si el mundo no está dispuesto a trabajar contigo. La paz es el objetivo final, pero la paz requiere más que eso. |
| ¿Cuánta libertad debería tener las personas? | La cantidad correcta de libertad es la libertad de hacer lo que quieras, siempre y cuando no lastimes a las personas o la propiedad. |
| Usuario | Bot |
|---|---|
| ¿Qué opinas del repositorio de diáloga? | Es bastante bueno, pero es muy fácil encontrar un error. |
Comience un problema si detecta alguno :)
La demostración en vivo y el acceso de script de decodificación están en invitación solo ahora. POR FAVOR, estén atentos para el lanzamiento completo.
Retgen: https://github.com/dreasysnail/retgen. Diáloga de recuperación y augerada y más allá. RetGen es un marco de capacitación conjunta que optimiza simultáneamente a un denso pasaje retriever y un generador de texto con conocimiento de conocimiento de una manera de extremo a extremo.
Microsoft ICECAPS: https://github.com/microsoft/icecaps.
Como un repositorio ortogonal de este proyecto, Microsoft ICECAPS es un kit de herramientas de código abierto (en TensorFlow) para construir sistemas de conversación neuronal. ICECAPS proporciona una variedad de herramientas del modelado de conversación reciente y la literatura general de PNL dentro de un paradigma flexible que permite configuraciones de aprendizaje de tareas complejas.
Unilm: https://github.com/microsoft/unilm
Mt-dnn: https://github.com/namisan/mt-dnn
Una contraparte china de diáloga de Yangjianxin1. https://github.com/yangjianxin1/gpt2-chitchat. ¡Nos alegra ver que la estrategia MMI que utilizamos en Dialogpt también ha mejorado el rendimiento de este proyecto!
Póngase en contacto con [email protected] si tiene alguna pregunta/sugerencia. Sin embargo, la respuesta será esporádica. Espere retraso.
Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Acuerdo de Licencia de Contributor (CLA) que declare que tiene derecho y realmente hacernos los derechos para utilizar su contribución. Para más detalles, visite https://cla.opensource.microsoft.com.
Cuando envíe una solicitud de extracción, un BOT CLA determinará automáticamente si necesita proporcionar un CLA y decorar el PR adecuadamente (por ejemplo, verificación de estado, comentario). Simplemente siga las instrucciones proporcionadas por el bot. Solo necesitará hacer esto una vez en todos los reposos usando nuestro CLA.
Este proyecto ha adoptado el Código de Conducta Open Open Microsoft. Para obtener más información, consulte el Código de Conducta Preguntas frecuentes o comuníquese con [email protected] con cualquier pregunta o comentario adicional.
Este repositorio tiene como objetivo facilitar la investigación en el pretrete a gran escala para los datos de conversación. Este kit de herramientas contiene solo parte de la maquinaria de modelado necesaria para producir un archivo de peso modelo en un diálogo en ejecución. Por sí solo, este modelo proporciona solo información sobre los pesos de varios tramos de texto; Para que un investigador lo use realmente, necesitará traer datos de conversación propios y decodificar la generación de respuesta del sistema previo al estado previo. Microsoft no es responsable de ninguna generación de la utilización de terceros del sistema previo a la aparición.
Si usa este código en su investigación, puede citar nuestro artículo ARXIV:
@inproceedings{zhang2019dialogpt,
title={DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation},
author={Yizhe Zhang and Siqi Sun and Michel Galley and Yen-Chun Chen and Chris Brockett and Xiang Gao and Jianfeng Gao and Jingjing Liu and Bill Dolan},
year={2020},
booktitle={ACL, system demonstration}
}