HaotianHu commited on
Commit
d2b86f6
·
1 Parent(s): e225773

Update 13_Qwen2_7b_finetuning_l40.ipynb

Browse files
competition/13_Qwen2_7b_finetuning_l40.ipynb CHANGED
@@ -14,7 +14,7 @@
14
  },
15
  {
16
  "cell_type": "code",
17
- "execution_count": 1,
18
  "metadata": {
19
  "colab": {
20
  "base_uri": "https://localhost:8080/"
@@ -27,7 +27,7 @@
27
  "name": "stdout",
28
  "output_type": "stream",
29
  "text": [
30
- "workding dir: c:\\Users\\HT\\Documents\\URP\\logical-reasoning\n"
31
  ]
32
  }
33
  ],
@@ -44,7 +44,7 @@
44
  },
45
  {
46
  "cell_type": "code",
47
- "execution_count": 2,
48
  "metadata": {
49
  "colab": {
50
  "base_uri": "https://localhost:8080/"
@@ -56,22 +56,22 @@
56
  {
57
  "data": {
58
  "text/plain": [
59
- "False"
60
  ]
61
  },
62
- "execution_count": 2,
63
  "metadata": {},
64
  "output_type": "execute_result"
65
  }
66
  ],
67
  "source": [
68
- "need_to_setup_env = False\n",
69
  "need_to_setup_env"
70
  ]
71
  },
72
  {
73
  "cell_type": "code",
74
- "execution_count": 3,
75
  "metadata": {
76
  "colab": {
77
  "base_uri": "https://localhost:8080/"
@@ -79,7 +79,46 @@
79
  "id": "u0QXyHU_5DQR",
80
  "outputId": "54672b45-b5dc-48ef-efd2-5e8545e7b78b"
81
  },
82
- "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  "source": [
84
  "if need_to_setup_env:\n",
85
  " %pip install -r requirements.txt"
@@ -87,7 +126,7 @@
87
  },
88
  {
89
  "cell_type": "code",
90
- "execution_count": 12,
91
  "metadata": {
92
  "colab": {
93
  "base_uri": "https://localhost:8080/"
@@ -109,7 +148,7 @@
109
  "True"
110
  ]
111
  },
112
- "execution_count": 12,
113
  "metadata": {},
114
  "output_type": "execute_result"
115
  }
@@ -127,7 +166,7 @@
127
  },
128
  {
129
  "cell_type": "code",
130
- "execution_count": 14,
131
  "metadata": {
132
  "colab": {
133
  "base_uri": "https://localhost:8080/"
@@ -159,7 +198,7 @@
159
  },
160
  {
161
  "cell_type": "code",
162
- "execution_count": 19,
163
  "metadata": {
164
  "colab": {
165
  "base_uri": "https://localhost:8080/",
@@ -271,7 +310,7 @@
271
  "4 真相原来与一位年迈的农夫有关。这位农夫年轻时,曾与一位美丽的姑娘相恋。他们约定在南瓜丰收的季... "
272
  ]
273
  },
274
- "execution_count": 19,
275
  "metadata": {},
276
  "output_type": "execute_result"
277
  }
@@ -284,7 +323,7 @@
284
  },
285
  {
286
  "cell_type": "code",
287
- "execution_count": 20,
288
  "metadata": {
289
  "colab": {
290
  "base_uri": "https://localhost:8080/"
@@ -301,7 +340,7 @@
301
  " 'output': '不是'}"
302
  ]
303
  },
304
- "execution_count": 20,
305
  "metadata": {},
306
  "output_type": "execute_result"
307
  }
@@ -321,7 +360,7 @@
321
  },
322
  {
323
  "cell_type": "code",
324
- "execution_count": null,
325
  "metadata": {
326
  "colab": {
327
  "base_uri": "https://localhost:8080/"
@@ -334,7 +373,7 @@
334
  "name": "stdout",
335
  "output_type": "stream",
336
  "text": [
337
- "JSON file saved to /content/LLaMA-Factory/data/mgtv_train.json\n"
338
  ]
339
  }
340
  ],
@@ -343,7 +382,7 @@
343
  "import json\n",
344
  "\n",
345
  "# Define the directory where you want to save the JSON file\n",
346
- "output_dir = \"/content/LLaMA-Factory/data/\"\n",
347
  "\n",
348
  "# Ensure the directory exists\n",
349
  "os.makedirs(output_dir, exist_ok=True)\n",
@@ -358,6 +397,208 @@
358
  "print(f\"JSON file saved to {json_file_path}\")\n"
359
  ]
360
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
  {
362
  "cell_type": "code",
363
  "execution_count": null,
 
14
  },
15
  {
16
  "cell_type": "code",
17
+ "execution_count": 2,
18
  "metadata": {
19
  "colab": {
20
  "base_uri": "https://localhost:8080/"
 
27
  "name": "stdout",
28
  "output_type": "stream",
29
  "text": [
30
+ "working dir: c:\\Users\\HT\\Documents\\URP\\logical-reasoning\n"
31
  ]
32
  }
33
  ],
 
44
  },
45
  {
46
  "cell_type": "code",
47
+ "execution_count": 3,
48
  "metadata": {
49
  "colab": {
50
  "base_uri": "https://localhost:8080/"
 
56
  {
57
  "data": {
58
  "text/plain": [
59
+ "True"
60
  ]
61
  },
62
+ "execution_count": 3,
63
  "metadata": {},
64
  "output_type": "execute_result"
65
  }
66
  ],
67
  "source": [
68
+ "need_to_setup_env = True\n",
69
  "need_to_setup_env"
70
  ]
71
  },
72
  {
73
  "cell_type": "code",
74
+ "execution_count": 4,
75
  "metadata": {
76
  "colab": {
77
  "base_uri": "https://localhost:8080/"
 
79
  "id": "u0QXyHU_5DQR",
80
  "outputId": "54672b45-b5dc-48ef-efd2-5e8545e7b78b"
81
  },
82
+ "outputs": [
83
+ {
84
+ "name": "stdout",
85
+ "output_type": "stream",
86
+ "text": [
87
+ "Looking in indexes: https://artifacts.forge.mastercard.com/artifactory/api/pypi/python/simple\n",
88
+ "Requirement already satisfied: huggingface_hub==0.23.2 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 1)) (0.23.2)\n",
89
+ "Requirement already satisfied: nltk==3.8.1 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 2)) (3.8.1)\n",
90
+ "Requirement already satisfied: python-dotenv==1.0.1 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 3)) (1.0.1)\n",
91
+ "Requirement already satisfied: black==24.4.0 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 4)) (24.4.0)\n",
92
+ "Requirement already satisfied: evaluate==0.4.2 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 5)) (0.4.2)\n",
93
+ "Requirement already satisfied: rouge_score==0.1.2 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 6)) (0.1.2)\n",
94
+ "Requirement already satisfied: pytest==8.2.1 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 7)) (8.2.1)\n",
95
+ "Requirement already satisfied: seaborn==0.13.2 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 8)) (0.13.2)\n",
96
+ "Requirement already satisfied: scikit-learn==1.5.0 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 9)) (1.5.0)\n",
97
+ "Requirement already satisfied: jupyter in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 10)) (1.0.0)\n",
98
+ "Requirement already satisfied: ipywidgets in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 11)) (8.1.3)\n",
99
+ "Requirement already satisfied: packaging in c:\\users\\ht\\appdata\\roaming\\python\\python312\\site-packages (from -r requirements.txt (line 12)) (24.1)\n",
100
+ "Requirement already satisfied: langchain_openai==0.1.13 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 13)) (0.1.13)\n",
101
+ "Requirement already satisfied: wandb==0.17.4 in c:\\users\\ht\\appdata\\local\\programs\\python\\python312\\lib\\site-packages (from -r requirements.txt (line 14)) (0.17.4)\n",
102
+ "Note: you may need to restart the kernel to use updated packages.\n"
103
+ ]
104
+ },
105
+ {
106
+ "name": "stderr",
107
+ "output_type": "stream",
108
+ "text": [
109
+ "WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017A046EB3B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /artifactory/api/pypi/python/simple/transformers/\n",
110
+ "WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017A05F00EF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /artifactory/api/pypi/python/simple/transformers/\n",
111
+ "WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017A05F01820>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /artifactory/api/pypi/python/simple/transformers/\n",
112
+ "WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017A05F01220>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /artifactory/api/pypi/python/simple/transformers/\n",
113
+ "WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017A05F01A60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /artifactory/api/pypi/python/simple/transformers/\n",
114
+ "ERROR: Could not find a version that satisfies the requirement transformers==4.42.4 (from versions: none)\n",
115
+ "ERROR: No matching distribution found for transformers==4.42.4\n",
116
+ "\n",
117
+ "[notice] A new release of pip is available: 24.0 -> 24.1.2\n",
118
+ "[notice] To update, run: python.exe -m pip install --upgrade pip\n"
119
+ ]
120
+ }
121
+ ],
122
  "source": [
123
  "if need_to_setup_env:\n",
124
  " %pip install -r requirements.txt"
 
126
  },
127
  {
128
  "cell_type": "code",
129
+ "execution_count": 5,
130
  "metadata": {
131
  "colab": {
132
  "base_uri": "https://localhost:8080/"
 
148
  "True"
149
  ]
150
  },
151
+ "execution_count": 5,
152
  "metadata": {},
153
  "output_type": "execute_result"
154
  }
 
166
  },
167
  {
168
  "cell_type": "code",
169
+ "execution_count": 6,
170
  "metadata": {
171
  "colab": {
172
  "base_uri": "https://localhost:8080/"
 
198
  },
199
  {
200
  "cell_type": "code",
201
+ "execution_count": 7,
202
  "metadata": {
203
  "colab": {
204
  "base_uri": "https://localhost:8080/",
 
310
  "4 真相原来与一位年迈的农夫有关。这位农夫年轻时,曾与一位美丽的姑娘相恋。他们约定在南瓜丰收的季... "
311
  ]
312
  },
313
+ "execution_count": 7,
314
  "metadata": {},
315
  "output_type": "execute_result"
316
  }
 
323
  },
324
  {
325
  "cell_type": "code",
326
+ "execution_count": 8,
327
  "metadata": {
328
  "colab": {
329
  "base_uri": "https://localhost:8080/"
 
340
  " 'output': '不是'}"
341
  ]
342
  },
343
+ "execution_count": 8,
344
  "metadata": {},
345
  "output_type": "execute_result"
346
  }
 
360
  },
361
  {
362
  "cell_type": "code",
363
+ "execution_count": 9,
364
  "metadata": {
365
  "colab": {
366
  "base_uri": "https://localhost:8080/"
 
373
  "name": "stdout",
374
  "output_type": "stream",
375
  "text": [
376
+ "JSON file saved to LLaMA-Factory/data/mgtv_train.json\n"
377
  ]
378
  }
379
  ],
 
382
  "import json\n",
383
  "\n",
384
  "# Define the directory where you want to save the JSON file\n",
385
+ "output_dir = \"LLaMA-Factory/data/\"\n",
386
  "\n",
387
  "# Ensure the directory exists\n",
388
  "os.makedirs(output_dir, exist_ok=True)\n",
 
397
  "print(f\"JSON file saved to {json_file_path}\")\n"
398
  ]
399
  },
400
+ {
401
+ "cell_type": "code",
402
+ "execution_count": 10,
403
+ "metadata": {},
404
+ "outputs": [
405
+ {
406
+ "name": "stdout",
407
+ "output_type": "stream",
408
+ "text": [
409
+ "Sat Jul 20 22:46:57 2024 \n",
410
+ "+---------------------------------------------------------------------------------------+\n",
411
+ "| NVIDIA-SMI 535.98 Driver Version: 535.98 CUDA Version: 12.2 |\n",
412
+ "|-----------------------------------------+----------------------+----------------------+\n",
413
+ "| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
414
+ "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n",
415
+ "| | | MIG M. |\n",
416
+ "|=========================================+======================+======================|\n",
417
+ "| 0 NVIDIA GeForce RTX 3070 ... WDDM | 00000000:01:00.0 On | N/A |\n",
418
+ "| N/A 41C P8 15W / 140W | 1383MiB / 8192MiB | 2% Default |\n",
419
+ "| | | N/A |\n",
420
+ "+-----------------------------------------+----------------------+----------------------+\n",
421
+ " \n",
422
+ "+---------------------------------------------------------------------------------------+\n",
423
+ "| Processes: |\n",
424
+ "| GPU GI CI PID Type Process name GPU Memory |\n",
425
+ "| ID ID Usage |\n",
426
+ "|=======================================================================================|\n",
427
+ "| 0 N/A N/A 908 C ...ta\\Local\\Programs\\Ollama\\ollama.exe N/A |\n",
428
+ "| 0 N/A N/A 3092 C+G ...n\\126.0.2592.102\\msedgewebview2.exe N/A |\n",
429
+ "| 0 N/A N/A 7888 C+G ...mpt_builder\\LogiAiPromptBuilder.exe N/A |\n",
430
+ "| 0 N/A N/A 10552 C+G ...tionsPlus\\logioptionsplus_agent.exe N/A |\n",
431
+ "| 0 N/A N/A 10772 C+G C:\\Windows\\explorer.exe N/A |\n",
432
+ "| 0 N/A N/A 12996 C+G ....Search_cw5n1h2txyewy\\SearchApp.exe N/A |\n",
433
+ "| 0 N/A N/A 15364 C+G ...CBS_cw5n1h2txyewy\\TextInputHost.exe N/A |\n",
434
+ "| 0 N/A N/A 15944 C+G ...oogle\\Chrome\\Application\\chrome.exe N/A |\n",
435
+ "| 0 N/A N/A 16984 C+G ...t.LockApp_cw5n1h2txyewy\\LockApp.exe N/A |\n",
436
+ "| 0 N/A N/A 19196 C+G ...5n1h2txyewy\\ShellExperienceHost.exe N/A |\n",
437
+ "| 0 N/A N/A 19352 C+G ...ft Office\\root\\Office16\\ONENOTE.EXE N/A |\n",
438
+ "| 0 N/A N/A 21732 C+G ...aming\\Telegram Desktop\\Telegram.exe N/A |\n",
439
+ "| 0 N/A N/A 22920 C+G ...Desktop\\app-3.4.2\\GitHubDesktop.exe N/A |\n",
440
+ "| 0 N/A N/A 27608 C+G ...Programs\\Microsoft VS Code\\Code.exe N/A |\n",
441
+ "| 0 N/A N/A 30412 C+G ...8.0_x64__cv1g1gvanyjgm\\WhatsApp.exe N/A |\n",
442
+ "+---------------------------------------------------------------------------------------+\n"
443
+ ]
444
+ }
445
+ ],
446
+ "source": [
447
+ "!nvidia-smi"
448
+ ]
449
+ },
450
+ {
451
+ "cell_type": "code",
452
+ "execution_count": 25,
453
+ "metadata": {},
454
+ "outputs": [
455
+ {
456
+ "name": "stdout",
457
+ "output_type": "stream",
458
+ "text": [
459
+ "Git Bash Path: C:/Program Files/Git/bin/bash.exe\n",
460
+ "Script Path: scripts/tune-lf.sh\n",
461
+ "Config Path: config/qwen2_7b_lora_sft_4bit.yaml\n",
462
+ "Config file not found at config/qwen2_7b_lora_sft_4bit.yaml\n"
463
+ ]
464
+ },
465
+ {
466
+ "ename": "CalledProcessError",
467
+ "evalue": "Command '['bash', 'scripts/tune-lf.sh', 'config/qwen2_7b_lora_sft_4bit.yaml']' returned non-zero exit status 127.",
468
+ "output_type": "error",
469
+ "traceback": [
470
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
471
+ "\u001b[1;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
472
+ "File \u001b[1;32m<timed exec>:23\u001b[0m\n",
473
+ "File \u001b[1;32mc:\\Users\\HT\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py:571\u001b[0m, in \u001b[0;36mrun\u001b[1;34m(input, capture_output, timeout, check, *popenargs, **kwargs)\u001b[0m\n\u001b[0;32m 569\u001b[0m retcode \u001b[38;5;241m=\u001b[39m process\u001b[38;5;241m.\u001b[39mpoll()\n\u001b[0;32m 570\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m check \u001b[38;5;129;01mand\u001b[39;00m retcode:\n\u001b[1;32m--> 571\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CalledProcessError(retcode, process\u001b[38;5;241m.\u001b[39margs,\n\u001b[0;32m 572\u001b[0m output\u001b[38;5;241m=\u001b[39mstdout, stderr\u001b[38;5;241m=\u001b[39mstderr)\n\u001b[0;32m 573\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m CompletedProcess(process\u001b[38;5;241m.\u001b[39margs, retcode, stdout, stderr)\n",
474
+ "\u001b[1;31mCalledProcessError\u001b[0m: Command '['bash', 'scripts/tune-lf.sh', 'config/qwen2_7b_lora_sft_4bit.yaml']' returned non-zero exit status 127."
475
+ ]
476
+ }
477
+ ],
478
+ "source": [
479
+ "%%time\n",
480
+ "import subprocess\n",
481
+ "import os\n",
482
+ "\n",
483
+ "git_bash_path = r\"C:/Program Files/Git/bin/bash.exe\"\n",
484
+ "\n",
485
+ "script_path = \"scripts/tune-lf.sh\"\n",
486
+ "config_path = \"config/qwen2_7b_lora_sft_4bit.yaml\"\n",
487
+ "\n",
488
+ "# Print paths for debugging\n",
489
+ "print(f\"Git Bash Path: {git_bash_path}\")\n",
490
+ "print(f\"Script Path: {script_path}\")\n",
491
+ "print(f\"Config Path: {config_path}\")\n",
492
+ "\n",
493
+ "# Check if the files exist\n",
494
+ "if not os.path.exists(git_bash_path):\n",
495
+ " print(f\"Git Bash not found at {git_bash_path}\")\n",
496
+ "if not os.path.exists(script_path):\n",
497
+ " print(f\"Script not found at {script_path}\")\n",
498
+ "if not os.path.exists(config_path):\n",
499
+ " print(f\"Config file not found at {config_path}\")\n",
500
+ "\n",
501
+ "# Using Git Bash or WSL\n",
502
+ "subprocess.run(['bash', script_path, config_path], check=True)\n"
503
+ ]
504
+ },
505
+ {
506
+ "cell_type": "code",
507
+ "execution_count": 27,
508
+ "metadata": {},
509
+ "outputs": [
510
+ {
511
+ "name": "stdout",
512
+ "output_type": "stream",
513
+ "text": [
514
+ "Git Bash Path: C:/Program Files/Git/bin/bash.exe\n",
515
+ "Script Path: scripts/tune-lf.sh\n",
516
+ "Config Path: config/qwen2_7b_lora_sft_4bit.yaml\n",
517
+ "Config file not found at config/qwen2_7b_lora_sft_4bit.yaml\n",
518
+ "Command failed with error code: 127\n",
519
+ "Output: Current Directory:\n",
520
+ "/c/Users/HT/Documents/URP/logical-reasoning/llama-factory\n",
521
+ "config/qwen2_7b_lora_sft_4bit.yaml:\n",
522
+ " {\n",
523
+ " \"model_name_or_path\": \"Qwen/Qwen2-7B\",\n",
524
+ " \"stage\": \"sft\",\n",
525
+ " \"do_train\": true,\n",
526
+ " \"finetuning_type\": \"lora\",\n",
527
+ " \"lora_target\": \"all\",\n",
528
+ " \"quantization_bit\": 4,\n",
529
+ " \"loraplus_lr_ratio\": 16.0,\n",
530
+ " \"upcast_layernorm\": true,\n",
531
+ " \"dataset\": \"mgtv_train\",\n",
532
+ " \"template\": \"qwen\",\n",
533
+ " \"cutoff_len\": 4096,\n",
534
+ " \"max_samples\": 25000,\n",
535
+ " \"overwrite_cache\": true,\n",
536
+ " \"preprocessing_num_workers\": 16,\n",
537
+ " \"output_dir\": \"saves/qwen2_7b/lora/sft_4bit\",\n",
538
+ " \"logging_steps\": 562,\n",
539
+ " \"save_steps\": 562,\n",
540
+ " \"plot_loss\": true,\n",
541
+ " \"overwrite_output_dir\": true,\n",
542
+ " \"per_device_train_batch_size\": 32,\n",
543
+ " \"gradient_accumulation_steps\": 8,\n",
544
+ " \"learning_rate\": 0.0001,\n",
545
+ " \"num_train_epochs\": 3.0,\n",
546
+ " \"lr_scheduler_type\": \"cosine\",\n",
547
+ " \"warmup_ratio\": 0.1,\n",
548
+ " \"bf16\": true,\n",
549
+ " \"ddp_timeout\": 180000000,\n",
550
+ " \"val_size\": 0.1,\n",
551
+ " \"per_device_eval_batch_size\": 1,\n",
552
+ " \"eval_strategy\": \"steps\",\n",
553
+ " \"eval_steps\": 562,\n",
554
+ " \"report_to\": \"wandb\",\n",
555
+ " \"run_name\": \"qwen2_7b\"\n",
556
+ "}\n",
557
+ "\n",
558
+ "Error: scripts/tune-lf.sh: line 9: llamafactory-cli: command not found\n",
559
+ "\n"
560
+ ]
561
+ }
562
+ ],
563
+ "source": [
564
+ "import subprocess\n",
565
+ "import os\n",
566
+ "\n",
567
+ "git_bash_path = r\"C:/Program Files/Git/bin/bash.exe\"\n",
568
+ "\n",
569
+ "script_path = \"scripts/tune-lf.sh\"\n",
570
+ "config_path = \"config/qwen2_7b_lora_sft_4bit.yaml\"\n",
571
+ "\n",
572
+ "# Print paths for debugging\n",
573
+ "print(f\"Git Bash Path: {git_bash_path}\")\n",
574
+ "print(f\"Script Path: {script_path}\")\n",
575
+ "print(f\"Config Path: {config_path}\")\n",
576
+ "\n",
577
+ "# Check if the files exist\n",
578
+ "if not os.path.exists(git_bash_path):\n",
579
+ " print(f\"Git Bash not found at {git_bash_path}\")\n",
580
+ "if not os.path.exists(script_path):\n",
581
+ " print(f\"Script not found at {script_path}\")\n",
582
+ "if not os.path.exists(config_path):\n",
583
+ " print(f\"Config file not found at {config_path}\")\n",
584
+ "\n",
585
+ "# Ensure the script has execution permissions\n",
586
+ "os.chmod(script_path, 0o755)\n",
587
+ "\n",
588
+ "# Using Git Bash or WSL\n",
589
+ "try:\n",
590
+ " result = subprocess.run(\n",
591
+ " [git_bash_path, '-c', f'bash {script_path} {config_path}'], \n",
592
+ " check=True, capture_output=True, text=True\n",
593
+ " )\n",
594
+ " print(\"Output:\", result.stdout)\n",
595
+ " print(\"Error:\", result.stderr)\n",
596
+ "except subprocess.CalledProcessError as e:\n",
597
+ " print(\"Command failed with error code:\", e.returncode)\n",
598
+ " print(\"Output:\", e.stdout)\n",
599
+ " print(\"Error:\", e.stderr)\n"
600
+ ]
601
+ },
602
  {
603
  "cell_type": "code",
604
  "execution_count": null,