Eine wichtige Anwendung von Large Language Models (LLMs) wie ChatGPT ist ihr Einsatz als Chat-Agenten, die auf menschliche Anfragen in verschiedenen Domänen reagieren. Während aktuelle LLMs allgemeine Fragen kompetent beantworten, sind sie bei komplexen Diagnoseszenarien wie rechtlichen, medizinischen oder anderen spezialisierten Beratungen oft unzureichend. Diese Szenarien erfordern typischerweise einen aufgabenorientierten Dialog (TOD), bei dem ein KI-Chat-Agent proaktiv Fragen stellen und Benutzer zu bestimmten Zielen oder zum Abschluss von Aufgaben führen muss. Frühere Feinabstimmungsmodelle haben im TOD eine unterdurchschnittliche Leistung erbracht und das volle Potenzial der Konversationsfähigkeit in aktuellen LLMs wurde noch nicht vollständig erforscht. In diesem Artikel stellen wir DiagGPT (Dialogue in Diagnosis GPT) vor, einen innovativen Ansatz, der LLMs auf weitere TOD-Szenarien erweitert. Neben der Anleitung von Benutzern zur Erledigung von Aufgaben kann DiagGPT den Status aller Themen während der gesamten Dialogentwicklung effektiv verwalten. Diese Funktion verbessert das Benutzererlebnis und bietet eine flexiblere Interaktion in TOD. Unsere Experimente zeigen, dass DiagGPT eine herausragende Leistung bei der Durchführung von TOD mit Benutzern zeigt und sein Potenzial für praktische Anwendungen in verschiedenen Bereichen zeigt.
Wir erstellen einen neuen Datensatz, LLM-TOD (Aufgabenorientierter Dialog für große Sprachmodelle). Es wird verwendet, um die Leistung von LLM-basierten aufgabenorientierten Dialogmodellen quantitativ zu bewerten. Der Datensatz umfasst 20 Daten, die jeweils ein anderes Thema repräsentieren: Klinik, Restaurant, Hotel, Krankenhaus, Zug, Polizei, Bus, Attraktion, Flughafen, Bar, Bibliothek, Museum, Park, Fitnessstudio, Kino, Büro, Friseursalon, Bäckerei, Zoo, und Bank.
.
├── chatgpt # implementation of base chatgpt
├── data
│ └── LLM-TOD # LLM-TOD dataset
├── demo.py # DiagGPT for demo test
├── diaggpt # simple version of DiagGPT for quantitative experiments
├── diaggpt_medical # full version of DiagGPT in the medical consulting scenario
│ ├── embedding # file store, retrieval, etc.
│ ├── main.py # main code of implementation
│ ├── prompts # all prompts in DiagGPT
│ ...
├── evalgpt # implementation of GPT evaluation
├── exp.py # code of quantitative experiments
├── exp_output # experiment results
├── openai_api_key.txt # openai key
├── requirements.txt # dependencies
├── usergpt # simulation of the user for quantitative experiments
...
pip install -r requirements.txt
touch openai_api_key.txt # put your openai api key in it
python demo.py # demo test
python exp.py # run quantitative experiments
Hier ist eine sehr einfache Demo des Chat-Prozesses des Chatbots in einem medizinischen Diagnoseszenario. Wir haben den Ablauf eines Patientenbesuchs beim Arzt simuliert. (Einige Patienten-/Benutzereingaben werden von GPT-4 generiert.)
Dabei sammelt der Arzt kontinuierlich Informationen von Patienten und analysiert diese Schritt für Schritt
Derzeit sind die bestehenden Funktionen des Projekts noch sehr vorläufig. Es handelt sich lediglich um eine Demonstrationsversion zur Demonstration der Themenmanagementfähigkeit von LLMs, die den Anforderungen tatsächlicher professioneller Beratung nicht gerecht werden kann.
Das Hauptziel dieses Experiments besteht darin, das Potenzial von GPT-4 zu demonstrieren. Es ist jedoch wichtig zu beachten, dass es sich hierbei nicht um eine vollständig ausgefeilte Anwendung oder ein Produkt handelt, sondern um ein experimentelles Projekt. Es ist möglich, dass GPT-4 in komplexen, realen Geschäftsszenarien nicht optimal funktioniert. Wir ermutigen Sie, es zu verbessern und in verschiedenen Szenarien anzuwenden, und würden uns freuen, von Ihren Ergebnissen zu hören!
Wenn Sie dieses Repo nützlich finden, zitieren Sie bitte das folgende Dokument:
@misc{cao2023diaggpt,
title={DiagGPT: An LLM-based and Multi-agent Dialogue System with Automatic Topic Management for Flexible Task-Oriented Dialogue},
author={Lang Cao},
year={2023},
eprint={2308.08043},
archivePrefix={arXiv},
primaryClass={cs.CL}
}