Ahora tenemos una interfaz de prueba, que se puede utilizar buscando en la cuenta pública de WeChat OpenDialog
OpenDialog se basa en transformadores basados en PyTorch. Proporciona una serie de modelos de diálogo de dominio abierto chino (conversaciones de chat) basados en transformadores, recopila recursos de datos existentes y complementa continuamente los conjuntos de datos del sistema de conversación chino correspondiente, con la intención de construir una plataforma de diálogo de chat chino de código abierto.
Últimas novedades:
2020.8.20, completó la interfaz del modelo de preentrenamiento generativo de dominio abierto LCCC-GPT-Large y ejecute el siguiente código para iniciar el servicio correspondiente
./run_flask lccc < gpu_id >
2020.10.26, se completó un lote de modelos de diálogo de recuperación de bi-codificador (bert-bi-encoder, poliencoder, etc.)
...
Archivos y directorios principales de OpenDialog:
data
: conjunto de datos, archivo de configuración, lista de palabras, vector de palabras, script de procesamiento de conjunto de datosmodels
: modelos de diálogometrics
: indicadores de evaluaciónmultiview
: modelo de reclasificación de múltiples ángulos, reclasificación para obtener respuestas de los candidatos al diálogockpt
: almacena el modelo de entrenamientorest
: almacena registros de tensorboard y archivos de resultados generados durante la fase de pruebautils
: almacena funciones de herramientasdataloader.py
: script de carga del conjunto de datosmain.py
: archivo principal en ejecuciónheader.py
: el paquete que debe importarseeval.py
: Llama al script de evaluación de los indicadores de evaluación en metrics
para probar los resultados del archivo generado en rest
run.sh
: ejecuta script por lotesrun_flask.sh
: llama al modelo e inicia el servicio Entorno de sistema básico: Linux/Ubuntu-16.04+
, Python 3.6+
, GPU (default 1080 Ti)
Instalar bibliotecas dependientes de Python
pip install -r requirements.txt
Instalar ElasticSearch
El sistema de diálogo basado en recuperación debe utilizar primero elasticsearch
para una selección aproximada. Al mismo tiempo, para lograr la segmentación de palabras chinas en la etapa de recuperación de selección aproximada, es necesario descargar e instalar un segmentador de palabras chinas.
Instalar mongodb
Después de iniciar el servicio, mongodb
se utilizará para almacenar el historial de sesiones y los datos necesarios.
data
y almacene los archivos vectoriales de palabras chinese_w2v.txt
y english_w2v.bin
en data
.data/README.md
para obtener detalles de los datos y datos preprocesados.<gpu_ids>
, como 0,1,2,3
dataset
es coherente con el nombre en el directorio data
.Modelo | CMD | Tipo | Detalles | Referirse | Modelo previo al entrenamiento |
---|---|---|---|---|---|
bertretrieval | ./run.sh tren <conjunto de datos> bertretrieval <gpu_ids> | recuperación | Modelo de ajuste fino basado en Bert (ajuste fino) | Papel | |
gpt2 | ./run.sh tren <conjunto de datos> gpt2 <gpu_ids> | generativo | Modelo de diálogo generativo GPT2 | Código | |
gpt2gan | ./run.sh tren <conjunto de datos> gpt2gan <gpu_ids> | generativo | Modelo de diálogo basado en GAN, el modelo generativo es GPT2 y el modelo discriminante es el modelo de dos clasificaciones BERT. | Papel |
Iniciar servicio de matraz
./run_flask.sh <model_name> <gpu_id>
interfaz de llamada