我们现在拥有了测试接口了,搜索微信公众号 OpenDialog 可以使用
OpenDialog建立在基于PyTorch的transformers之上。 提供一系列transformer-based的中文开放域对话模型(闲聊对话),网罗已有的数据资源并持续不断的补充对应的中文对话系统的数据集,意图构建一个开源的中文闲聊对话平台。
最新进展:
-
2020.8.20, 完成LCCC-GPT-Large生成式Open-Domain预训练模型的接口,运行下面代码可以启动对应的服务
./run_flask lccc <gpu_id>
-
2020.10.26, 完成一批bi-encoder的检索式对话模型(bert-bi-encoder, polyencoder等)
-
...
OpenDialog核心文件和目录:
data: 数据集,配置文件,词表,词向量,数据集处理脚本models: 对话模型metrics: 评价指标multiview: 多角度重排模型,针对获得对话候选回复进行重排序ckpt: 存放训练模型rest: 存放tensorboard日志和test阶段生成的结果文件utils: 存放工具函数dataloader.py: 数据集加载脚本main.py: 主运行文件header.py: 需要导入的packageeval.py: 调用metrics中的评价指标的评估脚本,测试rest中生成文件的结果run.sh: 运行批处理脚本run_flask.sh: 调用模型,启动服务
-
基础系统环境:
Linux/Ubuntu-16.04+,Python 3.6+,GPU (default 1080 Ti) -
安装python依赖库
pip install -r requirements.txt-
安装
ElasticSearch基于检索的对话系统需要首先使用
elasticsearch进行粗筛。同时为了实现粗筛检索阶段的中文分词,同时需要下载和安装中文分词器 -
安装
mongodb启动服务之后,会使用
mongodb存储会话历史和必要的数据
- 数据集百度云链接: https://pan.baidu.com/s/1xJibJmOOCGIzmJVC6CZ39Q; 提取码: vmua
- 将对应的数据文件存放在
data目录下对应的子目录中,词向量文件chinese_w2v.txt和english_w2v.bin存放在data下即可。 - 数据细节和预处理数据详见
data/README.md。 - 可用的数据集
- 训练模型支持多GPU并行,只需要
<gpu_ids>指定多个gpu id即可,比如0,1,2,3 dataset名称和data目录下的名称一致
| Model | CMD | Type | Details | Refer | Pre-train Model |
|---|---|---|---|---|---|
| bertretrieval | ./run.sh train <dataset> bertretrieval <gpu_ids> | retrieval | 基于bert的精排模型(fine-tuning) | Paper | |
| gpt2 | ./run.sh train <dataset> gpt2 <gpu_ids> | generative | GPT2生成式对话模型 | Code | |
| gpt2gan | ./run.sh train <dataset> gpt2gan <gpu_ids> | generative | GAN-based对话模型,生成式模型是GPT2,判别模型是bert二分类模型 | Paper |
-
启动flask服务
./run_flask.sh <model_name> <gpu_id> -
调用接口
- 微信公众号
- postman