Thank you for your interest in our work, and this is the original implementation of "Continual Dialogue State Tracking via Reason-of-Select Distillation", accepted to the ACL 2024 Findings.
conda create -n CDST python=3.8
conda activate CDST
pip install -r requirements.txt
The preprocessed SGD dataset is provided in the "/data" folder. You can then employ different teacher models to generate RoS reasoning.
- Get ChatGPT's rationales:
./scripts/run_ChatGPT_reasoning.sh
- Get LLaMA-2-70B's rationales:
./scripts/run_LLaMA2_70B_reasoning.sh
This step will generate
To ensure faithful teaching, we exploit semantic similarity to select optimal reasoning.
./scripts/run_contrastive_selection.sh
Finally, obtained reasoning data is added to the original training dataset and the new reasoning dataset for model fine-tuning is constructed.
We conducted experiments on four different student models:
./scripts/run_train_LLaMA7B.sh
./scripts/run_train_FlanT5XL.sh
./scripts/run_train_T5base.sh
./scripts/run_train_T5small.sh
For LLaMA-7B and FlanT5-XL, we use LoRA to accelerate the speed of fine-tuning process. At the end of training, the student's fine-tuned weights will be stored in $checkpoint_files
. We provide all the fine-tuning weights in the Checkpoint_files
folder for reproducibility.
We use three metrics to measure the performance of our model for Continual Learning. (You can directly load the weights that we have provided directly from the \checkpoint
folder, and make inference.)
./scripts/run_generate_avgJGA.sh
./scripts/run_generate_FWT.sh
./scripts/run_generate_BWT.sh
After inference, the generated prediction results will be stored at \output
folder.
Then we can calculate these metrics by running
./scripts/eval_avgJGA.sh
./scripts/eval_FWT.sh
./scripts/eval_BWT.sh