Beyond the Turn-Based Game: Enabling Real-Time Conversations with Duplex Models
<|reference_start|>Beyond the Turn-Based Game: Enabling Real-Time Conversations with Duplex Models: As large language models (LLMs) increasingly permeate daily lives, there is a growing demand for real-time interactions that mirror human conversations. Traditional turn-based chat systems driven by LLMs prevent users from verbally interacting with the system while it is generating responses. To overcome these limitations, we adapt existing LLMs to \textit{duplex models} so that these LLMs can listen for users while generating output and dynamically adjust themselves to provide users with instant feedback. % such as in response to interruptions. Specifically, we divide the queries and responses of conversations into several time slices and then adopt a time-division-multiplexing (TDM) encoding-decoding strategy to pseudo-simultaneously process these slices. Furthermore, to make LLMs proficient enough to handle real-time conversations, we build a fine-tuning dataset consisting of alternating time slices of queries and responses as well as covering typical feedback types in instantaneous interactions. Our experiments show that although the queries and responses of conversations are segmented into incomplete slices for processing, LLMs can preserve their original performance on standard benchmarks with a few fine-tuning steps on our dataset. Automatic and human evaluation indicate that duplex models make user-AI interactions more natural and human-like, and greatly improve user satisfaction compared to vanilla LLMs. Our duplex model and dataset will be released.<|reference_end|>
@article{zhang2024beyond,
    title={Beyond the Turn-Based Game: Enabling Real-Time Conversations with Duplex
  Models},
    author={Xinrong Zhang, Yingfa Chen, Shengding Hu, Xu Han, Zihang Xu, Yuanwei
  Xu, Weilin Zhao, Maosong Sun, Zhiyuan Liu},
    journal={arXiv preprint arXiv:2406.15718},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.15718},
    primaryClass={cs.CL}
}