Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -114,6 +114,21 @@ def setup_model(loaded_model_setup, prompt, model, seed, num_iterations, enable_
|
|
| 114 |
loaded_model_setup[0].prompt = prompt
|
| 115 |
|
| 116 |
return f"{model} model already loaded with the same configuration.", loaded_model_setup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
|
| 118 |
# Attempt to set up the model
|
| 119 |
try:
|
|
|
|
| 114 |
loaded_model_setup[0].prompt = prompt
|
| 115 |
|
| 116 |
return f"{model} model already loaded with the same configuration.", loaded_model_setup
|
| 117 |
+
else:
|
| 118 |
+
# If the model has changed, unload the previous model to free GPU memory
|
| 119 |
+
if previous_args.model != args.model:
|
| 120 |
+
print(f"Unloading previous model: {previous_args.model} from GPU.")
|
| 121 |
+
|
| 122 |
+
# Unload previous model (trainer and pipe) from GPU
|
| 123 |
+
trainer = loaded_model_setup[1] # The trainer is at position 1
|
| 124 |
+
if hasattr(trainer, 'model'):
|
| 125 |
+
# Move model to CPU first (optional, but ensures cleanup)
|
| 126 |
+
trainer.model.to('cpu')
|
| 127 |
+
del trainer.model # Delete the model to free memory
|
| 128 |
+
|
| 129 |
+
# Clear GPU memory
|
| 130 |
+
torch.cuda.empty_cache()
|
| 131 |
+
gc.collect()
|
| 132 |
|
| 133 |
# Attempt to set up the model
|
| 134 |
try:
|