Spaces:
Runtime error
Runtime error
import os | |
from model import load_model, fine_tune_model, generate_stylized_summary | |
from data import prepare_stylized_dataset, prepare_dataset_for_training | |
from evaluation import evaluate_summaries | |
from ui import create_ui | |
from datasets import concatenate_datasets | |
def main(): | |
print("Starting Controlled Text Summarization System") | |
# 1. Load base model | |
print("Loading base model...") | |
model, tokenizer = load_model("facebook/bart-large-cnn") | |
# Check if we already have a fine-tuned model | |
if os.path.exists("./summarization_model") and os.path.isdir( | |
"./summarization_model" | |
): | |
print("Loading fine-tuned model...") | |
model, tokenizer = load_model("./summarization_model") | |
else: | |
# 2. Prepare dataset with stylized summaries | |
print("Preparing stylized dataset...") | |
df = prepare_stylized_dataset() | |
# 3. Fine-tune model | |
print("Fine-tuning model...") | |
# Prepare dataset for all styles | |
datasets = {} | |
for style in ["formal", "informal", "humorous", "poetic"]: | |
print(f"Preparing dataset for {style} style...") | |
datasets[style] = prepare_dataset_for_training(df, tokenizer, style) | |
# Combine datasets | |
combined_dataset = { | |
"train": concatenate_datasets( | |
[ | |
datasets["formal"]["train"], | |
datasets["informal"]["train"], | |
datasets["humorous"]["train"], | |
datasets["poetic"]["train"], | |
] | |
), | |
"validation": concatenate_datasets( | |
[ | |
datasets["formal"]["validation"], | |
datasets["informal"]["validation"], | |
datasets["humorous"]["validation"], | |
datasets["poetic"]["validation"], | |
] | |
), | |
} | |
# Fine-tune the model | |
print("Starting model fine-tuning...") | |
model = fine_tune_model(model, tokenizer, combined_dataset) | |
# 4. Evaluate the model (optional) | |
print("Evaluating model...") | |
try: | |
df = prepare_stylized_dataset() | |
test_texts = df["text"].tolist()[:5] # Sample for testing | |
results = {} | |
for style in ["formal", "informal", "humorous", "poetic"]: | |
generated_summaries = [ | |
generate_stylized_summary(text, model, tokenizer, style) | |
for text in test_texts | |
] | |
reference_summaries = df[f"summary_{style}"].tolist()[:5] | |
results[style] = evaluate_summaries( | |
generated_summaries, reference_summaries | |
) | |
print("Evaluation Results:", results) | |
except Exception as e: | |
print(f"Error during evaluation: {e}") | |
# 5. Launch UI | |
print("Launching UI...") | |
interface = create_ui(model, tokenizer) | |
interface.launch() | |
if __name__ == "__main__": | |
main() | |