Spaces:
Sleeping
Sleeping
feat: add GridMind-RL GRPO training notebook for industrial energy management
Browse files
scripts/gridmind_grpo_colab.ipynb
CHANGED
|
@@ -216,20 +216,40 @@
|
|
| 216 |
"metadata": {},
|
| 217 |
"outputs": [],
|
| 218 |
"source": [
|
| 219 |
-
"import torch\n",
|
| 220 |
"import gc\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
"from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig\n",
|
| 222 |
"\n",
|
|
|
|
|
|
|
|
|
|
| 223 |
"# Clear previous model if it exists\n",
|
| 224 |
-
"for _var in [
|
| 225 |
" if _var in globals():\n",
|
| 226 |
-
"
|
| 227 |
"gc.collect()\n",
|
| 228 |
"torch.cuda.empty_cache()\n",
|
| 229 |
"\n",
|
| 230 |
"MODEL_NAME = \"Qwen/Qwen2.5-1.5B-Instruct\"\n",
|
| 231 |
"\n",
|
| 232 |
-
"print(f\"Loading {MODEL_NAME}...\")\n",
|
| 233 |
"tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)\n",
|
| 234 |
"if tokenizer.pad_token is None:\n",
|
| 235 |
" tokenizer.pad_token = tokenizer.eos_token\n",
|
|
@@ -253,7 +273,7 @@
|
|
| 253 |
"gpu_used_gb = torch.cuda.memory_allocated() / 1e9\n",
|
| 254 |
"\n",
|
| 255 |
"print(f\"Model loaded on {next(model.parameters()).device}\")\n",
|
| 256 |
-
"print(f\"
|
| 257 |
]
|
| 258 |
},
|
| 259 |
{
|
|
|
|
| 216 |
"metadata": {},
|
| 217 |
"outputs": [],
|
| 218 |
"source": [
|
|
|
|
| 219 |
"import gc\n",
|
| 220 |
+
"import importlib.metadata as importlib_metadata\n",
|
| 221 |
+
"import subprocess\n",
|
| 222 |
+
"import sys\n",
|
| 223 |
+
"\n",
|
| 224 |
+
"\n",
|
| 225 |
+
"def _ensure_package(package_name, pip_spec):\n",
|
| 226 |
+
" try:\n",
|
| 227 |
+
" version = importlib_metadata.version(package_name)\n",
|
| 228 |
+
" print(f\"{package_name} {version} already installed\")\n",
|
| 229 |
+
" except importlib_metadata.PackageNotFoundError:\n",
|
| 230 |
+
" print(f\"Installing {pip_spec}...\")\n",
|
| 231 |
+
" subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", \"-q\", \"-U\", pip_spec])\n",
|
| 232 |
+
"\n",
|
| 233 |
+
"\n",
|
| 234 |
+
"_ensure_package(\"bitsandbytes\", \"bitsandbytes>=0.46.1\")\n",
|
| 235 |
+
"_ensure_package(\"accelerate\", \"accelerate>=0.34.0\")\n",
|
| 236 |
+
"\n",
|
| 237 |
+
"import torch\n",
|
| 238 |
"from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig\n",
|
| 239 |
"\n",
|
| 240 |
+
"if not torch.cuda.is_available():\n",
|
| 241 |
+
" raise RuntimeError(\"CUDA GPU is not available. In Colab, set Runtime -> Change runtime type -> T4 GPU.\")\n",
|
| 242 |
+
"\n",
|
| 243 |
"# Clear previous model if it exists\n",
|
| 244 |
+
"for _var in [\"model\", \"trainer\"]:\n",
|
| 245 |
" if _var in globals():\n",
|
| 246 |
+
" del globals()[_var]\n",
|
| 247 |
"gc.collect()\n",
|
| 248 |
"torch.cuda.empty_cache()\n",
|
| 249 |
"\n",
|
| 250 |
"MODEL_NAME = \"Qwen/Qwen2.5-1.5B-Instruct\"\n",
|
| 251 |
"\n",
|
| 252 |
+
"print(f\"Loading {MODEL_NAME} with 4-bit quantization...\")\n",
|
| 253 |
"tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, trust_remote_code=True)\n",
|
| 254 |
"if tokenizer.pad_token is None:\n",
|
| 255 |
" tokenizer.pad_token = tokenizer.eos_token\n",
|
|
|
|
| 273 |
"gpu_used_gb = torch.cuda.memory_allocated() / 1e9\n",
|
| 274 |
"\n",
|
| 275 |
"print(f\"Model loaded on {next(model.parameters()).device}\")\n",
|
| 276 |
+
"print(f\"GPU memory: {gpu_used_gb:.2f} GB / {gpu_total_gb:.2f} GB\")\n"
|
| 277 |
]
|
| 278 |
},
|
| 279 |
{
|