Loading Baseline.py +18 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading @@ -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 = {} Loading @@ -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))) Loading @@ -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() Loading config/gigaword-L10_test.json 0 → 100644 +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 } } } config/gigaword-L8_neu.json +2 −2 Original line number Diff line number Diff line Loading @@ -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, Loading config/gigaword-L8_test.json 0 → 100644 +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 } } } scrl/rewards.py +17 −17 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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): Loading Loading @@ -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 Loading Loading @@ -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 Loading @@ -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() Loading Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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
Baseline.py +18 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading @@ -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 = {} Loading @@ -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))) Loading @@ -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() Loading
config/gigaword-L10_test.json 0 → 100644 +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 } } }
config/gigaword-L8_neu.json +2 −2 Original line number Diff line number Diff line Loading @@ -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, Loading
config/gigaword-L8_test.json 0 → 100644 +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 } } }
scrl/rewards.py +17 −17 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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): Loading Loading @@ -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 Loading Loading @@ -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 Loading @@ -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() Loading Loading @@ -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 Loading Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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