Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4mode_name = 'liam168/chat-DialoGPT-small-en'
5tokenizer = AutoTokenizer.from_pretrained(mode_name)
6model = AutoModelForCausalLM.from_pretrained(mode_name)
7
8# Let's chat for 5 lines
9for step in range(5):
10 # encode the new user input, add the eos_token and return a tensor in Pytorch
11 new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
12
13 # append the new user input tokens to the chat history
14 bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
15
16 # generated a response while limiting the total chat history to 1000 tokens,
17 chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
18
19 # pretty print last ouput tokens from bot
20 print("Answer: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))