Agora temos uma interface de teste, que pode ser usada pesquisando na conta pública do WeChat OpenDialog
OpenDialog é baseado em transformadores baseados em PyTorch. Fornece uma série de modelos de diálogo de domínio aberto chinês baseados em transformadores (conversas de bate-papo), coleta recursos de dados existentes e complementa continuamente os conjuntos de dados correspondentes do sistema de conversação chinês, com a intenção de construir uma plataforma de diálogo de bate-papo chinês de código aberto.
Últimos desenvolvimentos:
2020.8.20, concluiu a interface do modelo de pré-treinamento generativo de domínio aberto LCCC-GPT-Large e execute o código a seguir para iniciar o serviço correspondente
./run_flask lccc < gpu_id >
2020.10.26, completou um lote de modelos de diálogo de recuperação de bi-codificador (bert-bi-encoder, polyencoder, etc.)
...
Arquivos e diretórios principais do OpenDialog:
data
: conjunto de dados, arquivo de configuração, lista de palavras, vetor de palavras, script de processamento de conjunto de dadosmodels
: modelos de diálogometrics
: indicadores de avaliaçãomultiview
: modelo de reclassificação multiângulo, reclassificação para obter respostas dos candidatos ao diálogockpt
: armazena o modelo de treinamentorest
: armazena logs do tensorboard e arquivos de resultados gerados durante a fase de testeutils
: armazena funções da ferramentadataloader.py
: script de carregamento do conjunto de dadosmain.py
: arquivo principal em execuçãoheader.py
: o pacote que precisa ser importadoeval.py
: Chame o script de avaliação dos indicadores de avaliação em metrics
para testar os resultados do arquivo gerado em rest
run.sh
: executa script em loterun_flask.sh
: Chame o modelo e inicie o serviço Ambiente de sistema básico: Linux/Ubuntu-16.04+
, Python 3.6+
, GPU (default 1080 Ti)
Instale bibliotecas dependentes de python
pip install -r requirements.txt
Instale ElasticSearch
O sistema de diálogo baseado em recuperação precisa primeiro usar elasticsearch
para uma triagem aproximada. Ao mesmo tempo, para alcançar a segmentação de palavras chinesas no estágio de recuperação de triagem grosseira, um segmentador de palavras chinesas precisa ser baixado e instalado.
Instale mongodb
Após iniciar o serviço, mongodb
será usado para armazenar o histórico da sessão e os dados necessários
data
e armazene os arquivos vetoriais de palavras chinese_w2v.txt
e english_w2v.bin
em data
.data/README.md
para detalhes de dados e dados pré-processados.<gpu_ids>
, como 0,1,2,3
dataset
é consistente com o nome no diretório data
.Modelo | DMC | Tipo | Detalhes | Consulte | Modelo pré-treinamento |
---|---|---|---|---|---|
recuperação | ./run.sh train <dataset> bertretrieval <gpu_ids> | recuperação | Modelo de ajuste fino baseado em Bert (ajuste fino) | Papel | |
gpt2 | ./run.sh train <conjunto de dados> gpt2 <gpu_ids> | generativo | Modelo de diálogo generativo GPT2 | Código | |
gpt2gan | ./run.sh train <conjunto de dados> gpt2gan <gpu_ids> | generativo | Modelo de diálogo baseado em GAN, o modelo generativo é GPT2 e o modelo discriminante é o modelo de duas classificações BERT. | Papel |
Iniciar serviço de frasco
./run_flask.sh <model_name> <gpu_id>
Interface de chamada