Commit 666cc456 authored by wesenberg's avatar wesenberg
Browse files

8.

parent 46dc9b81
Loading
Loading
Loading
Loading
+18 −22
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ from transformers import AutoTokenizer

from wesenberg.Konstanten import MODEL_PATH, DEVICE_MODEL_PREDICTION, TOKENIZER, ROOT_PATH, \
    NAME_SOURCE_DATA, NAME_GOLD_DATA, LIST_MODEL_NAME, ALL_RESULTS_PATH, NAME_RESULTS_TXT, HUGGINGFACE_PATH, \
    LATEST_MODEL, BATCH_SIZE_ELEMENTS, CALC_ELEMENTS, SAFE_C_PROFILE_BASELINE
    LATEST_MODEL, BATCH_SIZE_ELEMENTS, CALC_ELEMENTS, SAFE_C_PROFILE_BASELINE, USE_AMR

from rouge_score import rouge_scorer

@@ -37,12 +37,11 @@ def get_sub_lists(list_input, n):
    lists = []
    tmp = []
    for i, data in enumerate(list_input):
        if i % n == 0:
            if i != 0:
        if i % n == 0 and i != 0:
            lists.append(tmp)
            tmp = []
        tmp.append(data)
    if len(list_input) % n != 0:
    if tmp not in lists:
        lists.append(tmp)
    return lists

@@ -59,8 +58,8 @@ if __name__ == '__main__':
        cp = cProfile.Profile()
        cp.enable()

    if DEVICE_MODEL_PREDICTION == "cuda":
        torch.cuda.empty_cache()
    # if DEVICE_MODEL_PREDICTION == "cuda":
        # torch.cuda.empty_cache()
    # loads huggingface dataset

    sources = read(HUGGINGFACE_PATH + NAME_SOURCE_DATA)
@@ -70,10 +69,6 @@ if __name__ == '__main__':
        sources = sources[0:CALC_ELEMENTS]
        gold = gold[0:CALC_ELEMENTS]

    list_rouge = []
    for (s, g) in zip(sources, gold):
        list_rouge.append(rouge_scorer.score(g, s))

    list_rouge_model_list = {}
    list_string_results_model = {}
    time_model_list = {}
@@ -85,7 +80,7 @@ if __name__ == '__main__':
        # 1. Textzusammenfassung
        lists_sources = get_sub_lists(sources, BATCH_SIZE_ELEMENTS)
        summaries = []
        print("Start to predict")
        print("Start to predict: " + model_name)
        for i, tmp_sources in enumerate(lists_sources):
            summaries = summaries + predict_summaries(model_name, tmp_sources)
            print(str((BATCH_SIZE_ELEMENTS * i) + len(tmp_sources)) + " / " + str(len(sources)))
@@ -94,18 +89,19 @@ if __name__ == '__main__':
        time_model_list[model_name] = str(time_model)

        list_rouge_model = []
        for (so, su) in zip(sources, summaries):
            list_rouge_model.append(rouge_scorer.score(su, so))
        for (go, su) in zip(gold, summaries):
            list_rouge_model.append(rouge_scorer.score(target=go, prediction=su))
        list_rouge_model_list[model_name] = list_rouge_model

        if USE_AMR:
            amr_class = AmrClass()
            list_string_results_stog = amr_class.calc_all_amr(sources=sources, summaries=summaries, gold=gold,
                                                              model_count=model_count, model_name=model_name)

            list_string_results_model[model_name] = list_string_results_stog

    util.write_string_to_file(path=ROOT_PATH + ALL_RESULTS_PATH, name=NAME_RESULTS_TXT,
                              list_string_results_model=list_string_results_model,
                                  time_model_list=time_model_list, list_rouge_model_list=list_rouge_model_list, list_rouge=list_rouge)
                              time_model_list=time_model_list, list_rouge_model_list=list_rouge_model_list)

    if SAFE_C_PROFILE_BASELINE:
        cp.disable()
+37 −0
Original line number Diff line number Diff line
{
  "loader": "loaders/gigaword.py",
  "dataset": "data/train-data/gigaword",
  "indices": "data/train-data/gigaword/indices.npy",
  "model_dir": "data/models/gigaword-L10_test",
  "verbose": true,
  "print_every": 1,
  "eval_every": 50,
  "save_every": 50,
  "max_val_steps": 8000,
  "max_train_seconds": null,
  "max_train_steps": 8000,
  "batch_size": 4,
  "learning_rate": 1e-05,
  "k_samples": 100,
  "sample_aggregation": "max",
  "loss": "pgb",
  "encoder_model_id": "distilroberta-base",
  "rewards": {
    "Fluency": {
      "weight": 1,
      "type": "masked",
      "model_id": "distilroberta-base",
      "max_score": 40.0,
      "norm": "max"
    },
    "BiEncoderSimilarity": {
      "weight": 1,
      "model_id": "all-distilroberta-v1"
    },
    "GaussianLength": {
      "weight": 1,
      "mean": 10,
      "std": 3.2
    }
  }
}
+2 −2
Original line number Diff line number Diff line
@@ -7,9 +7,9 @@
  "print_every": 1,
  "eval_every": 50,
  "save_every": 50,
  "max_val_steps": 8000,
  "max_val_steps": 10000,
  "max_train_seconds": null,
  "max_train_steps": 8000,
  "max_train_steps": 10000,
  "batch_size": 4,
  "learning_rate": 1e-05,
  "k_samples": 100,
