Eddie (NLP on FPGA)

The goal of this project is to overcome the programmability challenges of implementing Natural Language Processing (NLP) applications on FPGAs.
NLP enables natural human computer interaction, allowing people to interact with machines in the same manner as with each other.  More importantly, NLP provides machines with the ability to access the information and knowledge that are readily available in books, articles, and various unstructured documents.  Because the quality and usability of the NLP-powered services depends primarily on the quantity of text the system is able to process,
the computational demands of advanced NLP applications far exceed the capabilities of general-purpose CPUs. At the same time, the interactivity requirements of these services limit the ability to implement them on GPUs.  By developing efficient and flexible FPGA programming technologies for NLP, we are creating the opportunity for practitioners to design and deploy complex NLP-based interactive cloud services that can transform the way that people use the vast quantities of available written knowledge.

To showcase this work, our goal is to develop an intelligent dialog agent that can address complex information needs of users through interactive and knowledge-backed dialog adapted to each individual user. We call this system Eddie.  We illustrate the intended capabilities of Eddie through a specific use case. Consider Dr. Alice, who wants to understand the role of caffeine in cancer, a complex need which requiring multiple rounds of interaction. Dr. Alice begins with a question on known risks, refines her questions to focus on lung cancer cases, and then reverts back to a general question. For each question, Eddie searches through relevant texts from a large corpus (e.g., Wikipedia, the Web) to find answers and then generates a response. In this conversational setting, Dr. Alice can be implicit about what she already mentioned in previous questions (e.g., can use "it" to refer to "caffeine" in the second question). The agent tracks details of conversation including the full text of previous turns, pointers to important entities (e.g., cancer, coffee) and concepts (e.g., risk, source of caffeine), and snippets of corpora that it used to generate previous responses. Eddie responds in conversational style, generating text with relevant information from the knowledge base. All aspects of this interaction, from understanding user questions to response generation are adapted to the style and expertise of Dr. Alice. In fact, when her young son who just learned about constellations, asks "what is currently nearest to cancer?", Eddie knows he is asking about the constellation of stars and not the type of disease.