OpenDialog
1.0.0
WeChat パブリック アカウントOpenDialog
検索して使用できるテスト インターフェイスが完成しました。
OpenDialog は、PyTorch ベースのトランスフォーマー上に構築されています。 オープンソースの中国語チャット対話プラットフォームを構築することを目的として、一連のトランスフォーマーベースの中国語オープンドメイン対話モデル (チャット会話) を提供し、既存のデータリソースを収集し、対応する中国語会話システムデータセットを継続的に補完します。
最新の開発:
2020.8.20、LCCC-GPT-Large 生成オープンドメイン事前トレーニング モデルのインターフェイスが完成し、次のコードを実行して対応するサービスを開始します
./run_flask lccc < gpu_id >
2020.10.26、バイエンコーダ検索対話モデルのバッチを完成 (bert-bi-encoder、polyencoder など)
...
OpenDialog のコア ファイルとディレクトリ:
data
: データセット、設定ファイル、ワードリスト、ワードベクトル、データセット処理スクリプトmodels
: 対話モデルmetrics
:評価指標multiview
: マルチアングル再ランキングモデル、対話候補の応答を取得するための再ランキングckpt
: トレーニング モデルを保存しますrest
: テストフェーズ中に生成されたテンソルボードログと結果ファイルを保存します。utils
: ツール関数を保存しますdataloader.py
: データセット読み込みスクリプトmain.py
: メインの実行ファイルheader.py
: インポートする必要があるパッケージeval.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>
0,1,2,3
dataset
名はdata
ディレクトリ内の名前と一致します。モデル | CMD | タイプ | 詳細 | 参照する | 事前訓練モデル |
---|---|---|---|---|---|
ベルト検索 | ./run.sh train <データセット> bertretrieval <gpu_ids> | 検索 | Bert ベースの微調整モデル (微調整) | 紙 | |
gpt2 | ./run.sh train <データセット> gpt2 <gpu_ids> | 生成的な | GPT2 生成対話モデル | コード | |
gpt2gan | ./run.sh train <データセット> gpt2gan <gpu_ids> | 生成的な | GANベースの対話モデル、生成モデルはGPT2、判別モデルはBERT二分類モデルです。 | 紙 |
フラスコサービスを開始する
./run_flask.sh <model_name> <gpu_id>
通話インターフェース