From e43afb1bb87f01470d0bd16cac2d2aac50a76d7a Mon Sep 17 00:00:00 2001 From: Julien Chaumond Date: Wed, 11 Mar 2020 11:36:47 -0400 Subject: [PATCH] [model_cards] DialoGPT: How to use + thumbnail + conversational tag cc @dreasysnail Co-Authored-By: Patrick von Platen --- .../microsoft/DialoGPT-large/README.md | 33 +++++++++++++++++++ .../microsoft/DialoGPT-medium/README.md | 33 +++++++++++++++++++ .../microsoft/DialoGPT-small/README.md | 33 +++++++++++++++++++ 3 files changed, 99 insertions(+) diff --git a/model_cards/microsoft/DialoGPT-large/README.md b/model_cards/microsoft/DialoGPT-large/README.md index 709987ed..38ea2a8d 100644 --- a/model_cards/microsoft/DialoGPT-large/README.md +++ b/model_cards/microsoft/DialoGPT-large/README.md @@ -1,3 +1,9 @@ +--- +thumbnail: https://huggingface.co/front/thumbnails/dialogpt.png +tags: +- conversational +--- + ## A State-of-the-Art Large-scale Pretrained Response generation model (DialoGPT) DialoGPT is a SOTA large-scale pretrained dialogue response generation model for multiturn conversations. @@ -18,3 +24,30 @@ The model is trained on 147M multi-turn dialogue from Reddit discussion thread. Please find the information about preprocessing, training and full details of the DialoGPT in the [original DialoGPT repository](https://github.com/microsoft/DialoGPT) ArXiv paper: [https://arxiv.org/abs/1911.00536](https://arxiv.org/abs/1911.00536) + +### How to use + +Now we are ready to try out how the model works as a chatting partner! + +```python +from transformers import AutoModelWithLMHead, AutoTokenizer +import torch + + +tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large") +model = AutoModelWithLMHead.from_pretrained("microsoft/DialoGPT-large") + +# 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))) +``` diff --git a/model_cards/microsoft/DialoGPT-medium/README.md b/model_cards/microsoft/DialoGPT-medium/README.md index 709987ed..29328c62 100644 --- a/model_cards/microsoft/DialoGPT-medium/README.md +++ b/model_cards/microsoft/DialoGPT-medium/README.md @@ -1,3 +1,9 @@ +--- +thumbnail: https://huggingface.co/front/thumbnails/dialogpt.png +tags: +- conversational +--- + ## A State-of-the-Art Large-scale Pretrained Response generation model (DialoGPT) DialoGPT is a SOTA large-scale pretrained dialogue response generation model for multiturn conversations. @@ -18,3 +24,30 @@ The model is trained on 147M multi-turn dialogue from Reddit discussion thread. Please find the information about preprocessing, training and full details of the DialoGPT in the [original DialoGPT repository](https://github.com/microsoft/DialoGPT) ArXiv paper: [https://arxiv.org/abs/1911.00536](https://arxiv.org/abs/1911.00536) + +### How to use + +Now we are ready to try out how the model works as a chatting partner! + +```python +from transformers import AutoModelWithLMHead, AutoTokenizer +import torch + + +tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium") +model = AutoModelWithLMHead.from_pretrained("microsoft/DialoGPT-medium") + +# 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))) +``` diff --git a/model_cards/microsoft/DialoGPT-small/README.md b/model_cards/microsoft/DialoGPT-small/README.md index 709987ed..282913a8 100644 --- a/model_cards/microsoft/DialoGPT-small/README.md +++ b/model_cards/microsoft/DialoGPT-small/README.md @@ -1,3 +1,9 @@ +--- +thumbnail: https://huggingface.co/front/thumbnails/dialogpt.png +tags: +- conversational +--- + ## A State-of-the-Art Large-scale Pretrained Response generation model (DialoGPT) DialoGPT is a SOTA large-scale pretrained dialogue response generation model for multiturn conversations. @@ -18,3 +24,30 @@ The model is trained on 147M multi-turn dialogue from Reddit discussion thread. Please find the information about preprocessing, training and full details of the DialoGPT in the [original DialoGPT repository](https://github.com/microsoft/DialoGPT) ArXiv paper: [https://arxiv.org/abs/1911.00536](https://arxiv.org/abs/1911.00536) + +### How to use + +Now we are ready to try out how the model works as a chatting partner! + +```python +from transformers import AutoModelWithLMHead, AutoTokenizer +import torch + + +tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-small") +model = AutoModelWithLMHead.from_pretrained("microsoft/DialoGPT-small") + +# 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))) +```