def test_from_pipeline_conversation(self): model_id = "facebook/blenderbot_small-90M" # from model id conversation_agent_from_model_id = pipeline("conversational", model=model_id, tokenizer=model_id) # from model object model = BlenderbotSmallForConditionalGeneration.from_pretrained( model_id) tokenizer = BlenderbotSmallTokenizer.from_pretrained(model_id) conversation_agent_from_model = pipeline("conversational", model=model, tokenizer=tokenizer) conversation = Conversation("My name is Sarah and I live in London") conversation_copy = Conversation( "My name is Sarah and I live in London") result_model_id = conversation_agent_from_model_id([conversation]) result_model = conversation_agent_from_model([conversation_copy]) # check for equality self.assertEqual( result_model_id.generated_responses[0], "hi sarah, i live in london as well. do you have any plans for the weekend?", ) self.assertEqual( result_model_id.generated_responses[0], result_model.generated_responses[0], )
def Loader(): f = open("step.txt", "w") f.write("0") f.close() mname = 'facebook/blenderbot-90M' model = BlenderbotSmallForConditionalGeneration.from_pretrained(mname) tokenizer = BlenderbotSmallTokenizer.from_pretrained(mname) return tokenizer, model
def test_model(): model, _ = models() model.load_weights("models/tf_model.h5") tokenizer = BlenderbotSmallTokenizer(vocab_file="vocab.json", merges_file="merges.txt") input_data = tokenizer(["你 觉 得 大 学 生 应 该 是 什 么 样 子 的 。"], return_tensors="tf") output_ids = tf.expand_dims(1, 0)[None, :] output_act = tf.expand_dims(1, 0)[None, :] input_ids = input_data["input_ids"] input_act = input_data["attention_mask"] for i in range(127): predictions = model([input_ids, output_ids, input_act, output_act], training=False) predictions = predictions[:, -1:, :] predicted_id = tf.cast(tf.argmax(predictions, axis=-1), tf.int32) if tf.equal(predicted_id[0].numpy(), [2]): break output_ids = tf.concat([output_ids, predicted_id], axis=-1) print("".join(tokenizer.batch_decode(tf.squeeze(output_ids, axis=0)[1:])))
def __init__(self, size, env, device, max_context_length): """ The Blender chatbot model was proposed in Recipes for building an open-domain chatbot Stephen Roller, Emily Dinan, Naman Goyal, Da Ju, Mary Williamson, Yinhan Liu, Jing Xu, Myle Ott, Kurt Shuster, Eric M. Smith, Y-Lan Boureau, Jason Weston on 30 Apr 2020. Args: size (str): model size env (BaseEnv): dialogue environment device (str): device (one of ['CPU', 'CUDA', 'CUDA:N'] max_context_length (int): max history context length (it means that length of input context tokens) """ assert size in ['small', 'medium', 'large', 'xlarge'], \ "model size must be one of ['small', 'medium', 'large', 'xlarge']" if size == "small": super().__init__("facebook/blenderbot_small-90M", env) self.model = BlenderbotSmallForConditionalGeneration.from_pretrained( self.name).to(device) self.tokenizer = BlenderbotSmallTokenizer.from_pretrained( self.name) else: if size == "medium": super().__init__("facebook/blenderbot-400M-distill", env) elif size == "large": super().__init__("facebook/blenderbot-1B-distill", env) elif size == "xlarge": super().__init__("facebook/blenderbot-3B", env) self.model = BlenderbotForConditionalGeneration.from_pretrained( self.name).to(device) self.tokenizer = BlenderbotTokenizer.from_pretrained(self.name) self.size = size self.device = device.lower() self.max_context_length = max_context_length self.eos = "</s> <s>" print('Done!')
def tokenizer(self): return BlenderbotSmallTokenizer.from_pretrained(self.ckpt)
def tokenizer(self): # use "old" tokenizer here because of bug when downloading new tokenizer return BlenderbotSmallTokenizer.from_pretrained("facebook/blenderbot-90M")
def tokenizer(self): return BlenderbotSmallTokenizer.from_pretrained(self.model_name)
from transformers import TFBlenderbotSmallModel, BlenderbotSmallTokenizer, BlenderbotSmallConfig import tensorflow as tf from tensorflow import keras from config_ import cfg import numpy as np mname = 'facebook/blenderbot_small-90M' blen_model = TFBlenderbotSmallModel.from_pretrained(mname) tokenizer = BlenderbotSmallTokenizer.from_pretrained(mname) config = BlenderbotSmallConfig.from_pretrained(mname) que = [] ans = [] start_token = 1 end_token = 2 with open(cfg.data_file) as f: data = f.read().split("\n") state = None q = None a = None for i in range(len(data)): if data[i] != " " and data[i] != "": if data[i + 1] != "" and data[i + 1] != " ": if q is None: q = data[i] a = data[i + 1] que.append(q) ans.append(a)
tokenizer = GPT2Tokenizer.from_pretrained("microsoft/DialoGPT-small") #------dialogpt medium------# model = GPT2LMHeadModel.from_pretrained("microsoft/DialoGPT-medium") tokenizer = GPT2Tokenizer.from_pretrained("microsoft/DialoGPT-medium") print("dialogpt is done!") elif download_type == 'gptneo': #------gptneo small------# model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-neo-125M") tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-125M") #------gptneo large------# #model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-neo-1.3B") #tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-1.3B") print("gptneo is done!") elif download_type == 'blender': #------blender small------# model = BlenderbotSmallForConditionalGeneration.from_pretrained( "facebook/blenderbot_small-90M") tokenizer = BlenderbotSmallTokenizer.from_pretrained( "facebook/blenderbot_small-90M") #------blender medium------# model = BlenderbotForConditionalGeneration.from_pretrained( "facebook/blenderbot-400M-distill") tokenizer = BlenderbotTokenizer.from_pretrained( "facebook/blenderbot-400M-distill") print("blender is done!")
from transformers import BlenderbotSmallTokenizer import numpy as np from config_ import cfg token = BlenderbotSmallTokenizer(vocab_file="vocab.json", merges_file="merges.txt") que = [] ans = [] start_token = token.bos_token end_token = token.eos_token with open(cfg.data_file) as f: data = f.read().split("\n") state = None q = None a = None for i in range(len(data)): if data[i] != " " and data[i] != "": if data[i + 1] != "" and data[i + 1] != " ": if q is None: q = data[i] a = data[i + 1] que.append(q) ans.append(a) state = q + " | " + a continue if state is not None:
def get_model(): mname = 'facebook/blenderbot-90M' model = BlenderbotForConditionalGeneration.from_pretrained(mname) tokenizer = BlenderbotSmallTokenizer.from_pretrained(mname) return model, tokenizer