inglés | chino
Aprovechamiento de la recuperación de pasajes con modelos generativos para respuestas a preguntas de dominio abierto
RetrievalRecuperación densa de pasajes para responder preguntas en dominio abierto
Programador APS
Un sistema de diálogo de proceso completo que se puede implementar y ejecutar.
Modelo TensorFlow
Transformador
Sec2Seq
modelo de recuperación SMN
Transformador de muestreo programado
GPT2
Diálogo de tareas
modelo pytorch
Transformador
Sec2Seq
Este proyecto tiene como objetivo construir un sistema de diálogo que se pueda implementar en línea. Incluye sistemas de diálogo orientados a tareas y de dominio abierto. Las notas de lectura del artículo se colocan en otro proyecto: nlp-paper. se utilizan en el proyecto.
El directorio de datos en el almacén contiene datos de juguetes para cada corpus, que se pueden utilizar para verificar la ejecución del sistema. El corpus completo y el documento se pueden ver aquí.
LCCC
CruzWOZ
pollito amarillo
Douban
ubuntu
Qingyun
Tieba
Linux ejecuta run.sh y la verificación del directorio del proyecto ejecuta check.sh (o check.py)
actuador.py en el directorio raíz es la entrada de ejecución general, que se ejecuta llamando al siguiente formato de comando (tenga en cuenta que requisitos.txt se instala antes de la ejecución):
python actuator.py --version [Options] --model [Options] ...
Al ejecutar a través dectuador.py en el directorio raíz, --version
, --model
y --act
son parámetros obligatorios, entre los cuales --version
es la versión del código tf/torch
--model
es el modelo correspondiente transformer/smn...
para la ejecución. transformer/smn...
, y act es el modo de ejecución (modo pre_treat
de forma predeterminada). Para obtener parámetros de comando más detallados, consulte actuator.py
en cada modelo o el archivo de configuración json correspondiente en el directorio de configuración.
El modo de ejecución --act
se describe a continuación:
El modo pre_treat es el modo de preprocesamiento de texto. Si no hay un conjunto de resultados de segmentación de palabras ni un diccionario, primero debe ejecutar el modo pre_treat.
el modo tren es el modo entrenamiento
El modo de evaluación es el modo de evaluación del indicador.
El modo de chat es un modo de conversación. Cuando se ejecuta en modo de chat, ingrese ESC para salir de la conversación.
La secuencia de ejecución normal es pre_treat->train->evaluate->chat
Hay un actuador.py separado debajo de cada modelo, que puede omitir el acoplamiento externo para la ejecución y el desarrollo. Sin embargo, preste atención a ajustar la ruta del directorio del proyecto durante la ejecución.
En el diálogo, se coloca el código central del modelo relevante para facilitar la encapsulación y el empaquetado futuros.
puntos de control guarda la ubicación de los puntos de control
config es el directorio donde se guarda el archivo de configuración
data es la ubicación de almacenamiento de los datos originales. Al mismo tiempo, los archivos de datos intermedios generados durante la ejecución del modelo también se guardan en este directorio.
modelos guardar directorio para modelos
tensorflow y pytorch colocan el código central para la construcción del modelo y la ejecución de cada módulo
preprocess_corpus.py es un script de procesamiento de corpus, que procesa cada corpus en diálogos de una o varias rondas y estandariza las llamadas de interfaz unificada.
read_data.py se utiliza para la llamada de formato de carga de datos de load_dataset.py
metrics.py es un script para varios indicadores
tools.py es un script de herramienta que contiene separadores de palabras, operaciones de registro, scripts de carga/guardado de puntos de control, etc.
Coloque las instrucciones de la documentación debajo de los documentos, incluidas las notas de lectura en papel modelo.
Docker (móvil) se utiliza para scripts de implementación del servidor (terminal móvil)
El servidor es la interfaz del servicio UI. Use flask para compilarlo y usarlo. Simplemente ejecute el server.py correspondiente.
herramientas es el directorio de herramientas reservado
actuador.py (run.sh) es la entrada total del actuador
check.py (check.sh) es el script de verificación del directorio del proyecto
Antes de utilizar el sistema de diálogo de recuperación SMN, debe preparar el entorno Solr. Se recomienda Linux para el entorno del sistema de implementación Solr. Se recomienda utilizar la implementación de contenedores (se recomienda Docker) para las herramientas y preparar:
sol(8.6.3)
pysolr(3.9.0)
A continuación se proporciona una breve explicación para obtener más detalles, consulte el artículo: Obtenga la recuperación de la respuesta del candidato del sistema de diálogo de recuperación: use pysolr para llamar a Solr.
Para garantizar que Solr se ejecute de manera estable en línea y facilitar el mantenimiento posterior, utilice DockerFile para la implementación. Dirección de adquisición de DockerFile: docker-solr.
Solo para uso del modelo de prueba, puede utilizar las siguientes instrucciones de compilación más simples:
docker pull solr:8.6.3 # 然后启动solr docker run -itd --name solr -p 8983:8983 solr:8.6.3 # 然后创建core核心选择器,这里取名smn(可选) docker exec -it --user=solr solr bin/solr create_core -c smn
Con respecto a las herramientas de segmentación de palabras en Solr, existen IK Analyzer, Smartcn, Pinyin Word Segmenter, etc. Debe descargar el jar correspondiente y luego agregar la configuración en el esquema administrado del archivo de configuración principal de Solr.
Nota especial : si usa TF-IDF, también debe habilitar la configuración de similitud en el esquema administrado.
Después de implementar Solr en línea, use pysolr en Python para conectarse y usar:
pip install pysolr
El método para agregar datos de índice (que generalmente requiere primero una verificación de seguridad) es el siguiente. Agregue un índice a los datos de respuesta. Las respuestas son un json en la forma: [{},{},{},...]. Cada objeto que contiene se construye de acuerdo con sus necesidades de respuesta:
solr = pysolr.Solr(url=solr_server, always_commit=True, timeout=10) # 安全检查 solr.ping() solr.add(docs=responses)
El método de consulta es el siguiente. Para consultar todas las declaraciones utilizando TF-IDF, el método de consulta es el siguiente:
{!func}sum(product(idf(utterance,key1),tf(utterance,key1),product(idf(utterance,key2),tf(utterance,key2),...)
Antes de usarlo, debe agregar los datos a Solr. Para usarlos en este modelo SMN, simplemente ejecute primero el modo pre_treat.
Atención es todo lo que necesita | Notas de lectura: El trabajo pionero de Transformer, digno de lectura intensiva Ashish et al, 2017
Red de coincidencia secuencial: una nueva arquitectura para la selección de respuestas de múltiples turnos en chatbots basados en recuperación Notas de lectura: modelo de diálogo de recuperación SMN, extracción de información multicapa y multigranularidad |
Exploración masiva de arquitecturas de traducción automática neuronal | Notas de lectura: Se presenta el primer análisis a gran escala utilizando hiperparámetros de arquitectura NMT como ejemplo. El experimento aporta conocimientos novedosos y sugerencias prácticas para construir y ampliar arquitecturas NMT. | Denny y otros, 2017
Muestreo programado para transformadores | Notas de lectura: Aplicación del muestreo programado en transformadores Mihaylova et al, 2019
Licenciado bajo la Licencia Apache, Versión 2.0 Copyright 2021 DengBoCong.