diff --git "a/train_model.ipynb" "b/train_model.ipynb" deleted file mode 100644--- "a/train_model.ipynb" +++ /dev/null @@ -1,628 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:10:29.396188Z", - "iopub.status.busy": "2026-03-31T21:10:29.395841Z", - "iopub.status.idle": "2026-03-31T21:10:34.616444Z", - "shell.execute_reply": "2026-03-31T21:10:34.615562Z", - "shell.execute_reply.started": "2026-03-31T21:10:29.396156Z" - }, - "trusted": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33m WARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33m WARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33m WARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[33mWARNING: Keyring is skipped due to an exception: entry_points() got an unexpected keyword argument 'group'\u001b[0m\n", - "\u001b[31mERROR: Could not find a version that satisfies the requirement kagglehub (from versions: none)\u001b[0m\n", - "\u001b[31mERROR: No matching distribution found for kagglehub\u001b[0m\n" - ] - } - ], - "source": [ - "!pip3 install -q transformers datasets evaluate accelerate scikit-learn kagglehub matplotlib" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:10:34.618523Z", - "iopub.status.busy": "2026-03-31T21:10:34.618273Z", - "iopub.status.idle": "2026-03-31T21:10:36.957315Z", - "shell.execute_reply": "2026-03-31T21:10:36.956557Z", - "shell.execute_reply.started": "2026-03-31T21:10:34.618497Z" - }, - "trusted": true - }, - "outputs": [], - "source": [ - "# ── Data ──────────────────────────────────────────────────────────────────────\n", - "DATASET_NAME: str = \"neelshah18/arxivdataset\"\n", - "# https://huggingface.co/datasets/ccdv/arxiv-classification\n", - "MIN_CATEGORY_SAMPLES: int = 50\n", - "TEST_SIZE: float = 0.1\n", - "RANDOM_SEED: int = 42\n", - "\n", - "# ── Model ─────────────────────────────────────────────────────────────────────\n", - "MODEL_NAME: str = \"distilbert-base-uncased\"\n", - "MAX_SEQ_LENGTH: int = 512\n", - "\n", - "# ── Training ──────────────────────────────────────────────────────────────────\n", - "LEARNING_RATE: float = 2e-5\n", - "TRAIN_BATCH_SIZE: int = 16\n", - "EVAL_BATCH_SIZE: int = 64\n", - "NUM_EPOCHS: int = 1\n", - "WEIGHT_DECAY: float = 0.01\n", - "\n", - "# ── Paths ─────────────────────────────────────────────────────────────────────\n", - "OUTPUT_DIR: str = \"./results\"\n", - "SAVE_PATH: str = \"./my_arxiv_classifier\"\n", - "ARCHIVE_NAME: str = \"my_arxiv_classifier\"" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:10:36.960702Z", - "iopub.status.busy": "2026-03-31T21:10:36.960475Z", - "iopub.status.idle": "2026-03-31T21:10:40.760389Z", - "shell.execute_reply": "2026-03-31T21:10:40.759788Z", - "shell.execute_reply.started": "2026-03-31T21:10:36.960678Z" - }, - "trusted": true - }, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'kagglehub'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 3\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mos\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mkagglehub\u001b[39;00m\n\u001b[32m 4\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpandas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpd\u001b[39;00m\n\u001b[32m 6\u001b[39m dataset_dir: \u001b[38;5;28mstr\u001b[39m = kagglehub.dataset_download(DATASET_NAME)\n", - "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'kagglehub'" - ] - } - ], - "source": [ - "import os\n", - "\n", - "import kagglehub\n", - "import pandas as pd\n", - "\n", - "dataset_dir: str = kagglehub.dataset_download(DATASET_NAME)\n", - "json_file: str = next(f for f in os.listdir(dataset_dir) if f.endswith(\".json\"))\n", - "df = pd.read_json(os.path.join(dataset_dir, json_file))\n", - "\n", - "print(f\"Total papers: {len(df)}\")\n", - "display(df.head(2))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:10:40.761709Z", - "iopub.status.busy": "2026-03-31T21:10:40.761294Z", - "iopub.status.idle": "2026-03-31T21:11:23.157514Z", - "shell.execute_reply": "2026-03-31T21:11:23.156781Z", - "shell.execute_reply.started": "2026-03-31T21:10:40.761685Z" - }, - "trusted": true - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'df' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[3], line 13\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[1;32m 10\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124munknown\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m---> 13\u001b[0m df[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmacro_category\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[43mdf\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtag\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mapply(extract_macro_category)\n\u001b[1;32m 15\u001b[0m counts \u001b[38;5;241m=\u001b[39m df[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmacro_category\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mvalue_counts()\n\u001b[1;32m 16\u001b[0m valid_categories \u001b[38;5;241m=\u001b[39m counts[counts \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m MIN_CATEGORY_SAMPLES]\u001b[38;5;241m.\u001b[39mindex\n", - "\u001b[0;31mNameError\u001b[0m: name 'df' is not defined" - ] - } - ], - "source": [ - "import ast\n", - "\n", - "from datasets import Dataset\n", - "\n", - "def extract_macro_category(tag_string: str) -> str:\n", - " try:\n", - " tags = ast.literal_eval(tag_string)\n", - " return tags[0][\"term\"].split(\".\")[0]\n", - " except Exception:\n", - " return \"unknown\"\n", - "\n", - "\n", - "df[\"macro_category\"] = df[\"tag\"].apply(extract_macro_category)\n", - "\n", - "counts = df[\"macro_category\"].value_counts()\n", - "valid_categories = counts[counts >= MIN_CATEGORY_SAMPLES].index\n", - "df = df[df[\"macro_category\"].isin(valid_categories)].copy()\n", - "\n", - "df[\"text\"] = df[\"title\"] + \". \" + df[\"summary\"].str.replace(\"\\n\", \" \", regex=False)\n", - "\n", - "unique_categories: list[str] = sorted(df[\"macro_category\"].unique())\n", - "NUM_CLASSES: int = len(unique_categories)\n", - "label2id: dict[str, int] = {label: i for i, label in enumerate(unique_categories)}\n", - "id2label: dict[int, str] = {i: label for i, label in enumerate(unique_categories)}\n", - "\n", - "df[\"label\"] = df[\"macro_category\"].map(label2id)\n", - "\n", - "hf_dataset = Dataset.from_pandas(df[[\"text\", \"label\"]])\n", - "hf_dataset = hf_dataset.train_test_split(test_size=TEST_SIZE, seed=RANDOM_SEED)\n", - "\n", - "print(f\"Categories ({NUM_CLASSES}): {unique_categories}\")\n", - "print(hf_dataset)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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PD09efnllzMsV7duXZsJq+9kyOiwYcNshktOmTIlXS+4QYMGWXvrQGrPnjtZsfHG3jJVqlShfPnyma5/M/b29nh6elKsWDGaNGnC6NGjOXPmDF26dElXdvDgwUycOJESJUrg4OCAv78/Xbt2Zf369bdcNbVXr16MGDGCokWLZjisLleuXPz999+8/PLLeHh44OLiQtWqVZk/f751svkblSxZktGjR/Pyyy9TokQJPD09sbOzI2fOnNSsWZPx48fb9GCE1N4wu3bt4u2336ZEiRK4urpib2+Pn58fzz//PB9++CG7d++2qePv788ff/xBzZo173k+qvvN1dWVKVOmsGvXLnr37k3FihXx8vLCzs4OT09PqlatyvDhw216+7Vp04bffvuNihUr4uDggLe3N6+99hpbtmwhb968Nz3Xiy++yLfffkvp0qVtVou8nq+vL1u3bmXy5MnUq1cPHx8f7OzsyJEjB6VKleLNN9/kl19+sRl66eDgwPLlyxk8eDD58+fH0dGRkiVLMnbsWIYOHWrT/vW9suzs7Pjtt9+YO3cuTZs2xdfX1/qzXb16dUaNGsX27dtveU2ZkTZ8Ok1WLHhgMplwcnIid+7cVKxYkXbt2rF48WJ27tx5RwsNdO7cmcGDB/Pcc89RoEABnJ2dcXR0pECBArRu3Zr169fTsmVLmzrz58/npZdeIleuXA9k7rCOHTuydOlSatasiaurq/U9OSgoKN21fvzxx3z++ecUKVIEBwcHChUqxJAhQ1i/fv0te5De7v3mdvr27cvWrVtp164dhQoVwtHRERcXF0qXLk2/fv3Yu3cvderUueN2RUTk3pgMQ8vHiIiIiIjcibi4uAyTKAMGDGD06NFA6uqxV65cuWmC734JCQkhX758GIaBi4sLFy5cSDd/mIiIiGQ9zckmIiIiInKH6tatS9GiRalduzYFChTg2rVrLF++nF9//dVaplu3bg80wbZu3TpiYmIYP368dd7Ctm3bKsEmIiLygKgnm4iIiIjIHapUqVK6YbvXa9asGb///jtOTk4PLKYbh1LmzJmTPXv2kD9//gcWg4iIyJNMc7KJiIiIiNyh3r17ExgYSL58+XB2dsbJyYn8+fPTsmVL5s2bx5IlSx5ogu16OXPmpGnTpqxfv14JNhERkQdIPdlERERERERERETukXqyiYiIiIiIiIiI3CMl2URERERERERERO6RkmwiIiIiIiIiIiL3SEk2ERERERERERGRe6Qkm4iIiIiIiIiIyD1Skk1EREREREREROQeKckmIiIiIiIiIiJyj5RkExERERERERERuUdKsomIiIiIiIiIiNwjJdlERERERERERETukZJsIiIiIiIiIiIi90hJNhERERERERERkXukJJuIiIiIiIiIiMg9UpJNRERERERERETkHinJJiIiIiIiIiIico+UZBMREREREREREblHSrKJiIiIiIiIiIjcIyXZRERERERERERE7pGSbCIiIiIiIiIiIvdISTYRERERERGRO2Aymejdu3d2hyEiDxkl2URE7sD06dMxmUzWl7OzMyVKlKB3795cvHgxu8N77B0/fpxu3bpRtGhRnJ2d8fDwoGbNmowfP564uLg7bm/SpElMnz496wMVERGRR9LevXt55ZVXKFSoEM7OzuTLl4+GDRsyYcKE7A7tkafnOHkS2Gd3ACIij6KPP/6YIkWKEB8fz99//83kyZP5888/2bdvH66urtkd3mNp6dKltG7dGicnJ9q3b0+5cuVITEzk77//ZuDAgezfv5/vv//+jtqcNGkSPj4+dOzY8f4ELSIiIo+MzZs3U7duXQoWLEjXrl3x9/fn7NmzbNmyhfHjx9OnT5/sDvGRpec4eVIoySYicheaNGnCM888A0CXLl3w9vZmzJgxLFq0iNdffz2bo7MVHx+Po6MjZvPD3Xk5JiaGHDlyZHjs5MmTtGnThkKFCvHXX3+RJ08e67FevXpx7Ngxli5d+qBCfeBudW9EREQka3z22Wd4enqyfft2vLy8bI5dunTpgcfzKP3/r+e4m3uUvo9y7x7uT1wiIo+IevXqAakPEQBff/01zz77LN7e3ri4uFClShXmzZuXrl7afB6//PILJUuWxNnZmSpVqrBhw4Z0Zc+fP89bb72Fn58fTk5OlC1blh9//NGmzLp16zCZTMyePZuhQ4eSL18+XF1diYyMJCkpiY8++ojixYvj7OyMt7c3tWrVYtWqVbe8trQhshs2bKBbt254e3vj4eFB+/btuXbtWrryy5Yto3bt2uTIkQN3d3eaNWvG/v37bcp07NgRNzc3jh8/TtOmTXF3d6dt27Y3jWHkyJFER0czdepUmwezNMWKFeN///ufdXvatGnUq1cPX19fnJycKFOmDJMnT7ap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fvjhB+txi8XCxIkTberkyZOHSpUqMWPGDJvz7du3j5UrV1ofcDOjQoUKVKhQgSlTpvD777/Tpk2bLPsrtoiIyJNs7dq1Ns8PadLm3MpouODt2NnZpWtzwoQJNs+Jt5JVz1d6jkul5zi53/TdFBHJYs2aNWPMmDE0btyYN954g0uXLjFx4kSKFSvGnj170pUvV64cgYGBvPPOOzg5OTFp0iQAPvroI2uZL7/8krVr11K9enW6du1KmTJluHr1Kjt37mT16tVcvXr1tnGVKVOGOnXqUKVKFXLlysU///zDvHnz6N27d6auKzExkfr16/Pqq69y+PBhJk2aRK1atXjxxReB1OEAkydPpl27djz99NO0adOG3Llzc+bMGZYuXUrNmjX59ttvM3WuGz311FPMmjWL1157jdKlS9O+fXvKlStHYmIimzdvZu7cuXTs2BGARo0a4ejoyAsvvEC3bt2Ijo7mhx9+wNfXN91foKtUqcLkyZP59NNPKVasGL6+vtSrV4+BAweyePFimjdvTseOHalSpQoxMTHs3buXefPmcerUKXx8fGjZsiXVqlXj3Xff5dixY5QqVYrFixdbvx/X/4V11KhRNGnShICAADp37mxd+t3T05MRI0bc0f1o3749AwYMANAQAxERkSzSp08fYmNjeemllyhVqpT1OWPOnDkULlyYTp063XGbzZs35+eff8bT05MyZcoQFBTE6tWr8fb2zlT9rHq+0nOcnuPkAcm+hU1FRB49acugb9++/Zblpk6dahQvXtxwcnIySpUqZUybNs26pPf1AKNXr17GzJkzreUrV65srF27Nl2bFy9eNHr16mUUKFDAcHBwMPz9/Y369esb33//vbXM2rVrDcCYO3duuvqffvqpUa1aNcPLy8twcXExSpUqZXz22WcZLkuf0TWvX7/eePvtt42cOXMabm5uRtu2bW2WMb8+hsDAQMPT09NwdnY2nnrqKaNjx47GP//8Yy3ToUMHI0eOHLc8b0aOHDlidO3a1ShcuLDh6OhouLu7GzVr1jQmTJhgxMfHW8stXrzYqFChguHs7GwULlzY+Oqrr4wff/zRAIyTJ09ay4WGhhrNmjUz3N3dDcBmGfioqChjyJAhRrFixQxHR0fDx8fHePbZZ42vv/7a5p5dvnzZeOONNwx3d3fD09PT6Nixo7Fp0yYDMGbPnm0T/+rVq42aNWsaLi4uhoeHh/HCCy8YBw4csCmT9nNy+fLlm96HkJAQw87OzihRosQd30MRERHJ2LJly4y33nrLKFWqlOHm5mY4OjoaxYoVM/r06WNcvHjRpmzaM9yNChUqZHTo0MG6fe3aNaNTp06Gj4+P4ebmZgQGBhqHDh1KV+52z5iZeb7KiJ7j9BwnD5bJMDLoDysiIg+EyWSiV69ed/2XwQdh+vTpdOrUie3bt990sQextXDhQl566SX+/vtvatasmeXth4WFkSdPHoYNG8aHH36Y5e2LiIjI40HPcXdOz3FyLzQnm4iIyD2Ii4uz2U5JSWHChAl4eHjw9NNP35dzTp8+nZSUFNq1a3df2hcRERF5Eug5TrKa5mQTERG5B3369CEuLo6AgAASEhKYP38+mzdv5vPPP89w+fZ78ddff3HgwAE+++wzWrZsSeHChbO0fREREZEniZ7jJKspySYiInIP6tWrx+jRo1myZAnx8fEUK1aMCRMmZHpBiTvx8ccfs3nzZmrWrMmECROyvH0RERGRJ4me4ySraU42ERERERERERGRe6Q52URERERERERERO6RkmwiIiIiIiIiIiL3SHOyZRGLxcKFCxdwd3fHZDJldzgiIiIi8hgxDIOoqCjy5s2L2ay/k4uIiDyMlGTLIhcuXKBAgQLZHYaIiIiIPMbOnj1L/vz5szsMERERyYCSbFnE3d0dSH3w8fDwyOZoRERERORxEhkZSYECBazPnCIiIvLwUZIti6QNEfXw8FCSTURERETuC01LIiIi8vDShA4iIiIiIiIiIiL3SEk2ERERERERERGRe6Qk22OqT58+FChQAA8PD/Lly0ffvn1JTEy0KXPx4kVy5cpFpUqVbtlW4cKFcXFxwc3NDTc3N7y8vGyOr1q1iqeffhp3d3fKlCnD8uXLrcd++eUXa720l8lkYsyYMVl1qSIiIiIiIiIi2U5JtsdUz549OXToEJGRkezevZvdu3czcuRImzK9e/emcuXKmWrv119/JTo6mujoaMLDw637T5w4wUsvvcTHH39MREQEI0eOpFWrVpw4cQKAtm3bWutFR0ezfv16zGYzrVu3zrJrFRERERERERHJbkqyPaZKly5Njhw5ADAMA7PZzNGjR63HFy1axNWrV2nXrt09nWf58uU8/fTTNG/eHLPZTPPmzalWrRo//fRThuWnTp1K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4GlvCa/cPx+Fai7WZnkWJHhypBoXLKCygiEbERERERERkZF5MnjSqE1Q28MGdSTbfNtn6wTuPEjHrcRUxCSkITYpFXcepCMtU4eMLB0ysnP+TM/KvZ+NzGyR8/dH2zOzdVCZKGChUsLcVAlzlRIWKiUsVCawMjOBjbkprC1UsDE3hY2FKWwsVHCzNoOT1ixPPU+OTntcWRupptPp8Pnnn2Pp0qW4fv06nJ2dMWTIEIwfPx5jxozBxo0bcf/+fTg7O2Po0KGYNGmS3CVTCWHIRkRERERERFQBPGvEl1IhwcXaDE5aNWq7l3yQpXs0Gu1pNZWn0WmTJk3CsmXL8MUXX6BJkya4desWLly4gC+//BK//PIL1q9fDw8PD1y/fh3Xr1+Xu1wqQQzZiIiIiIiIiAhA6YVb5SlEe5YHDx5gwYIFWLhwIfr27QsAqFq1Kpo0aYJ33nkHvr6+aNKkCSRJgqenp8zVUklTyF0AEREREREREVF5dP78eaSnp6N169Z59vXr1w9RUVHw9/fHO++8gx07dshQIZUmhmxERERERERERIVgbm7+1H116tTBlStX8OGHHyI1NRXdu3fHq6++WorVUWljyEZEREREREREVAi+vr4wNzdHZGRkvvu1Wi169OiBZcuWYd26ddi4cSPi4+NLuUoqLZyTjYiIiIiIiIioEMzMzDBx4kRMmDABKpUKjRs3xp07d3D27FkkJibC1dUVwcHBUCgU2LBhA1xcXGBjYyN32VRCGLIRERERERERERXS+++/DxMTE0ybNg0xMTFwdXXF0KFD4eDggNmzZ+PixYtQKpWoV68etm7dCoWCFxUaK4ZsRERERERERESFpFAoMGXKFEyZMiXPvkGDBslQEcmF8SkREREREREREVERMWQjIiIiIiIiIiIqIoZsRERERERERERERcSQjYiIiIiIiIiIqIgYshERERERERERERURQzYiIiIiIiIiIqIiYshGRERERERERERURAzZiIiIiIiIiIiIioghGxERERERERERURExZCMiIiIiIiIiIioihmxERERERERERERFxJCNqIL55ZdfULt2bVhaWsLNzQ1LliwBALz//vsIDAyEiYkJRo0aZXDM33//jVdeeQUuLi6wsbFB48aNsX//fhmqJyIiIiIiIiqbGLIRVSDbt2/HsGHDMH/+fCQlJeHs2bNo0aIF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J/T7vby8AACvvPIKJEnS3weA7du3o0mTJrCxsYG9vT1eeuklXL58GQCe+fPF086Z+xovX74c3t7eMDMzAwBcu3YNL7/8MjQaDbRaLbp3747bt28/8/ko6mtMREREpCeInjBhwgRha2srIiIixKVLl8S+ffvEsmXLxJw5c4S7u7vYu3evuHr1qti3b59YvXq13OUWWExMjDAxMRHz5s0TV65cEadOnRKLFi0SDx48EN27dxft2rUTt27dErdu3RLp6elCCCE+/PBDsX//fnHlyhXxyy+/CGdnZ/HZZ58JIYR4+PChGDt2rKhRo4b+uIcPH8rZRSGEEM2bNxdWVlbiww8/FH///bf48MMPhVKpFO3btxdLly4Vf//9t3j77beFvb29SElJERkZGWLatGni6NGj4p9//hH/+9//hIWFhVi3bp0QQjz1+bly5YoAIKpVqyY2b94soqOjxauvvio8PT1FZmamLH1/++23hYeHh9i1a5c4deqUeOmll4SVlZV49913n3oMAGFvby+WLVsmoqOjxdSpU4VSqRTnzp0TQgh9P//66y8hhBA3btwQFhYWYtiwYeL8+fPip59+Eg4ODmL69Okl0qfmzZsLjUYj3n33XXHhwgX967N06VIhhBCenp7Czs5OLFq0SFy8eFHMmjVLKBQKceHCBSGEEKtWrRK2trYiLS1Nf8558+YJLy8vodPpxNGjR4VSqRSrV68WV69eFSdOnBALFiwwePzHn7/u3bsLd3d38eOPP4rLly+LXbt2ibVr1wohhBg+fLioXbu2OHr0qLhy5YrYuXOn+OWXX4r8HDztO+nx9+D27dvFuXPnRMOGDUXdunVFixYtxJ9//ilOnDghfHx8xNChQ/Xn69u3r9BoNKJHjx7izJkzYvPmzcLR0VFMnjz5mXV4enqKL774QgghRFZWlvD39xdt2rQRUVFRYt++faJ+/foCgPjpp5+K3OeC+Oijj/R9v3z5sli5cqVQq9Vi9+7d4v79+8LR0VFMmjRJnD9/Xpw4cUK0adNGtGzZUgjx7O/DzMxMYW1tLcaNGycuXbokzp07JyIiIsS///5bLHU/73Oa33NobW0tVq5cqb//rO9mIYSYPn260Gg0omvXruL06dNi7969wsXFRf8aJyQkiNDQUDFo0CD991pWVla+9a5cuVKYmpqKkJAQceDAAXHs2DFRv359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58/jyy+/RGhoKHx8fJCZmYmvvvoK//zzD77//nssWbLE4BxeXl5ITk5GZGQk7t69i4cPH8LPzw+9e/fGm2++iR9//BFXrlzBkSNHMGvWLP1caiNHjsTWrVsxb948XLx4Ef/3f/+Hbdu2QZIk/bnHjx+PiIgILF68GBcvXsS8efPw448/6hdXeBalUol+/fph0qRJ8PX1RWhoaPE+eURERERERGDIRkREAKpUqYITJ06gZcuWGDt2LGrWrIk2bdogMjISixcvRlBQEObNm4fPPvsMNWvWxKpVqzBr1iyDczRq1AhDhw5Fjx494OjoiNmzZwPIWc3zzTffxNixY+Hv748uXbrg6NGj8PDwAJAzt9qSJUswb948BAUFYfv27Rg9ejTMzMz05+7SpQsWLFiAzz//HDVq1MD//d//YeXKlWjRokWB+pd7WWv//v2L5wkjIiIiIiJ6AlcXJSKiMmfQoEG4cOEC9u3bVyzn27dvH1q3bo3r16/D2dm5WM5JRERERET0OC58QEREsvv888/Rpk0bWFpaYtu2bfj222/x9ddfF/m86enpuHPnDmbMmIHXXnuNARsREREREZUYXi5KRESyO3LkCNq0aYPAwEAsWbIEX375JQYOHFjk865Zswaenp5ISEjQX75KRERERERUEni5KBERERERERERURFxJBsREREREREREVERMWQjIiIiIiIiIiIqIoZsRERERERERERERcSQjYiIiIiIiIiIqIgYshERERERERERERURQzYiIiIiIiIiIqIiYshGRERERERERERURAzZiIiIiIiIiIiIioghGxERERERERERURH9P9xQpOSdse0tAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " count share\n", - "macro_category \n", - "cs 34597 84.6\n", - "stat 4782 11.7\n", - "math 612 1.5\n", - "q-bio 320 0.8\n", - "physics 216 0.5\n", - "cmp-lg 110 0.3\n", - "eess 75 0.2\n", - "quant-ph 66 0.2\n", - "cond-mat 65 0.2\n", - "astro-ph 59 0.1\n" - ] - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "category_counts = df[\"macro_category\"].value_counts().sort_values(ascending=False)\n", - "\n", - "fig, axes = plt.subplots(1, 2, figsize=(14, 5))\n", - "fig.suptitle(\"ArXiv Dataset — Category Distribution\", fontsize=14, fontweight=\"bold\")\n", - "\n", - "bars = axes[0].bar(category_counts.index, category_counts.values, color=\"steelblue\", edgecolor=\"white\")\n", - "axes[0].set_title(\"Papers per Category\")\n", - "axes[0].set_xlabel(\"Category\")\n", - "axes[0].set_ylabel(\"Count\")\n", - "for bar in bars:\n", - " axes[0].text(\n", - " bar.get_x() + bar.get_width() / 2,\n", - " bar.get_height() + 80,\n", - " f\"{int(bar.get_height()):,}\",\n", - " ha=\"center\", va=\"bottom\", fontsize=9,\n", - " )\n", - "\n", - "axes[1].pie(\n", - " category_counts.values,\n", - " labels=category_counts.index,\n", - " autopct=\"%1.1f%%\",\n", - " startangle=140,\n", - " wedgeprops={\"edgecolor\": \"white\", \"linewidth\": 1.2},\n", - ")\n", - "axes[1].set_title(\"Share per Category\")\n", - "\n", - "plt.tight_layout()\n", - "plt.show()\n", - "\n", - "print(category_counts.rename(\"count\").to_frame().assign(share=lambda d: (d[\"count\"] / d[\"count\"].sum() * 100).round(1)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:28:28.868441Z", - "iopub.status.busy": "2026-03-31T21:28:28.868127Z", - "iopub.status.idle": "2026-03-31T21:45:31.802835Z", - "shell.execute_reply": "2026-03-31T21:45:31.802120Z", - "shell.execute_reply.started": "2026-03-31T21:28:28.868415Z" - }, - "trusted": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "00d381c6d4fb44d391537826fd3549a6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Map: 0%| | 0/36811 [00:00 dict:\n", - " return tokenizer(\n", - " examples[\"text\"],\n", - " padding=\"max_length\",\n", - " truncation=True,\n", - " max_length=MAX_SEQ_LENGTH,\n", - " )\n", - "\n", - "\n", - "tokenized_datasets = hf_dataset.map(tokenize_function, batched=True)\n", - "\n", - "accuracy_metric = evaluate.load(\"accuracy\")\n", - "f1_metric = evaluate.load(\"f1\")\n", - "\n", - "def compute_metrics(eval_pred: tuple) -> dict[str, float]:\n", - " logits, labels = eval_pred\n", - " predictions = np.argmax(logits, axis=-1)\n", - " acc = accuracy_metric.compute(predictions=predictions, references=labels)[\"accuracy\"]\n", - " f1 = f1_metric.compute(predictions=predictions, references=labels, average=\"macro\")[\"f1\"]\n", - " return {\"accuracy\": acc, \"f1_macro\": f1}\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "execution": { - "iopub.execute_input": "2026-03-31T21:58:39.002835Z", - "iopub.status.busy": "2026-03-31T21:58:39.002480Z", - "iopub.status.idle": "2026-03-31T21:58:39.494213Z", - "shell.execute_reply": "2026-03-31T21:58:39.493551Z", - "shell.execute_reply.started": "2026-03-31T21:58:39.002806Z" - }, - "trusted": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training device: mps\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0d68ef5ab9614a11bfdec5646f09490e", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Loading weights: 0%| | 0/100 [00:00 24\u001b[0m training_args \u001b[38;5;241m=\u001b[39m \u001b[43mTrainingArguments\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 25\u001b[0m \u001b[43m \u001b[49m\u001b[43moutput_dir\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mOUTPUT_DIR\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 26\u001b[0m \u001b[43m \u001b[49m\u001b[43mlearning_rate\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mLEARNING_RATE\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 27\u001b[0m \u001b[43m \u001b[49m\u001b[43mper_device_train_batch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mTRAIN_BATCH_SIZE\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 28\u001b[0m \u001b[43m \u001b[49m\u001b[43mper_device_eval_batch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mEVAL_BATCH_SIZE\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 29\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_train_epochs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mNUM_EPOCHS\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 30\u001b[0m \u001b[43m \u001b[49m\u001b[43meval_strategy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mepoch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_strategy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mepoch\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 32\u001b[0m \u001b[43m \u001b[49m\u001b[43mload_best_model_at_end\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 33\u001b[0m \u001b[43m \u001b[49m\u001b[43mweight_decay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mWEIGHT_DECAY\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 34\u001b[0m \u001b[43m \u001b[49m\u001b[43mreport_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mnone\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 35\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_cpu\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mDEVICE\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcpu\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 36\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_mps_device\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mDEVICE\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmps\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 37\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 39\u001b[0m trainer \u001b[38;5;241m=\u001b[39m Trainer(\n\u001b[1;32m 40\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[1;32m 41\u001b[0m args\u001b[38;5;241m=\u001b[39mtraining_args,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 46\u001b[0m processing_class\u001b[38;5;241m=\u001b[39mtokenizer,\n\u001b[1;32m 47\u001b[0m )\n\u001b[1;32m 49\u001b[0m trainer\u001b[38;5;241m.\u001b[39mtrain()\n", - "\u001b[0;31mTypeError\u001b[0m: TrainingArguments.__init__() got an unexpected keyword argument 'use_mps_device'" - ] - } - ], - "source": [ - "import shutil\n", - "import torch\n", - "from transformers import AutoModelForSequenceClassification, DataCollatorWithPadding, Trainer, TrainingArguments\n", - "\n", - "\n", - "def get_device() -> str:\n", - " if torch.cuda.is_available():\n", - " return \"cuda\"\n", - " if torch.backends.mps.is_available():\n", - " return \"mps\"\n", - " return \"cpu\"\n", - "\n", - "\n", - "DEVICE = get_device()\n", - "print(f\"Training device: {DEVICE}\")\n", - "\n", - "model = AutoModelForSequenceClassification.from_pretrained(\n", - " MODEL_NAME,\n", - " num_labels=NUM_CLASSES,\n", - " id2label=id2label,\n", - " label2id=label2id,\n", - ")\n", - "\n", - "training_args = TrainingArguments(\n", - " output_dir=OUTPUT_DIR,\n", - " learning_rate=LEARNING_RATE,\n", - " per_device_train_batch_size=TRAIN_BATCH_SIZE,\n", - " per_device_eval_batch_size=EVAL_BATCH_SIZE,\n", - " num_train_epochs=NUM_EPOCHS,\n", - " eval_strategy=\"epoch\",\n", - " save_strategy=\"epoch\",\n", - " load_best_model_at_end=True,\n", - " weight_decay=WEIGHT_DECAY,\n", - " report_to=\"none\",\n", - " use_cpu=(DEVICE == \"cpu\"),\n", - ")\n", - "\n", - "trainer = Trainer(\n", - " model=model,\n", - " args=training_args,\n", - " train_dataset=tokenized_datasets[\"train\"],\n", - " eval_dataset=tokenized_datasets[\"test\"],\n", - " compute_metrics=compute_metrics,\n", - " data_collator=DataCollatorWithPadding(tokenizer=tokenizer),\n", - " processing_class=tokenizer,\n", - ")\n", - "\n", - "trainer.train()\n", - "\n", - "results = trainer.evaluate()\n", - "print(f\"Accuracy : {results['eval_accuracy']:.4f}\")\n", - "print(f\"F1 Macro : {results['eval_f1_macro']:.4f}\")\n", - "\n", - "trainer.save_model(SAVE_PATH)\n", - "tokenizer.save_pretrained(SAVE_PATH)\n", - "shutil.make_archive(ARCHIVE_NAME, \"zip\", SAVE_PATH)\n", - "print(f\"\\nModel saved to {SAVE_PATH}/ and archived as {ARCHIVE_NAME}.zip\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [ - "from transformers import pipeline\n", - "\n", - "classifier = pipeline(\"text-classification\", model=SAVE_PATH, top_k=None)\n", - "\n", - "test_articles: list[dict[str, str]] = [\n", - " {\n", - " \"title\": \"Attention Is All You Need\",\n", - " \"abstract\": \"The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely.\",\n", - " },\n", - " {\n", - " \"title\": \"Quantum Supremacy Using a Programmable Superconducting Processor\",\n", - " \"abstract\": \"The promise of quantum computers is that certain computational tasks might be executed exponentially faster on a quantum processor than on a classical processor. We report the use of a processor with programmable superconducting qubits to create quantum states on 53 qubits.\",\n", - " },\n", - " {\n", - " \"title\": \"chemistry of water\",\n", - " \"abstract\": \"chemistry of water.\",\n", - " },\n", - "]\n", - "\n", - "\n", - "def get_top95_predictions(text: str) -> list[tuple[str, float]]:\n", - " predictions = sorted(classifier(text)[0], key=lambda x: x[\"score\"], reverse=True)\n", - " result: list[tuple[str, float]] = []\n", - " cumulative = 0.0\n", - " for pred in predictions:\n", - " result.append((pred[\"label\"], pred[\"score\"]))\n", - " cumulative += pred[\"score\"]\n", - " if cumulative >= 0.95:\n", - " break\n", - " return result\n", - "\n", - "\n", - "for i, article in enumerate(test_articles, 1):\n", - " input_text = f\"{article['title']}. {article['abstract']}\"\n", - " top_preds = get_top95_predictions(input_text)\n", - " print(f\"Article {i}: {article['title']}\")\n", - " for label, score in top_preds:\n", - " print(f\" {label.upper()}: {score * 100:.2f}%\")\n", - " print(\"-\" * 50)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "trusted": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kaggle": { - "accelerator": "nvidiaTeslaT4", - "dataSources": [ - { - "databundleVersionId": 24958, - "datasetId": 1036, - "isSourceIdPinned": false, - "sourceId": 24919, - "sourceType": "datasetVersion" - } - ], - "dockerImageVersionId": 31329, - "isGpuEnabled": true, - "isInternetEnabled": true, - "language": "python", - "sourceType": "notebook" - }, - "kernelspec": { - "display_name": "Python 3", - "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.13.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}