Prompted LLMs as Chatbot Modules for Long Open-domain Conversation

Paper · arXiv 2305.04533 · Published May 8, 2023
Conversation Topics DialogSynthetic Dialog

At the start of a conversation, a pre-defined persona is stored in the memory pool. When a user sends a message, the clarifier rephrases it to resolve any ambiguities and passes it to the DPR model which retrieves relevant memories from the memory pool. The retrieved memories and clarifier output are fed into the memory processor to get a single context-relevant memory, which is then passed to an utterance generator for producing a response from the chatbot. Every few turns, we call upon a summarizer module to extract important information from dialogue and store it in the memory pool for future use (see Appendices C and D.

For instance, depending on prior context, the user input “Do you like working there?” would output “Does Sarah like working at ZYX company?”. By resolving contextual ambiguity, the clarifier assists the DPR model and memory processor module by providing an information-dense query to fetch and process relevant memories.

Memory Processor As demonstrated in Fig. 1, we formulate memory processing as an LLM reasoning task of finding the most relevant information given the dialogue.

Utterance Generator The utterance generator module generates the final response of the chatbot given the recent dialogue history and memory provided by the memory processor. The prompt consists of the dialogue history, condensed memory, and the generation instruction (e.g., “Give a friendly response to the user.”).