Skip to content

Commit

Permalink
Merge branch 'main' into feature/238-Add-documentation-for-NLU-module
Browse files Browse the repository at this point in the history
  • Loading branch information
NoB0 committed May 7, 2024
2 parents 417b997 + 7105af6 commit d93674d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 10 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
IAI MovieBot is a conversational recommender system for movies. It follows a standard task-oriented dialogue system architecture, comprising natural language understanding (NLU), dialogue manager (DM), and natural language generation (NLG) components. Additionally, it includes a user model and a recommendation engine. Some modules may use different models, which can be trained using the provided training utilities. It also comes with different deployment platforms (such as Telegram and Flask REST).
The distinctive features of IAI MovieBot include a task-specific dialogue flow, a multi-modal chat interface, and an effective way to deal with dynamically changing user preferences. While our current focus is limited to movies, the system aims to be a reusable and extensible development framework that can support users in accomplishing recommendation-related goals via multi-turn conversations.

The v1.0 version of IAI MovieBot has been presented as a demonstration paper at CIKM'20 [[PDF](https://arxiv.org/pdf/2009.03668.pdf)], while the v2.0 version is to appear at WSDM'24.
<!-- TODO: Add link to arXiv for v2 -->
The v1.0 version of IAI MovieBot has been presented as a demonstration paper at CIKM'20 [[PDF](https://arxiv.org/pdf/2009.03668.pdf)], while the v2.0 version was presented at WSDM'24 [[PDF](https://arxiv.org/pdf/2403.00520.pdf)].

## Versions

Expand Down Expand Up @@ -54,14 +53,14 @@ Below is the overview of IAI MovieBot 2.0 architecture. Blue components are inhe

Training utilities:

* NLU training (JointBERT)
* NLU training (JointBERT) [[doc](https://iai-moviebot.readthedocs.io/en/latest/nlu.html#training-the-jointbert-model)]
* Reinforcement learning training (DQN and A2C) using a user simulator [[doc](https://iai-moviebot.readthedocs.io/en/latest/reinforcement_learning.html)]

## Demos

IAI MovieBot v2.0 can be tried [here](https://iai-group.github.io/MovieBot/).
IAI MovieBot v2.0 can be tried [here](https://gustav1.ux.uis.no/moviebotv2/).

<!-- TODO add screenshot -->
![MovieBot v2.0](docs/source/_static/moviebot_v2_w_user_model.png)

IAI MovieBot v1.0 can be tried on the Telegram channel [@iai_moviebot_bot](https://t.me/iai_moviebot_bot).

Expand All @@ -80,8 +79,9 @@ For the most recent version (v2.0) of IAI MovieBot, please cite:
author = {Bernard, Nolwenn and Kostric, Ivica and Balog, Krisztian},
title = {IAI MovieBot 2.0: An Enhanced Research Platform with Trainable Neural Components and Transparent User Modeling},
year = {2024},
doi = {10.1145/3616855.3635699},
booktitle = {Proceedings of the 17th ACM International Conference on Web Search and Data Mining},
pages = {1042--1045},
doi = {10.1145/3616855.3635699},
series = {WSDM '24}
}
```
Expand Down
Binary file added docs/source/_static/moviebot_v2_w_user_model.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 5 additions & 4 deletions moviebot/nlu/annotation/joint_bert/joint_bert_train.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,13 @@ def save_pretrained(self, path: str) -> None:
def parse_arguments():
"""Parses the command line arguments."""
parser = argparse.ArgumentParser()
parser.add_argument("--max_epochs", type=int, default=5)
parser.add_argument("--learning_rate", type=float, default=5e-5)
parser.add_argument("--weight_decay", type=float, default=0.0)
parser.add_argument(
"--model_output_path", type=str, default=_MODEL_OUTPUT_PATH
)
parser.add_argument("--data_path", type=str, default=_DATA_PATH)
parser.add_argument("--max_epochs", type=int, default=5)
parser.add_argument("--learning_rate", type=float, default=5e-5)
parser.add_argument("--weight_decay", type=float, default=0.0)
args = parser.parse_args()
return args

Expand All @@ -192,7 +193,7 @@ def parse_arguments():
args = parse_arguments()
wandb_logger = WandbLogger(project="JointBERT")

dataset = JointBERTDataset(_DATA_PATH)
dataset = JointBERTDataset(args.data_path)
dataloader = DataLoader(dataset, batch_size=8, shuffle=True, num_workers=4)

model = JointBERTTrain(
Expand Down

0 comments on commit d93674d

Please sign in to comment.