Spaces:
Sleeping
Sleeping
File size: 65,556 Bytes
0bfbe31 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import ast\n",
"import pandas as pd\n",
"import kagglehub\n",
"from kagglehub import KaggleDatasetAdapter"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# file_path = kagglehub.dataset_download(\"neelshah18/arxivdataset\")\n",
"# arxiv_df = pd.read_json(os.path.join(file_path, 'arxivData.json'))\n",
"file_path = \"~/.cache/kagglehub/datasets/neelshah18/arxivdataset/versions/2/arxivData.json\"\n",
"arxiv_df = pd.read_json(file_path)\n",
"arxiv_df = arxiv_df.drop(columns=['author', 'day', 'id', 'link', 'month', 'year'])\n",
"arxiv_df['tag'] = arxiv_df['tag'].apply(ast.literal_eval)\n",
"arxiv_df = arxiv_df.explode('tag').reset_index(drop=True)\n",
"arxiv_df['tag'] = arxiv_df['tag'].apply(lambda x: x['term'])\n",
"arxiv_df['text'] = arxiv_df['title'] + ' ' + arxiv_df['summary']\n",
"arxiv_df = arxiv_df.drop(columns=['title', 'summary'])\n",
"arxiv_df = arxiv_df[['text', 'tag']]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>text</th>\n",
" <th>tag</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Dual Recurrent Attention Units for Visual Ques...</td>\n",
" <td>cs.AI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Dual Recurrent Attention Units for Visual Ques...</td>\n",
" <td>cs.CL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Dual Recurrent Attention Units for Visual Ques...</td>\n",
" <td>cs.CV</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Dual Recurrent Attention Units for Visual Ques...</td>\n",
" <td>cs.NE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Dual Recurrent Attention Units for Visual Ques...</td>\n",
" <td>stat.ML</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Sequential Short-Text Classification with Recu...</td>\n",
" <td>cs.CL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Sequential Short-Text Classification with Recu...</td>\n",
" <td>cs.AI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Sequential Short-Text Classification with Recu...</td>\n",
" <td>cs.LG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Sequential Short-Text Classification with Recu...</td>\n",
" <td>cs.NE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Sequential Short-Text Classification with Recu...</td>\n",
" <td>stat.ML</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Multiresolution Recurrent Neural Networks: An ...</td>\n",
" <td>cs.CL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Multiresolution Recurrent Neural Networks: An ...</td>\n",
" <td>cs.AI</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Multiresolution Recurrent Neural Networks: An ...</td>\n",
" <td>cs.LG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Multiresolution Recurrent Neural Networks: An ...</td>\n",
" <td>cs.NE</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Multiresolution Recurrent Neural Networks: An ...</td>\n",
" <td>stat.ML</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" text tag\n",
"0 Dual Recurrent Attention Units for Visual Ques... cs.AI\n",
"1 Dual Recurrent Attention Units for Visual Ques... cs.CL\n",
"2 Dual Recurrent Attention Units for Visual Ques... cs.CV\n",
"3 Dual Recurrent Attention Units for Visual Ques... cs.NE\n",
"4 Dual Recurrent Attention Units for Visual Ques... stat.ML\n",
"5 Sequential Short-Text Classification with Recu... cs.CL\n",
"6 Sequential Short-Text Classification with Recu... cs.AI\n",
"7 Sequential Short-Text Classification with Recu... cs.LG\n",
"8 Sequential Short-Text Classification with Recu... cs.NE\n",
"9 Sequential Short-Text Classification with Recu... stat.ML\n",
"10 Multiresolution Recurrent Neural Networks: An ... cs.CL\n",
"11 Multiresolution Recurrent Neural Networks: An ... cs.AI\n",
"12 Multiresolution Recurrent Neural Networks: An ... cs.LG\n",
"13 Multiresolution Recurrent Neural Networks: An ... cs.NE\n",
"14 Multiresolution Recurrent Neural Networks: An ... stat.ML"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arxiv_df.head(15)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from torch.utils.data import Dataset, DataLoader, random_split\n",
"\n",
"class ArticleDataset(Dataset):\n",
" def __init__(self, data, tokenizer, label_encoder, max_length=256):\n",
" self.tokenizer = tokenizer\n",
" self.label_encoder = label_encoder\n",
" self.max_length = max_length\n",
" self.texts = data['text'].to_list()\n",
" self.labels = torch.tensor(self.label_encoder.fit_transform(data['tag'].to_list()))\n",
" assert len(self.texts) == len(self.labels)\n",
" \n",
" def __getitem__(self, index):\n",
" encoded_text = self.tokenizer(\n",
" self.texts[index],\n",
" padding=\"max_length\",\n",
" truncation=True,\n",
" max_length=self.max_length,\n",
" return_tensors=\"pt\"\n",
" )\n",
" return encoded_text['input_ids'].squeeze(0), encoded_text['attention_mask'].squeeze(0), self.labels[index]\n",
"\n",
" def __len__(self):\n",
" return len(self.labels)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"import torch.optim as optim\n",
"from transformers import DistilBertTokenizer, DistilBertForSequenceClassification\n",
"\n",
"tokenizer = DistilBertTokenizer.from_pretrained(\"distilbert-base-cased\")\n",
"label_encoder = LabelEncoder()\n",
"\n",
"dataset = ArticleDataset(arxiv_df, tokenizer, label_encoder)\n",
"\n",
"train_dataset, test_dataset = random_split(dataset, [0.8, 0.2])\n",
"train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)\n",
"test_loader = DataLoader(test_dataset, batch_size=32)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Some weights of DistilBertForSequenceClassification were not initialized from the model checkpoint at distilbert-base-cased and are newly initialized: ['classifier.bias', 'classifier.weight', 'pre_classifier.bias', 'pre_classifier.weight']\n",
"You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
]
}
],
"source": [
"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
"\n",
"model = DistilBertForSequenceClassification.from_pretrained(\"distilbert-base-cased\", num_labels=len(label_encoder.classes_))\n",
"model = model.to(device)\n",
"optimizer = optim.Adam(model.parameters(), lr=2e-5)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import clear_output\n",
"import matplotlib.pyplot as plt\n",
"from tqdm import tqdm\n",
"\n",
"train_losses = []\n",
"train_accuracies = []\n",
"\n",
"os.makedirs(\"checkpoints\", exist_ok=True)\n",
"\n",
"def train(model, epochs):\n",
" model.train()\n",
" for epoch in range(epochs):\n",
" print(f\"\\nEpoch {epoch+1}/{epochs}\")\n",
" \n",
" total_loss = 0\n",
" correct = 0\n",
" total = 0\n",
"\n",
" for input_ids, attn_mask, labels in tqdm(train_loader):\n",
" input_ids = input_ids.to(device)\n",
" attn_mask = attn_mask.to(device)\n",
" labels = labels.to(device)\n",
"\n",
" outputs = model(input_ids, attention_mask=attn_mask, labels=labels)\n",
" loss = outputs.loss\n",
" logits = outputs.logits\n",
"\n",
" total_loss += loss.item()\n",
" preds = torch.argmax(logits, dim=1)\n",
" correct += (preds == labels).sum().item()\n",
" total += labels.size(0)\n",
"\n",
" optimizer.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" # Средний loss и accuracy за эпоху\n",
" avg_loss = total_loss / len(train_loader)\n",
" accuracy = correct / total\n",
"\n",
" train_losses.append(avg_loss)\n",
" train_accuracies.append(accuracy)\n",
"\n",
" print(f\"Loss: {avg_loss:.4f} | Accuracy: {accuracy:.4f}\")\n",
"\n",
" # График потерь\n",
" clear_output(True)\n",
" plt.figure(figsize=(10, 4))\n",
" plt.subplot(1, 2, 1)\n",
" plt.plot(train_losses, marker='o')\n",
" plt.title(\"Training Loss\")\n",
" plt.xlabel(\"Epoch\")\n",
" plt.ylabel(\"Loss\")\n",
"\n",
" # График точности\n",
" plt.subplot(1, 2, 2)\n",
" plt.plot(train_accuracies, marker='o', color='green')\n",
" plt.title(\"Training Accuracy\")\n",
" plt.xlabel(\"Epoch\")\n",
" plt.ylabel(\"Accuracy\")\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" # Сохраняем чекпойнт\n",
" if (epoch + 1) % 4 == 0:\n",
" checkpoint_path = f\"checkpoints/epoch_{epoch+1}.pt\"\n",
" torch.save(model.state_dict(), checkpoint_path)\n",
" print(f\"Saved checkpoint: {checkpoint_path}\")\n",
"\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"\n",
"dict_to_save = {}\n",
"for ind, el in enumerate(label_encoder.classes_):\n",
" dict_to_save[ind] = el\n",
"\n",
"with open('checkpoints/labels_info.json', 'w') as f:\n",
" json.dump(dict_to_save, f)"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Обучаемых параметров: 2353909\n"
]
}
],
"source": [
"for param in model.distilbert.parameters():\n",
" param.requires_grad = False\n",
"\n",
"# Размораживаем только последний слой\n",
"# for param in model.distilbert.transformer.layer[-1].parameters():\n",
"# param.requires_grad = True\n",
"\n",
"# Также размораживаем классификационную голову\n",
"for param in model.classifier.parameters():\n",
" param.requires_grad = True\n",
" \n",
"def count_trainable_params(model):\n",
" total = sum(p.numel() for p in model.parameters() if p.requires_grad)\n",
" return total\n",
"\n",
"print(\"Обучаемых параметров:\", count_trainable_params(model))"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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gHvvvZchQ4Zke/2NN95g/vz5hIWFUbVqVQCioqJuer5y5crh7u7+j23gr7v9ly9ftj3WBX+NXMuNFStWkJqaynfffZdlRMDatWuztLsxPD8qKuqWd//79+/PQw89xPbt25k/fz4NGzakbt26uc4k8k90p1ukELvxLfj/fuudlpbGZ599ZlSkLOzs7GjXrh3ffvstZ8+ete0/cuQIP/zwQ568R3BwMF5eXkybNi3LMPAffviBAwcO0LlzZ+D6mqt/X/KjWrVquLm52Y77888/s91BCAoKAtAQcxGRYqao97G//vorJ06cICwsjJ49e2bbevfuzdq1azl79izlypWjVatWzJw5k5iYmCznufH5mM1munbtyooVK/j999+zvd+NdjcK4Q0bNtheS05Ots2enttr/99zwvUh4bNmzcrSrkOHDri5uREeHp7td4C/9/f3338/ZcuW5d1332X9+vW6yy15Sne6RQqxe+65h9KlSzNgwACeffZZTCYTc+fOLVDDu1977TV++uknmjdvzjPPPENmZiZTpkwhMDCQ3bt35+oc6enpvPnmm9n2e3p6MmTIEN59913CwsJo3bo1ffv2tS0ZVqVKFdtQs0OHDtG2bVt69epFnTp1sLe3Z9myZcTHx9OnTx8A5syZw2effUa3bt2oVq0aSUlJTJ8+HXd3dx544IE8+0xERKTgK+p97Pz587Gzs7N9Of13Dz74IK+88gqLFi1i1KhRfPzxx7Ro0YJGjRrx5JNP4u/vz4kTJ/j+++9t7/X222/z008/0bp1a5588klq165NbGwsS5YsYdOmTZQqVYoOHTpQqVIlnnjiCV544QXs7OyYOXMm5cqVy1bQ30yHDh1wdHSkS5cuPPXUU1y5coXp06fj5eVFbGysrZ27uzsffvghgwYNIiQkhEceeYTSpUuzZ88erl69mqXQd3BwoE+fPkyZMgU7Ozv69u2bqywiuaGiW6QQK1OmDCtXrmT06NGMGzeO0qVL8+ijj9K2bdscZ/o0QuPGjfnhhx94/vnnGT9+PH5+frz++uscOHAgVzO/wvU7C+PHj8+2v1q1agwZMoSBAwdSokQJ3nnnHV566SVcXV3p1q0b7777rm3omp+fH3379iUyMpK5c+dib29PQEAAX3/9NT169ACuT6S2bds2Fi1aRHx8PB4eHjRp0oT58+ffdCIXEREpmopyH5uens6SJUu455578PT0zLFNYGAg/v7+zJs3j1GjRtGgQQO2bNnC+PHjmTp1KikpKVSuXJlevXrZjvH19WXr1q2MHz+e+fPnk5iYiK+vL/fffz8lSpQArhe3y5YtY8iQIYwfP57y5cszcuRISpcuneMM8jmpVasWS5cuZdy4cTz//POUL1+eZ555hnLlyvH4449nafvEE0/g5eXFO++8wxtvvIGDgwMBAQG2L+X/V//+/ZkyZQpt27bFx8cnV1lEcsNkLUhf14lIsdG1a1f27dvH4cOHjY4iIiJSpKiPvTN79uwhKCiIr776iscee8zoOFKE6JluEcl3165dy/Lz4cOHWbVqFW3atDEmkIiISBGhPjbvTJ8+nZIlS9K9e3ejo0gRo+HlIpLvqlatysCBA6latSonT55k6tSpODo68uKLLxodTUREpFBTH/vvrVixgv379/PFF18wbNgwXF1djY4kRYyGl4tIvgsLC2Pt2rXExcXh5OREs2bNePvtt2nUqJHR0URERAo19bH/XpUqVYiPj6djx47MnTsXNzc3oyNJEaOiW0RERERERCSf6JluERERERERkXyioltEREREREQkn2gitRxYLBbOnj2Lm5sbJpPJ6DgiIlKMWK1WkpKSqFChAmazvhu/FfXZIiJilNz22Sq6c3D27Fn8/PyMjiEiIsXYqVOnqFixotExCjz12SIiYrRb9dkqunNwY8bCU6dO4e7ubnAaEREpThITE/Hz89PsubmkPltERIyS2z5bRXcObgxPc3d3VwcuIiKG0FDp3FGfLSIiRrtVn62HxURERERERETyiYpuERERERERkXyioltEREREREQkn6joFhEREREREcknKrpFRERERERE8omhRXd4eDghISG4ubnh5eVF165diY6O/sdj0tPTef3116lWrRrOzs40aNCA1atXZ2nz2muvYTKZsmwBAQH5eSkiIiJF3qeffkqVKlVwdnYmNDSUbdu23bRtREQEwcHBlCpVCldXV4KCgpg7d26WNleuXGHYsGFUrFgRFxcX6tSpw7Rp0/L7MkRERO4qQ5cMW79+PUOHDiUkJISMjAzGjh1Lhw4d2L9/P66urjkeM27cOObNm8f06dMJCAjgxx9/pFu3bvz22280bNjQ1q5u3br8/PPPtp/t7e/+pWZarGw7folzSSl4uTnTxN8TO7OWgBER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",
"text/plain": [
"<Figure size 1000x400 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saved checkpoint: checkpoints/epoch_8.pt\n"
]
}
],
"source": [
"model = train(model=model, epochs=8)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "my_env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|