+37 −0
Original line number Diff line number Diff line
{
  "loader": "loaders/gigaword.py",
  "dataset": "data/train-data/gigaword",
  "indices": "data/train-data/gigaword/indices.npy",
  "model_dir": "data/models/gigaword-L8_test",
  "verbose": true,
  "print_every": 1,
  "eval_every": 50,
  "save_every": 50,
  "max_val_steps": 8000,
  "max_train_seconds": null,
  "max_train_steps": 8000,
  "batch_size": 4,
  "learning_rate": 1e-05,
  "k_samples": 100,
  "sample_aggregation": "max",
  "loss": "pgb",
  "encoder_model_id": "distilroberta-base",
  "rewards": {
    "Fluency": {
      "weight": 1,
      "type": "masked",
      "model_id": "distilroberta-base",
      "max_score": 40.0,
      "norm": "max"
    },
    "BiEncoderSimilarity": {
      "weight": 1,
      "model_id": "all-distilroberta-v1"
    },
    "GaussianLength": {
      "weight": 1,
      "mean": 8,
      "std": 3.2
    }
  }
}
+17 −17
Original line number Diff line number Diff line
@@ -11,9 +11,9 @@ from pprint import pprint
from rouge_score import rouge_scorer

from wesenberg import util
from wesenberg.Konstanten import STOG_MODEL_GSII, BACKUP_REWARD_REGION_PATH, SAFE_REWARDS, STOG_MODEL_TRAIN
from wesenberg.Konstanten import BACKUP_REWARD_REGION_PATH, SAFE_REWARDS, STOG_MODEL_TRAIN
from wesenberg.SmatchClass import calc_smatch_to_r
from wesenberg.util import safe_txt_list
from wesenberg.util import safe_reward_list, safe_fluency_rewards

ROUGE_TYPES = ["rouge1", "rouge2", "rougeL"]
rouge_scorer = rouge_scorer.RougeScorer(
@@ -24,14 +24,14 @@ rouge_scorer = rouge_scorer.RougeScorer(
safe_score_region = {}


def do_safe_score_region():
def do_safe_score_region(step, reward_lists):
    if SAFE_REWARDS:
        safe_fluency_rewards(path=BACKUP_REWARD_REGION_PATH, name="mean_", reward_lists=reward_lists, step=step)
        keys = safe_score_region.keys()
        for key in keys:
            """old = load_txt_list(BACKUP_REWARD_REGION_PATH, key)
            if old is not None:
                safe_score_region[key] = safe_score_region[key] + old"""
            safe_txt_list(path=BACKUP_REWARD_REGION_PATH, name=key, safe_list=safe_score_region[key], n=100)
            safe_reward_list(path=BACKUP_REWARD_REGION_PATH, name=key, safe_list=safe_score_region[key], step=step, n=50)
            safe_score_region[key] = []



def load_rewards(args):
@@ -139,7 +139,7 @@ class Fluency:
                i_score = i_score_minmax
            scores.append(i_score)
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -167,7 +167,7 @@ class BiEncoderSimilarity:
            )[0, 0].item()
            scores.append(score)
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -190,7 +190,7 @@ class CrossEncoderSimilarity:
        ])

        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores.tolist())
            safe_score_region[self.name].append((sources, summaries, scores.tolist()))
        return scores.tolist()


@@ -252,7 +252,7 @@ class SelectedTokenSimilarity:
            scores.append(score)

        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -284,7 +284,7 @@ class NLIReward:
            for i, r in enumerate(rewards)
        ]
        if SAFE_REWARDS:
            safe_score_region[self.name].append(rewards)
            safe_score_region[self.name].append((sources, summaries, rewards))
        return rewards


@@ -307,7 +307,7 @@ class GaussianLength:
            for l in lens
        ]
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -333,7 +333,7 @@ class GaussianCR:
            for ratio in ratios
        ]
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -359,7 +359,7 @@ class NoDaysReward:
                score = 1.
            scores.append(score)
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -383,7 +383,7 @@ class RougeReward:
            score = rouge_scores[self.rouge_type].fmeasure
            scores.append(score)
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores


@@ -406,5 +406,5 @@ class AmrReward:
                score = 0
            scores.append(score)
        if SAFE_REWARDS:
            safe_score_region[self.name].append(scores)
            safe_score_region[self.name].append((sources, summaries, scores))
        return scores
Loading