diff options
Diffstat (limited to 'notebooks/Stat_Tests.ipynb')
-rw-r--r-- | notebooks/Stat_Tests.ipynb | 487 |
1 files changed, 487 insertions, 0 deletions
diff --git a/notebooks/Stat_Tests.ipynb b/notebooks/Stat_Tests.ipynb new file mode 100644 index 0000000..379df3c --- /dev/null +++ b/notebooks/Stat_Tests.ipynb @@ -0,0 +1,487 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "execution_state": "idle", + "id": "d3616030-9841-4eeb-a1c0-b4fa591e2fe1", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import scipy" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "execution_state": "idle", + "id": "e0ecfabf-f3ad-4ac3-a8de-97e71f9aff5a", + "metadata": {}, + "outputs": [], + "source": [ + "small_6M_ppls = [\n", + " (116.7, 114.9), # (LTR ppl, RTL ppl)\n", + " (117.4, 114.4),\n", + " (116.7, 115.0),\n", + " (117.4, 115.4),\n", + " (117.5, 113.8),\n", + " (116.1, 114.0)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "execution_state": "idle", + "id": "bacb5848-af91-4443-9d71-81b6cb0e6aa6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TtestResult(statistic=6.996032521277681, pvalue=1.9799032618443016e-05, df=9.885322295882748)\n", + "TtestResult(statistic=7.357072921297962, pvalue=0.0003642557582314903, df=5)\n" + ] + } + ], + "source": [ + "# One-sided unpaired Welch t-test\n", + "small_ltr_ppls, small_rtl_ppls = np.array(small_6M_ppls).T\n", + "print(scipy.stats.ttest_ind(small_ltr_ppls, small_rtl_ppls, equal_var=False, alternative=\"greater\"))\n", + "# Paired t-test\n", + "print(scipy.stats.ttest_rel(small_ltr_ppls, small_rtl_ppls, alternative=\"greater\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "execution_state": "idle", + "id": "c23d0ecf-c0f0-4a61-ac99-79c9c91c1d76", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0010822510822510823" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Permutation test\n", + "def statistic(x, y):\n", + " return np.mean(x) - np.mean(y)\n", + "\n", + "scipy.stats.permutation_test((small_ltr_ppls, small_rtl_ppls), statistic, n_resamples=np.inf, alternative=\"greater\").pvalue" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "execution_state": "idle", + "id": "d2bc01d6-821e-4a31-acd2-9d54592ab095", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0010822510822510823" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 9, + "execution_state": "idle", + "id": "d59a5f23-7306-478b-87cc-4a064675c48d", + "metadata": {}, + "outputs": [], + "source": [ + "small_6M_losses = [\n", + " (4.761364663504469, 4.744475745069383),\n", + " (4.76577, 4.73966), # (LTR loss, RTL loss)\n", + " (4.7599, 4.74497),\n", + " (4.76553, 4.74848),\n", + " (4.76638, 4.73508),\n", + " (4.75452, 4.73628)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "execution_state": "idle", + "id": "ab613d50-98a3-409d-92c2-123943a10c39", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TtestResult(statistic=7.221951304385972, pvalue=1.5856791940777708e-05, df=9.802083740534792)\n", + "TtestResult(statistic=7.866415444091634, pvalue=0.00026667826712639355, df=5)\n", + "0.0010822510822510823\n" + ] + } + ], + "source": [ + "small_ltr_losses, small_rtl_losses = np.array(small_6M_losses).T\n", + "print(scipy.stats.ttest_ind(small_ltr_losses, small_rtl_losses, equal_var=False, alternative=\"greater\"))\n", + "print(scipy.stats.ttest_rel(small_ltr_losses, small_rtl_losses, alternative=\"greater\"))\n", + "print(scipy.stats.permutation_test((small_ltr_losses, small_rtl_losses), statistic, n_resamples=np.inf, alternative=\"greater\").pvalue)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83aec592-de6e-43b9-9420-4b211641b75f", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 23, + "execution_state": "idle", + "id": "ea396600-66d9-45b4-b36c-4099c5548dec", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "execution_state": "idle", + "id": "c46997aa-65b5-4c49-8fa8-5c60d33362f5", + "metadata": {}, + "outputs": [], + "source": [ + "csv_filename = '../data/wandb_export_2024-12-04T19_56_43.325-05_00.csv'\n", + "df = pd.read_csv(csv_filename)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "execution_state": "idle", + "id": "7fcd8146-99cc-4322-8338-b58e58b36a30", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.drop([0, 1, 10, 11, 12, 15,16,17,18,19])" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "execution_state": "idle", + "id": "ae6a65ee-1300-4d79-b268-c5ebae8a3a99", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"val_ppl\"] = np.e ** df[\"val_loss\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "execution_state": "idle", + "id": "e1ebf94e-d645-4309-addc-aece1cc703ac", + "metadata": {}, + "outputs": [], + "source": [ + "transferred_ppl = np.array([24.4, 24.4, 21.9, 21.8, 18.1, 17.7]) # (rtl, ltr, rtl, ltr, ...)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "execution_state": "idle", + "id": "79f2b427-d430-4aa4-9cef-8dc4d3d9b00b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.legend.Legend at 0x7f40a395bc20>" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Cringe hardcoding\n", + "plt.plot([6, 11, 19, 35, 67], np.array(df[\"val_ppl\"])[1::2] - np.array(df[\"val_ppl\"])[::2], linewidth=2, label=\"Scratch\")\n", + "plt.plot([67, 110, 335], transferred_ppl[1::2] - transferred_ppl[::2], linewidth=2, label=\"Transferred\")\n", + "plt.axhline(y=0, color='gray', linestyle='--')\n", + "plt.xlabel(\"Parameter Count (in millions)\")\n", + "plt.ylabel(\"RTL PPL - LTR PPL\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "execution_state": "idle", + "id": "66ef4460-3a03-4017-845a-9ff04733985e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.legend.Legend at 0x7f40a33cdf40>" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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8+YxZMgQvbFF3333HePGjaNVq1ZMnTqVf//9l169elG+fHmqVKlitHPLTWFf49mzZzNnzhz8/PwYP3484eHhfPPNNxw7doyDBw9iZWVFamoq/v7+pKSkMHnyZFxdXblx4wbbtm0jLi4OBwcHzp07R8+ePWnUqBHvv/8+NjY2XLp0KUcyU1BlypShb9++fPfdd4SFhVG/fv0cdcaNG0elSpX4+OOPmTJlCs2bN9d139apU4dly5bpusizurl37dpFt27d8Pb2ZtasWajValauXEnHjh3Zv38/LVq00PuMl156idq1a/Pxxx/rksCPPvqI//3vf/Tv35/Ro0dz69YtvvrqK9q1a8fJkydxdHTU7X/37l26du1Kv3796N+/Pxs2bODNN9+kYcOGdOvWDYCMjAx69uxJcHAwAwcO5NVXX+XevXsEBQVx9uxZXezjxo1j1apVjBgxgilTphAREcHixYs5efKk7mv2OCkpKWzcuFHXzTto0CBGjBiRo1vu5s2btGjRgri4OMaOHUvdunW5ceMGGzZsICkpSa8ba8KECTg5OfHee+9x//59KGL31uDBg+nSpQuXL1/WXce1a9fy4osv5nq9du7cSbdu3ahRowazZ8/mwYMHfPXVV7Ru3ZoTJ07oBsSfOXOGLl264OTkxOzZs0lPT2fWrFl6wweyFOR+eZJq1aoBsH79el566SVKlSqV733btWvHjz/+qFd29epV3n33Xb2krTDjLfFM3fQmioesbsedO3cqt27dUq5fv65s2LBBcXJyUmxsbJTr16/n2MdQ3Y7JyclKRkaGXllERIRiY2OjvP/++7qy3bt3K4BSr149JSUlRVe+aNEiBVDOnDmjKIqipKamKs7OzoqXl5devWXLlimA0bsdb926pdy6dUu5dOmS8vnnnysqlUpp0KCBotFonhjHk65pTEyMYm1trXTp0kXvGi5evFgBlO+//15RFEU5efJkrl162S1YsEABlFu3bj0xrkc96XplHXvz5s26skevXdbX99EYc+si12g0Su3atRV/f3+965iUlKR4eHgonTt31pVldR8NGjRI77hXrlxRLCwslI8++kiv/MyZM4qlpaVeefv27RVA+eGHH3RlKSkpiqurqxIQEKAr+/777xVA+eKLL3Jcg6w49+/frwDKmjVr9LYHBgbmWp6bDRs2KIBy8eJFRVEUJSEh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x+rVq9m1axczZszQq5+UlMSnn37KihUrOHfuHM7Ozty7d49hw4Zx4MABDh8+TO3atenevTv37t3T2/eDDz5g6NChnDp1irp16zJ48GDGjRvHzJkzOX78OIqiMGnSJF39/fv3M3ToUF599VXCwsL49ttvWbVqlS5RyvoFvHLlSiIjI3Xvn7RfltmzZ9O3b1/OnDnDyJEjc1ybU6dOce7cOaZPn45anfPHXlbrzP379/H396dcuXIcO3aM9evXs3PnTr1zya/58+fTrFkzTp48yYQJExg/frwuiTh69CgAO3fuJDIykt9++y3XY8TGxhIWFkazZs2e6fPysnr1aipWrMjRo0eZPHky48eP56WXXqJVq1acOHGCLl268H//938kJSUV+PxzM2PGDDZu3Mjq1as5ceIEtWrVwt/fn9jYWL1677zzDvPnz+f48eNYWlrqfU2HDBlC5cqVOXbsGKGhobz11ltYWVnptletWhUXl/9v795Cmn7DOIB/N52npSGmpZBFrsmsNAXNsBBTiA4kdIKyOSi9EDoZdSc1L8oK7HwUxGqIRoQXufBQKdSyUHOWOs008yIPmJKYk+b2/C/++vu7Wmv+q2XxfGAX7/t7n/f37LfBHt69+20uHj9+/FNyZuyXIMbYH0elUlFycjIREVksFqqsrCR3d3c6fPiwzfF37twhPz8/oV1QUEAASK/X2z2P2Wwmb29vunfvntAHgLKysoR2TU0NAaD8/Hyhr6ioiDw8PIR2YmIinThxwmpujUZDgYGBVvOWlJRYjXE07uDBg3afx+3btwkAvXjxwu64vLw88vX1pZGREaFPq9WSWCym3t5eIiKKj4+nAwcOWMUlJyeTSqUS2gsWLKBdu3YJbYvFQgEBAXT16lUiInr79i0BoIaGBrv5NDQ0EADq7u626v8yh++dz5b4+HhatWqV0B4fHyepVEpKpVLo6+npIQBUU1NDRERVVVUEgIaGhogm3kezZ88Wxh87dowiIiKE9tT36cjICEkkEiosLBSOf/78mYKCguj06dNW8z948EAYo9VqCQAZjUYiIvL29qYbN27YvW6RkZGkVqvtjmHsd3L93cUfY+z/KS0txaxZs2AymWCxWLBz506o1WpgYkUlJycHra2tGB4exvj4OMbGxjA6OgovLy9gYv9OeHi41Zx9fX3IyspCdXU1+vv7YTabMTo6iu7ubqtxU+Pmzp0LAFi2bJlV39jYGIaHh+Hj44PGxkbodDqrFSuz2fxVTl9yNO57K0P/1mjfZzAYEBERAalUKvTFxcXBYrGgra1NeK6OmHqNRCIR5s2bh/7+fofjAcBoNAIAPDw8fsn5psa4uLjAz8/vq9cRwLTztqWjowMmkwlxcXFCn0QiQUxMDAwGwzfzCgwMFHIIDg7GoUOHkJaWBo1Gg6SkJGzbtg0hISFW8Z6enj9ttY6xX4G/dmTsD5WQkAC9Xo/29nYYjUbcvHkTUqkUXV1d2LhxI8LDw3H37l3U19fj8uXLACB8LYmJD6gvN06rVCro9XqcP38eT58+hV6vh5+fn1UcJj40J03OYatvchP/yMgIsrOzodfrhcerV6/Q3t5ut7BwNG5qsWSLXC4HALS2ttod5wixWPxVMWdrk//U64GJazLdHzXMmTMHADA0NPTdsf/nfLZi7L2OzmIvB7VajebmZmzYsAGPHj1CWFgYSkpKrOIHBwfh7+/v1JwZmw4uvhj7Q0mlUshkMgQHB8PV9b9F7Pr6elgsFuTm5iI2NhZyuRzv3793aE6dTof9+/dj/fr1WLJkCdzd3TEwMPDDuUZFRaGtrQ0ymeyrx+QeLIlEArPZPO04RyxfvhxhYWHIzc21WUhMbiBXKBRobGzEp0+fhGM6nQ5isRihoaEAAH9/f/T09AjHzWYzmpqapnU93NzchFh7QkJC4OPjg5aWlmnNPxOFhITAzc0NOp1O6DOZTKitrUVYWNi05pLL5cjMzERFRQU2b96MgoIC4djY2Bg6OjoQGRn5U/Nn7Gfi4ouxv4xMJoPJZMLFixfR2dkJjUaDa9euORS7ePFiaDQaGAwGPH/+HCkpKfD09PzhnI4ePYpbt24hOzsbzc3NMBgMKC4uRlZWljBm4cKFePjwIXp7e4WVHkfiHCESiVBQUIDXr19j9erVuH//Pjo7O/Hy5UscP34cycnJwMRmbg8PD6hUKjQ1NaGqqgr79u2DUqkUvoJbs2YNtFottFotWltbkZGR4fCv/yYFBATA09MTZWVl6Ovrw8ePH22OE4vFSEpKwpMnT6Y1/0wklUqRkZGBI0eOoKysDC0tLUhPT8fo6Cj27Nnj0BxGoxF79+5FdXU13r17B51Oh9raWigUCmHMs2fP4O7ujpUrV/7CZ8PYj+Hii7G/TEREBM6cOYNTp05h6dKlKCwsRE5OjkOx+fn5GBoaQlRUFJRKpXBbgB+1du1alJaWoqKiAtHR0YiNjcXZs2et7l2Vm5uLyspKzJ8/X1i1cCTOUTExMairq4NMJkN6ejoUCgU2bdqE5uZmnDt3DgDg5eWF8vJyDA4OIjo6Glu3bkViYiIuXbokzLN7926oVCqkpqYiPj4eixYtQkJCwrRycXV1xYULF3D9+nUEBQUJxZ8taWlpKC4u/ivuw3by5Els2bIFSqUSUVFRePPmDcrLy+Hr6+tQvIuLCz58+IDU1FTI5XJs374d69atQ3Z2tjCmqKgIKSkp39xHyNhMICJHd6IyxhhzOiLCihUrkJmZiR07dvzudGa0gYEBhIaGoq6uTriXGmMzEa98McbYDCYSiZCXl/dH/3WUs3R1deHKlStceLEZj1e+GGOMMcaciFe+GGOMMcaciIsvxhhjjDEn4uKLMcYYY8yJuPhijDHGGHMiLr4YY4wxxpyIiy/GGGOMMSfi4osxxhhjzIm4+GKMMcYYcyIuvhhjjDHGnOgfPWMbzfJaD7MAAAAASUVORK5CYII=", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Cringe hardcoding\n", + "plt.plot([6, 11, 19, 35, 67], np.array(df[\"val_loss\"])[1::2] - np.array(df[\"val_loss\"])[::2], linewidth=2, marker=\"o\", label=\"Scratch\")\n", + "plt.plot([67, 110, 335], np.log(transferred_ppl[1::2]) - np.log(transferred_ppl[::2]), linewidth=2, marker=\"o\", label=\"Transferred\")\n", + "plt.axhline(y=0, color='gray', linestyle='--')\n", + "plt.xlabel(\"Parameter Count (in millions)\")\n", + "plt.ylabel(\"RTL Loss - LTR Loss\")\n", + "plt.title(\"RTL and LTR Loss Difference Across Model Size\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "execution_state": "idle", + "id": "b492b7f4-7e93-444b-b5ba-1bdb5b6403f2", + "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>Name</th>\n", + " <th>val_loss</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>distilbert_base_japan_rtl</td>\n", + " <td>2.832614</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>distilbert_base_japan_ltr</td>\n", + " <td>2.823765</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>bert_6M_rtl_scratch</td>\n", + " <td>4.744476</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>bert_6_ltr_scratch</td>\n", + " <td>4.761365</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>bert_11_rtl_scratch</td>\n", + " <td>4.446950</td>\n", + " </tr>\n", + " <tr>\n", + " <th>5</th>\n", + " <td>bert_11_ltr_scratch</td>\n", + " <td>4.462379</td>\n", + " </tr>\n", + " <tr>\n", + " <th>6</th>\n", + " <td>bert_19_rtl_scratch</td>\n", + " <td>4.177320</td>\n", + " </tr>\n", + " <tr>\n", + " <th>7</th>\n", + " <td>bert_19_ltr_scratch</td>\n", + " <td>4.186271</td>\n", + " </tr>\n", + " <tr>\n", + " <th>8</th>\n", + " <td>bert_35_rtl_scratch</td>\n", + " <td>3.927857</td>\n", + " </tr>\n", + " <tr>\n", + " <th>9</th>\n", + " <td>bert_35_ltr_scratch</td>\n", + " <td>3.941595</td>\n", + " </tr>\n", + " <tr>\n", + " <th>10</th>\n", + " <td>qa_distilbert_base_ltr_v2</td>\n", + " <td>3.150267</td>\n", + " </tr>\n", + " <tr>\n", + " <th>11</th>\n", + " <td>qa_distilbert_base_rtl_v2</td>\n", + " <td>3.190452</td>\n", + " </tr>\n", + " <tr>\n", + " <th>12</th>\n", + " <td>qa_ltr_distilbert_base</td>\n", + " <td>3.325950</td>\n", + " </tr>\n", + " <tr>\n", + " <th>13</th>\n", + " <td>distilbert_base_ltr_scratch</td>\n", + " <td>3.686307</td>\n", + " </tr>\n", + " <tr>\n", + " <th>14</th>\n", + " <td>distilbert_base_rtl_scratch</td>\n", + " <td>3.688566</td>\n", + " </tr>\n", + " <tr>\n", + " <th>15</th>\n", + " <td>deep-monkey-11</td>\n", + " <td>3.009245</td>\n", + " </tr>\n", + " <tr>\n", + " <th>16</th>\n", + " <td>distilbert_base_ltr_4epoch</td>\n", + " <td>3.196100</td>\n", + " </tr>\n", + " <tr>\n", + " <th>17</th>\n", + " <td>distilbert_base_rtl_4epoch</td>\n", + " <td>3.193662</td>\n", + " </tr>\n", + " <tr>\n", + " <th>18</th>\n", + " <td>bert_base_ltr_4epoch</td>\n", + " <td>3.082236</td>\n", + " </tr>\n", + " <tr>\n", + " <th>19</th>\n", + " <td>bert_base_rtl_4epoch</td>\n", + " <td>3.088110</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " Name val_loss\n", + "0 distilbert_base_japan_rtl 2.832614\n", + "1 distilbert_base_japan_ltr 2.823765\n", + "2 bert_6M_rtl_scratch 4.744476\n", + "3 bert_6_ltr_scratch 4.761365\n", + "4 bert_11_rtl_scratch 4.446950\n", + "5 bert_11_ltr_scratch 4.462379\n", + "6 bert_19_rtl_scratch 4.177320\n", + "7 bert_19_ltr_scratch 4.186271\n", + "8 bert_35_rtl_scratch 3.927857\n", + "9 bert_35_ltr_scratch 3.941595\n", + "10 qa_distilbert_base_ltr_v2 3.150267\n", + "11 qa_distilbert_base_rtl_v2 3.190452\n", + "12 qa_ltr_distilbert_base 3.325950\n", + "13 distilbert_base_ltr_scratch 3.686307\n", + "14 distilbert_base_rtl_scratch 3.688566\n", + "15 deep-monkey-11 3.009245\n", + "16 distilbert_base_ltr_4epoch 3.196100\n", + "17 distilbert_base_rtl_4epoch 3.193662\n", + "18 bert_base_ltr_4epoch 3.082236\n", + "19 bert_base_rtl_4epoch 3.088110" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + " pd.read_csv(csv_filename)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fda6f102-904a-43e1-b078-258d39f1738f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} |