diff --git a/.codebeatignore b/.codebeatignore
deleted file mode 100644
index 7f65077bf48ec9dd0f3f3dc454b0c2ecafa06c45..0000000000000000000000000000000000000000
--- a/.codebeatignore
+++ /dev/null
@@ -1,3 +0,0 @@
-docs/**
-tests/**
-
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..ffeb4594c7309c26b321eddea622cc6daf6db295
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,111 @@
+.git
+
+# extras
+Pipfile*
+results*
+
+*.pyc
+__pycache__
+
+.DS_Store
+
+# pycharm
+.idea
+
+# vscode
+.vscode
+
+# data
+data/unified_datasets/multiwoz21/MultiWOZ_2.1.zip
+data/unified_datasets/sgd/dstc8-schema-guided-dialogue-master.zip
+data/unified_datasets/tm1/master.zip
+data/unified_datasets/tm2/master.zip
+data/unified_datasets/dailydialog/ijcnlp_dailydialog.zip
+data/unified_datasets/dart/dart-v1.1.1-*.json
+data/unified_datasets/commongen/commongen_data.zip
+data/unified_datasets/kvret/kvret_*
+data/unified_datasets/metalwoz/metalwoz-*.zip
+data/unified_datasets/woz/woz
+data/unified_datasets/personachat/original_data
+data/unified_datasets/wow/wizard_of_wikipedia
+data/unified_datasets/**/stat.txt
+data/unified_datasets/**/data
+data/*/dstc9*.json.zip
+data/crosswoz_en/.gitignore
+data/**/train.json
+data/**/val.json
+data/**/test.json
+data/**/human_val.json
+data/camrest/CamRest676_v2.json
+data/multiwoz/annotated_user_da_with_span_full.json
+data/schema/dstc8-schema-guided-dialogue-master
+**/processed_data/*
+data/mdbt/data
+data/mdbt/models
+data/mdbt/word-vectors
+convlab/**/data
+convlab/**/output
+convlab/**/cache
+convlab/nlg/sclstm/**/resource/*
+convlab/nlg/sclstm/**/resource_usr/*
+convlab/nlg/sclstm/**/sclstm.pt
+convlab/nlg/sclstm/**/sclstm.res
+convlab/nlg/sclstm/**/sclstm.log
+convlab/nlg/sclstm/**/sclstm_usr.pt
+convlab/nlg/sclstm/**/sclstm_usr.res
+convlab/nlg/sclstm/**/sclstm_usr.log
+convlab/dst/sumbt/multiwoz/output/
+convlab/nlg/sclstm/**/generated_sens_sys.json
+convlab/nlg/template/**/generated_sens_sys.json
+convlab/nlu/jointBERT/crosswoz/**/data
+convlab/nlu/jointBERT/multiwoz/**/data
+convlab/nlu/jointBERT/**/output/
+convlab/nlu/jointBERT_new/crosswoz/**/data
+convlab/nlu/jointBERT_new/multiwoz/**/data
+convlab/nlu/jointBERT_new/crosswoz/**/log
+convlab/nlu/jointBERT_new/multiwoz/**/log
+convlab/nlu/jointBERT_new/**/output/
+convlab/nlu/milu/09*
+convlab/nlu/jointBERT/multiwoz/configs/multiwoz_new_usr_context.json
+convlab/nlu/milu/multiwoz/configs/system_without_context.jsonnet
+convlab/nlu/milu/multiwoz/configs/user_without_context.jsonnet
+
+# test script
+*_test.py
+
+# log
+**/log/**
+*.log
+
+# save
+**/save/**
+
+# .bak.py
+*.bak.py
+
+# compile files
+build
+dist
+convlab.egg-info
+
+# configs
+
+*experiment*
+*pretrained_models*
+.ipynb_checkpoints
+
+## dst files
+convlab/dst/trade/crosswoz/data/
+convlab/dst/trade/crosswoz/model/
+convlab/dst/trade/crosswoz_config/
+convlab/dst/trade/multiwoz/data/
+convlab/dst/trade/multiwoz/model/
+convlab/dst/trade/multiwoz_config/
+convlab/deploy/bert_multiwoz_all.zip
+convlab/deploy/templates/dialog_eg.html
+test.py
+
+*convlab/policy/vector/action_dicts
+*.egg-info
+pre-trained-models/
+venv
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100755
index 50d03c9b68070e66dbc96c2a32d5ba66a9b71aee..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-language: python
-
-python:
-  - 3.6
-
-cache: pip
-
-install:
-  - pip install --upgrade pip
-  - pip install --progress-bar off -e .[develop]
-  - pip install sphinx
-  - pip install sphinx_rtd_theme
-
-script:
-  - cd docs
-  - make html && mv ./build/html ./build/docs && rm -r ./build/doctrees
-  - cd ..
-  - gem install travis --no-document
-
-deploy:
-  - provider: pages
-    skip-cleanup: true
-    github-token: $DEPLOY_KEY
-    keep-history: true
-    repo: thu-coai/ConvLab-2_docs
-    target-branch: master
-    local-dir: ./docs/build
-    on:
-      branch: master
-  # - provider: script
-    # skip-cleanup: true
-    # script: coveralls
-    # on:
-      # all_branches: true
-      # condition: true
diff --git a/Dockerfile b/Dockerfile
index 77015e7d9dacf9570660cfaab216d469d9d3a2e1..8afb9533a2337d9d1bd9e38a9ea2e91c56af5c78 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,51 +1,22 @@
-FROM python:3.6-slim AS compile-image
+# syntax=docker/dockerfile:1
 
-RUN apt-get update
-RUN apt-get install -y --no-install-recommends python3.7 python3-pip build-essential libssl-dev libffi-dev python3.7-dev
-
-RUN python3.7 -m pip install --upgrade pip
-RUN python3.7 -m pip install setuptools wheel
+FROM nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04
+LABEL maintainer="convlab"
 
-RUN which python3.7
-RUN which pip3
+ENV DEBIAN_FRONTEND noninteractive
+RUN apt-get update
+RUN apt-get install -y python3.8 python3-pip build-essential
+RUN pip install --no-cache-dir --upgrade pip
 
-RUN ln -f -s /usr/bin/python3.7 /usr/bin/python
-RUN ln -f -s /usr/bin/pip3 /usr/bin/pip
-RUN python --version
+WORKDIR /root
 
-RUN pip install nltk==3.4
-RUN pip install tqdm==4.30
-RUN pip install checksumdir==1.1
-RUN pip install dataclasses
-RUN pip install visdom
-RUN pip install Pillow
-RUN pip install future
-RUN pip install torch
-RUN pip install numpy==1.15.0
-RUN pip install scipy
-RUN pip install scikit-learn==0.20.3
-RUN pip install pytorch-pretrained-bert==0.6.1
-RUN pip install transformers==2.3.0
-RUN pip install tensorboard==1.14.0
-RUN pip install tensorboardX==1.7
-RUN pip install tokenizers==0.8.0
-RUN pip install allennlp==0.9.0
-RUN pip install requests
-RUN pip install simplejson
-RUN pip install spacy
-RUN pip install unidecode
-RUN pip install jieba
-RUN pip install embeddings
-RUN pip install quadprog
-RUN pip install pyyaml
-RUN pip install fuzzywuzzy
-RUN pip install python-Levenshtein
-RUN pip install gtts
-RUN pip install DeepSpeech
-RUN pip install pydub
+COPY requirements.txt .
+RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
+RUN [ "python3", "-c", "import nltk; nltk.download('stopwords'); nltk.download('punkt'); nltk.download('wordnet')" ]
 
-RUN [ "python", "-c", "import nltk; nltk.download('stopwords')" ]
+COPY . .
+RUN pip install -e .
 
-WORKDIR /root
+RUN ln -f -s /usr/bin/python3 /usr/bin/python
 
 CMD ["/bin/bash"]
diff --git a/data/crosswoz_en/.gitignore b/data/crosswoz_en/.gitignore
deleted file mode 100644
index c249259bc672859adde39d83d57df40beddab6f9..0000000000000000000000000000000000000000
--- a/data/crosswoz_en/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-CrossWOZ_translate
\ No newline at end of file