DialoGPT model fine-tuned using Amazon's Topical Chat Dataset

This model is fine-tuned from the original DialoGPT-small.

This model was fine-tuned on a subset of messages from Amazon's Topical Chat dataset (due to processing limitations, I restricted my training data to 50,000 observations.

The dataset spands 8 broad topics and contains conversation partner who do not have defined roles. It was created with the goal of aiding in the effort to build a socialbot that can have deep, engaging open-domain conversations with humans.

The eight broad topics are:

  • fashion
  • politics
  • books
  • sports
  • general entertainment
  • music
  • science and technology
  • movies

Sample dialogue:

Role Response
User: Do you like Kanye?
Bot: He is okay, I like some of his music
User: Any other thoughts on him?
Bot: He is not a great person, but I like some of his music, so I'm not too surprised
User: What does that say about you?
Bot: I think he's trying to be funny. It's just that he's always out there and out there. Always out there. That's all I'll say.
User: You're strange.
Bot: Yeah, I guess so.

Using the model

Example code for trying out the model (taken directly from the DialoGPT-medium model card):

from transformers import AutoModelWithLMHead, AutoTokenizer
import torch
tokenizer = AutoTokenizer.from_pretrained("satkinson/DialoGPT-small-marvin")
model = AutoModelWithLMHead.from_pretrained("satkinson/DialoGPT-small-marvin")
# Let's chat for 5 lines
for step in range(5):
    # encode the new user input, add the eos_token and return a tensor in Pytorch
    new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
    # append the new user input tokens to the chat history
    bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
    # generated a response while limiting the total chat history to 1000 tokens, 
    chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
    # pretty print last ouput tokens from bot
    print("DialoGPT: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))
Downloads last month
41
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.