State-of-the-art intent classification (IC) and slot filling (SF) methods often rely on data-intensive deep learning models, limiting their practicality for industry applications. Large language models on the other hand, particularly instruction-tuned models (Instruct-LLMs), exhibit remarkable zero-shot performance across various natural language tasks. This study evaluates Instruct-LLMs on popular benchmark datasets for IC and SF, emphasizing their capacity to learn from fewer examples. We introduce ILLUMINER, an approach framing IC and SF as language generation tasks for Instruct-LLMs, with a more efficient SF-prompting method compared to prior work.
A comprehensive comparison with multiple baselines shows that our approach, using the FLAN-T5 11B model, outperforms the state-of-the-art joint IC+SF method and in-context learning with GPT3.5 (175B), particularly in slot filling by 11.1–32.2 percentage points. Additionally, our in-depth ablation study demonstrates that parameter-efficient fine-tuning requires less than 6% of training data to yield comparable performance with traditional full-weight fine-tuning.
Before running the evaluation service, please make sure your environment has all the requirements installed. For this, run:
git clone https://github.com/paramita-mirza/illuminer.git
cd illuminer
pip install -r requirements.txt
# we need to install 🤗 Transformers and PEFT from source
pip install git+https://github.com/huggingface/transformers
pip install git+https://github.com/huggingface/peftpython -m evaluation.builder.data_builder_dsm
python -m evaluation.builder.data_builder_massive
python -m evaluation.builder.data_builder_multiwozSet the MLflow tracking server URI:
cd evaluation/configs- In
main.yaml, set themlflow_tracking_uriwithhttp://<host>:<port>
By default, it will use a local tracking server at http://localhost:5000/
cd illuminermlflow server --host 127.0.0.1 --port 5000to run a local tracking server (you can seemlrunsandmlartifactswith metadata of all the experiments at the root directory)- Open
http://localhost:5000/on your browser to view the runs
When running experiments on a remote server, do remote port forwarding to track the experiments on a local MLflow server
ssh -R 5000:localhost:5000 <user>@<remote-host>- (Change the default port
5000in case it is not available)
python -m evaluation.run +data=<eval_data> +prompt=<eval_prompt> model=<llm> main.mlflow_tracking_uri=http://<host>:<port>/NOTE
dataandpromptare mandatory configs without any default values,modelisgoogle/flan-t5-xxl.yamlby default- Config options for:
dataare inevaluation/configs/datapromptare inevaluation/configs/promptmodelare inevaluation/configs/model
IMPORTANT
dataandprompttypes must match:<dataset>-domainwithzero/few-shot-dc-*<dataset>-intentwithzero/few-shot-ic-*<dataset>-slotwithzero/few-shot-sf-*(sf-spfor slot filling with single-prompting andsf-mpfor slot filling with multiple-prompting methods)<dataset>-dstwithzero/few-shot-dst-*
Sample evaluation runs for COLING 2024 are in run_coling_2024.sh.
python -m fine_tuning.run +data=<eval_data> +prompt=<eval_prompt> model=<llm> peft=<peft>NOTE
dataandpromptare mandatory configs without any default values,modelisgoogle/flan-t5-xxl.yamlby default,peftislora.yamlby default- Config options for:
dataare inevaluation/configs/datapromptare inevaluation/configs/promptmodelare inevaluation/configs/modelpeftare inevaluation/configs/peft
IMPORTANT
dataandprompttypes must match:<dataset>-domainwithzero/few-shot-dc-*<dataset>-intentwithzero/few-shot-ic-*<dataset>-slotwithzero/few-shot-sf-*(sf-spfor slot filling with single-prompting andsf-mpfor slot filling with multiple-prompting methods)
- When
peft=prompt_tuning, the configuration forpromptmust be eitherdc-pt,ic-pt,sf-sp-ptorsf-mp-pt - Default values for
trainer, such aslearning_rateandnum_train_epochscan be overridden, e.g.,trainer.num_train_epochs=10 - Default values for
model, such asdeviceandcache_dircan be overridden, e.g.,model.device=mps
To use ILLUMINER in your publication, please cite it by using the following BibTeX entry.
@inproceedings{illuminer,
title = "ILLUMINER: Instruction-tuned Large Language Models as Few-shot Intent Classifier and Slot Filler",
author = "Mirza, Paramita and
Sudhi, Viju and
Sahoo, Soumya and
Bhat, Sinchana Ramakanth",
booktitle = "Proceedings of the 2024 Joint International Conference on Computational Linguistics, Language Resources and Evaluation (LREC-COLING 2024)",
month = may,
year = "2024",
address = "Torino, Italy"
}