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)
|