adityss commited on
Commit
87ce30f
·
1 Parent(s): 8b17b2a

feat: add GridMind-RL GRPO training notebook for industrial energy management

Browse files
Files changed (1) hide show
  1. scripts/gridmind_grpo_colab.ipynb +25 -5
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 ['model', 'trainer']:\n",
225
  " if _var in globals():\n",
226
- " exec(f\"del {_var}\")\n",
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\"VRAM: {gpu_used_gb:.1f}GB / {gpu_total_gb:.1f}GB\")"
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
  {