OpenDialog
1.0.0
我們現在擁有了測試介面了,搜尋微信公眾號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
儲存會話歷史和必要的數據
data
目錄下對應的子目錄中,詞向量檔案chinese_w2v.txt
和english_w2v.bin
存放在data
下即可。data/README.md
。<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>
呼叫介面