Spaces:
No application file
No application file
Update main.py
Browse files
main.py
CHANGED
|
@@ -13,7 +13,7 @@ from transformers import (AutoTokenizer, BitsAndBytesConfig, MBart50TokenizerFas
|
|
| 13 |
MBartForConditionalGeneration, TrainingArguments,
|
| 14 |
DataCollatorForSeq2Seq)
|
| 15 |
from peft import LoraConfig, get_peft_model, TaskType, prepare_model_for_kbit_training
|
| 16 |
-
|
| 17 |
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| 18 |
|
| 19 |
MODELS = {
|
|
@@ -50,28 +50,6 @@ def summarize_text_mbart50(texts, model, tokenizer):
|
|
| 50 |
summaries = tokenizer.batch_decode(summary_ids, skip_special_tokens=True)
|
| 51 |
return summaries
|
| 52 |
|
| 53 |
-
|
| 54 |
-
def summarize_text_llama(texts, model, tokenizer):
|
| 55 |
-
prompts = [text for text in texts]
|
| 56 |
-
tokenizer.pad_token = tokenizer.eos_token
|
| 57 |
-
inputs = tokenizer(prompts, return_tensors="pt",
|
| 58 |
-
max_length=1024, truncation=True,
|
| 59 |
-
padding=True).to(model.device)
|
| 60 |
-
|
| 61 |
-
summary_ids = model.generate(
|
| 62 |
-
inputs.input_ids,
|
| 63 |
-
max_new_tokens=60,
|
| 64 |
-
temperature=0.7,
|
| 65 |
-
top_p=0.9,
|
| 66 |
-
num_beams=4,
|
| 67 |
-
length_penalty=2.0,
|
| 68 |
-
early_stopping=True
|
| 69 |
-
)
|
| 70 |
-
|
| 71 |
-
summaries = tokenizer.batch_decode(summary_ids, skip_special_tokens=True)
|
| 72 |
-
return summaries
|
| 73 |
-
|
| 74 |
-
|
| 75 |
def experiments(model_name, experiment_type, num_examples, finetune_type):
|
| 76 |
"""Runs an experiment with the given model and dataset."""
|
| 77 |
print(f"Starting Experiment: on {model_name}")
|
|
@@ -99,7 +77,6 @@ def experiments(model_name, experiment_type, num_examples, finetune_type):
|
|
| 99 |
elif model_name == "mBART50":
|
| 100 |
summarize_text = summarize_text_mbart50
|
| 101 |
|
| 102 |
-
# Call the appropriate function based on experiment type
|
| 103 |
if experiment_type == "zero-shot":
|
| 104 |
run_zero_shot(model_name, model, tokenizer, summarize_text, test, test_fr, test_cross)
|
| 105 |
elif experiment_type == "1-shot":
|
|
@@ -126,13 +103,10 @@ def run_zero_shot(model_name, model, tokenizer, summarize_text, test, test_fr, t
|
|
| 126 |
generated_summaries = []
|
| 127 |
for i in range(0, len(texts), batch_size):
|
| 128 |
batch_texts = texts[i:i + batch_size]
|
| 129 |
-
|
| 130 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 131 |
generated_summaries.extend(batch_summaries)
|
| 132 |
|
| 133 |
-
# print(f"\n{name} - Generated Summaries:\n", generated_summaries)
|
| 134 |
-
# print(f"\n{name} - Reference Summaries:\n", reference_summaries)
|
| 135 |
-
|
| 136 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 137 |
save_scores(scores, model_name, "zero-shot", name)
|
| 138 |
print(f"{name} Scores:", scores)
|
|
@@ -166,13 +140,10 @@ def run_1_shot(model_name, model, tokenizer, summarize_text, train, train_fr, tr
|
|
| 166 |
# Process in batches
|
| 167 |
for i in range(0, len(texts), batch_size):
|
| 168 |
batch_texts = texts[i:i + batch_size]
|
| 169 |
-
|
| 170 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 171 |
generated_summaries.extend(batch_summaries)
|
| 172 |
|
| 173 |
-
# print(f"\n{name} - Generated Summaries:\n", generated_summaries)
|
| 174 |
-
# print(f"\n{name} - Reference Summaries:\n", reference_summaries)
|
| 175 |
-
|
| 176 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 177 |
save_scores(scores, model_name, "1-shot", name)
|
| 178 |
print(f"{name} Scores:", scores)
|
|
@@ -208,12 +179,9 @@ def run_2_shot(model_name, model, tokenizer, summarize_text, train, train_fr, tr
|
|
| 208 |
for i in range(0, len(texts), batch_size):
|
| 209 |
batch_texts = texts[i:i + batch_size]
|
| 210 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 211 |
-
|
| 212 |
generated_summaries.extend(batch_summaries)
|
| 213 |
|
| 214 |
-
# print(f"\n{name} - Generated Summaries:\n", generated_summaries)
|
| 215 |
-
# print(f"\n{name} - Reference Summaries:\n", reference_summaries)
|
| 216 |
-
|
| 217 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 218 |
save_scores(scores, model_name, "2-shot", name)
|
| 219 |
print(f"{name} Scores:", scores)
|
|
|
|
| 13 |
MBartForConditionalGeneration, TrainingArguments,
|
| 14 |
DataCollatorForSeq2Seq)
|
| 15 |
from peft import LoraConfig, get_peft_model, TaskType, prepare_model_for_kbit_training
|
| 16 |
+
|
| 17 |
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| 18 |
|
| 19 |
MODELS = {
|
|
|
|
| 50 |
summaries = tokenizer.batch_decode(summary_ids, skip_special_tokens=True)
|
| 51 |
return summaries
|
| 52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
def experiments(model_name, experiment_type, num_examples, finetune_type):
|
| 54 |
"""Runs an experiment with the given model and dataset."""
|
| 55 |
print(f"Starting Experiment: on {model_name}")
|
|
|
|
| 77 |
elif model_name == "mBART50":
|
| 78 |
summarize_text = summarize_text_mbart50
|
| 79 |
|
|
|
|
| 80 |
if experiment_type == "zero-shot":
|
| 81 |
run_zero_shot(model_name, model, tokenizer, summarize_text, test, test_fr, test_cross)
|
| 82 |
elif experiment_type == "1-shot":
|
|
|
|
| 103 |
generated_summaries = []
|
| 104 |
for i in range(0, len(texts), batch_size):
|
| 105 |
batch_texts = texts[i:i + batch_size]
|
| 106 |
+
print(f"Processing batch {i//batch_size + 1}")
|
| 107 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 108 |
generated_summaries.extend(batch_summaries)
|
| 109 |
|
|
|
|
|
|
|
|
|
|
| 110 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 111 |
save_scores(scores, model_name, "zero-shot", name)
|
| 112 |
print(f"{name} Scores:", scores)
|
|
|
|
| 140 |
# Process in batches
|
| 141 |
for i in range(0, len(texts), batch_size):
|
| 142 |
batch_texts = texts[i:i + batch_size]
|
| 143 |
+
print(f"Processing batch {i//batch_size + 1}")
|
| 144 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 145 |
generated_summaries.extend(batch_summaries)
|
| 146 |
|
|
|
|
|
|
|
|
|
|
| 147 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 148 |
save_scores(scores, model_name, "1-shot", name)
|
| 149 |
print(f"{name} Scores:", scores)
|
|
|
|
| 179 |
for i in range(0, len(texts), batch_size):
|
| 180 |
batch_texts = texts[i:i + batch_size]
|
| 181 |
batch_summaries = summarize_text(batch_texts, model, tokenizer)
|
| 182 |
+
print(f"Processing batch {i//batch_size + 1}")
|
| 183 |
generated_summaries.extend(batch_summaries)
|
| 184 |
|
|
|
|
|
|
|
|
|
|
| 185 |
scores = compute_scores(generated_summaries, reference_summaries)
|
| 186 |
save_scores(scores, model_name, "2-shot", name)
|
| 187 |
print(f"{name} Scores:", scores)
|