Exemple #1
0
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())
Exemple #2
0
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
Exemple #3
0
    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)