Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -4,6 +4,7 @@ import numpy as np
|
|
| 4 |
import gradio as gr
|
| 5 |
from opacus import PrivacyEngine
|
| 6 |
from torch.utils.data import Dataset
|
|
|
|
| 7 |
|
| 8 |
# Load ParsBERT model and tokenizer
|
| 9 |
model_name = "HooshvareLab/bert-base-parsbert-uncased"
|
|
@@ -61,27 +62,31 @@ def train_model():
|
|
| 61 |
per_device_train_batch_size=4, # Reduced to avoid memory issues
|
| 62 |
save_steps=10_000,
|
| 63 |
save_total_limit=2,
|
| 64 |
-
|
| 65 |
logging_steps=100, # Log training progress
|
| 66 |
)
|
| 67 |
|
|
|
|
|
|
|
|
|
|
| 68 |
trainer = Trainer(
|
| 69 |
model=model,
|
| 70 |
args=training_args,
|
| 71 |
train_dataset=train_dataset,
|
|
|
|
| 72 |
)
|
| 73 |
|
| 74 |
# Add differential privacy
|
| 75 |
-
privacy_engine = PrivacyEngine()
|
| 76 |
-
private_model,
|
| 77 |
module=model,
|
| 78 |
-
optimizer=
|
| 79 |
data_loader=trainer.get_train_dataloader(),
|
| 80 |
noise_multiplier=1.1,
|
| 81 |
max_grad_norm=1.0,
|
| 82 |
)
|
| 83 |
|
| 84 |
-
trainer.optimizer =
|
| 85 |
trainer.train_dataloader = train_dataloader
|
| 86 |
trainer.model = private_model # Update trainer to use private model
|
| 87 |
|
|
|
|
| 4 |
import gradio as gr
|
| 5 |
from opacus import PrivacyEngine
|
| 6 |
from torch.utils.data import Dataset
|
| 7 |
+
from torch.optim import AdamW
|
| 8 |
|
| 9 |
# Load ParsBERT model and tokenizer
|
| 10 |
model_name = "HooshvareLab/bert-base-parsbert-uncased"
|
|
|
|
| 62 |
per_device_train_batch_size=4, # Reduced to avoid memory issues
|
| 63 |
save_steps=10_000,
|
| 64 |
save_total_limit=2,
|
| 65 |
+
use_cpu=True if not torch.cuda.is_available() else False, # Replace no_cuda with use_cpu
|
| 66 |
logging_steps=100, # Log training progress
|
| 67 |
)
|
| 68 |
|
| 69 |
+
# Initialize optimizer explicitly
|
| 70 |
+
optimizer = AdamW(model.parameters(), lr=5e-5)
|
| 71 |
+
|
| 72 |
trainer = Trainer(
|
| 73 |
model=model,
|
| 74 |
args=training_args,
|
| 75 |
train_dataset=train_dataset,
|
| 76 |
+
optimizers=(optimizer, None), # Pass optimizer explicitly
|
| 77 |
)
|
| 78 |
|
| 79 |
# Add differential privacy
|
| 80 |
+
privacy_engine = PrivacyEngine(secure_mode=False) # False for experimentation, set to True for production
|
| 81 |
+
private_model, private_optimizer, train_dataloader = privacy_engine.make_private(
|
| 82 |
module=model,
|
| 83 |
+
optimizer=optimizer,
|
| 84 |
data_loader=trainer.get_train_dataloader(),
|
| 85 |
noise_multiplier=1.1,
|
| 86 |
max_grad_norm=1.0,
|
| 87 |
)
|
| 88 |
|
| 89 |
+
trainer.optimizer = private_optimizer
|
| 90 |
trainer.train_dataloader = train_dataloader
|
| 91 |
trainer.model = private_model # Update trainer to use private model
|
| 92 |
|