def debug(): parser = ArgumentParser() parser = PosDM.add_data_specific_args(parser) parser.add_argument( "--datasets", nargs="*", type=str, default=["taskmaster", "multiwoz", "metalwoz", "coached"], ) datasets = parser.parse_args().datasets parser = add_builder_specific_args(parser, datasets) # add for all builders args = parser.parse_args() dm = PosDM(args) dm.prepare_data() dm.setup("fit") pos_model = GramTrainer() for data in tqdm(dm.train_dset, desc=f"Train Pos"): pos_model.process(data["pos"]) stats = pos_model.finalize() sp_uni_prob = round(100 * stats["uni"]["SPEAKER"], 2) print(f"Speaker: {sp_uni_prob}%") # bigram max_prob = -1 all_sequences = [] all_probs = [] print("=" * 70) for w1, sp_prob in stats["bi"].items(): print(f"{w1} -> {round(100*sp_prob, 2)}%") all_sequences.append(w1) all_probs.append(sp_prob) print("-" * 70) all_probs, perm_idx = torch.tensor(all_probs).sort(descending=True) all_seq = [] for i in perm_idx: all_seq.append(all_sequences[i]) n = 50 for seq, prob in zip(all_seq[:n], all_probs[:n]): print(seq, "->", prob.item()) # trigram all_sequences = [] all_probs = [] print("=" * 70) for w1, w2s in stats["tri"].items(): for w2, sp_prob in w2s.items(): all_sequences.append((w1, w2)) all_probs.append(sp_prob) all_probs, perm_idx = torch.tensor(all_probs).sort(descending=True) all_seq = [] for i in perm_idx: all_seq.append(all_sequences[i]) n = 50 for seq, prob in zip(all_seq[:n], all_probs[:n]): print(seq, prob.item())
def load(): parser = ArgumentParser() parser.add_argument("--chunk_size", default=512, type=int) parser = TurnGPTEval.add_eval_specific_args(parser) # Data parser = TurnGPTDM.add_data_specific_args(parser) parser.add_argument( "--datasets", nargs="*", type=str, default=["coached"], ) parser.add_argument( "--split", type=str, default="train", # val, test ) temp_args, _ = parser.parse_known_args() # Add all datasets datasets = temp_args.datasets parser = add_builder_specific_args(parser, datasets) # add for all builders args = parser.parse_args() # Tokenizer tokenizer = torch.load(args.tokenizer) # Data dm = TurnGPTDM(args, tokenizer) dm.prepare_data() # Choose Model if args.model == "mini": from turngpt.models.gpt_mini import TurnGPTMini model = TurnGPTMini.load_from_checkpoint(checkpoint_path=args.checkpoint) elif args.model == "pretrained": from turngpt.models.pretrained import TurnGPTPretrained model = TurnGPTPretrained.load_from_checkpoint(checkpoint_path=args.checkpoint) return model, dm, args
elif temp_args.model == "sparse": from models.gpt_sparse import TurnGPTSparse parser = TurnGPTSparse.add_model_specific_args(parser) elif temp_args.model == "pretrained": from models.pretrained import TurnGPTPretrained parser = TurnGPTPretrained.add_model_specific_args(parser) elif temp_args.model == "rnn": from gpt_rnn import TurnGPTRnn parser = TurnGPTRnn.add_model_specific_args(parser) else: raise NotImplementedError( 'The model argument must be one of "mini", "sparse" or "pretrained"' ) # Add all datasets datasets = temp_args.datasets parser = add_builder_specific_args(parser, datasets) # add for all builders args = parser.parse_args() # Where to save the training print() print("-" * 70) args.save_dir = get_run_dir(__file__) print(args.save_dir) print() main(args)