{ "cells": [ { "cell_type": "code", "execution_count": 19, "id": "138889b92720ce2e", "metadata": { "ExecuteTime": { "end_time": "2024-04-30T15:08:02.398435Z", "start_time": "2024-04-30T15:08:02.194901Z" }, "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
runnameseedstepsagg_scorecommonsense_qa/acccommonsense_qa/acc_normhellaswag/acchellaswag/acc_normopenbookqa/accopenbookqa/acc_norm...siqa/accsiqa/acc_normwinogrande/accwinogrande/acc_normsciq/accsciq/acc_normarc/accarc/acc_normmmlu/accmmlu/acc_norm
0big-run-sampled_full_filtered_no_dedup600.3308930.1860.2330.2720.2580.1660.286...0.3670.3620.5160.4970.2090.2020.21950.25100.2302940.250147
1big-run-sampled_full_filtered_no_dedup610000.3605200.2540.2600.2900.2810.1380.256...0.3620.4000.5170.5240.5730.5150.26750.28950.2394890.251660
2big-run-sampled_full_filtered_no_dedup620000.3733150.2850.2780.3150.3230.1380.272...0.3650.3950.5090.4900.6770.5960.30750.32350.2503180.261019
3big-run-sampled_full_filtered_no_dedup630000.3882010.2940.2910.3270.3410.1520.298...0.3710.3960.5120.5040.7120.6210.32200.33900.2556460.266605
4big-run-sampled_full_filtered_no_dedup640000.3934120.3060.3070.3370.3600.1720.284...0.3800.4020.5220.5100.7290.6120.31000.33850.2530480.266798
..................................................................
670big-run-sampled_full_ind_minhash61630000.4818420.4270.3930.4880.5790.2420.358...0.4200.3970.5870.5680.8850.8090.47600.45950.3058430.330238
671big-run-sampled_full_ind_minhash61640000.4827270.4260.3940.4870.5820.2380.360...0.4220.3980.5750.5620.8850.8270.47450.46250.3073770.332317
672big-run-sampled_full_ind_minhash61650000.4824130.4230.3970.4820.5730.2380.360...0.4090.3960.5810.5690.8890.8290.46750.46000.3080590.331304
673big-run-sampled_full_ind_minhash61660000.4820140.4220.3910.4770.5730.2300.358...0.4200.4000.5860.5660.8830.8170.46600.46450.3049750.329611
674big-run-sampled_full_ind_minhash61670000.4865870.4240.4020.4900.5790.2360.360...0.4170.4050.5850.5750.8840.8320.47600.47150.3095030.332197
\n", "

675 rows × 22 columns

\n", "
" ], "text/plain": [ " runname seed steps agg_score \\\n", "0 big-run-sampled_full_filtered_no_dedup 6 0 0.330893 \n", "1 big-run-sampled_full_filtered_no_dedup 6 1000 0.360520 \n", "2 big-run-sampled_full_filtered_no_dedup 6 2000 0.373315 \n", "3 big-run-sampled_full_filtered_no_dedup 6 3000 0.388201 \n", "4 big-run-sampled_full_filtered_no_dedup 6 4000 0.393412 \n", ".. ... ... ... ... \n", "670 big-run-sampled_full_ind_minhash 6 163000 0.481842 \n", "671 big-run-sampled_full_ind_minhash 6 164000 0.482727 \n", "672 big-run-sampled_full_ind_minhash 6 165000 0.482413 \n", "673 big-run-sampled_full_ind_minhash 6 166000 0.482014 \n", "674 big-run-sampled_full_ind_minhash 6 167000 0.486587 \n", "\n", " commonsense_qa/acc commonsense_qa/acc_norm hellaswag/acc \\\n", "0 0.186 0.233 0.272 \n", "1 0.254 0.260 0.290 \n", "2 0.285 0.278 0.315 \n", "3 0.294 0.291 0.327 \n", "4 0.306 0.307 0.337 \n", ".. ... ... ... \n", "670 0.427 0.393 0.488 \n", "671 0.426 0.394 0.487 \n", "672 0.423 0.397 0.482 \n", "673 0.422 0.391 0.477 \n", "674 0.424 0.402 0.490 \n", "\n", " hellaswag/acc_norm openbookqa/acc openbookqa/acc_norm ... siqa/acc \\\n", "0 0.258 0.166 0.286 ... 0.367 \n", "1 0.281 0.138 0.256 ... 0.362 \n", "2 0.323 0.138 0.272 ... 0.365 \n", "3 0.341 0.152 0.298 ... 0.371 \n", "4 0.360 0.172 0.284 ... 0.380 \n", ".. ... ... ... ... ... \n", "670 0.579 0.242 0.358 ... 0.420 \n", "671 0.582 0.238 0.360 ... 0.422 \n", "672 0.573 0.238 0.360 ... 0.409 \n", "673 0.573 0.230 0.358 ... 0.420 \n", "674 0.579 0.236 0.360 ... 0.417 \n", "\n", " siqa/acc_norm winogrande/acc winogrande/acc_norm sciq/acc \\\n", "0 0.362 0.516 0.497 0.209 \n", "1 0.400 0.517 0.524 0.573 \n", "2 0.395 0.509 0.490 0.677 \n", "3 0.396 0.512 0.504 0.712 \n", "4 0.402 0.522 0.510 0.729 \n", ".. ... ... ... ... \n", "670 0.397 0.587 0.568 0.885 \n", "671 0.398 0.575 0.562 0.885 \n", "672 0.396 0.581 0.569 0.889 \n", "673 0.400 0.586 0.566 0.883 \n", "674 0.405 0.585 0.575 0.884 \n", "\n", " sciq/acc_norm arc/acc arc/acc_norm mmlu/acc mmlu/acc_norm \n", "0 0.202 0.2195 0.2510 0.230294 0.250147 \n", "1 0.515 0.2675 0.2895 0.239489 0.251660 \n", "2 0.596 0.3075 0.3235 0.250318 0.261019 \n", "3 0.621 0.3220 0.3390 0.255646 0.266605 \n", "4 0.612 0.3100 0.3385 0.253048 0.266798 \n", ".. ... ... ... ... ... \n", "670 0.809 0.4760 0.4595 0.305843 0.330238 \n", "671 0.827 0.4745 0.4625 0.307377 0.332317 \n", "672 0.829 0.4675 0.4600 0.308059 0.331304 \n", "673 0.817 0.4660 0.4645 0.304975 0.329611 \n", "674 0.832 0.4760 0.4715 0.309503 0.332197 \n", "\n", "[675 rows x 22 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "from matplotlib.figure import Figure\n", "\n", "df = pd.read_csv(\"../src_data/cross_ind_unfiltered_comparison.csv\")\n", "df" ] }, { "cell_type": "code", "execution_count": 20, "id": "b610f43caefdf01", "metadata": { "ExecuteTime": { "end_time": "2024-04-30T15:08:02.401852Z", "start_time": "2024-04-30T15:08:02.399712Z" }, "collapsed": false }, "outputs": [], "source": [ "runs_mapping = {\n", " \"big-run-refinedweb\": \"RefinedWeb\",\n", " \"big-run-fineweb-cross-dedup-fixed\": \"FineWeb full MinHash\",\n", " \"big-run-sampled_full_ind_minhash\": \"FineWeb independent MinHash\",\n", " \"big-run-sampled_full_filtered_no_dedup\": \"FineWeb filtered only\"\n", "}" ] }, { "cell_type": "code", "execution_count": 21, "id": "initial_id", "metadata": { "ExecuteTime": { "end_time": "2024-04-30T15:08:02.519228Z", "start_time": "2024-04-30T15:08:02.402938Z" }, "collapsed": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLBElEQVR4nO3deXRN5/7H8U8SMpEBkQEhhCo13qg0hipSKUr1Vg1VCS1tTVWp25pDq6KKq9fMbVHtLar0tjVW8GspNWtras3aSsyJOZI8vz+6cm6PJCRkEPv9Wuus5Tx59t7ffZ59zvnY03EwxhgBAABYkGNBFwAAAFBQCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEIAAMCyCEKFyNGjR+Xg4KC5c+cWdCm5ojCtT17UOnfuXDk4OOjo0aO5Nk/86b333lOlSpXk5OSkOnXqFHQ5ecbBwUEjR47MtfmtX79eDg4OWr9+fa7NE9kXFBSkbt26FXQZlkMQyiPpX3Lbtm0r6FIsb9q0aYUibBV2Y8aM0RdffFHQZWj16tV644031LBhQ82ZM0djxowp6JIA3MOKFHQBQF6bNm2afHx8+J9WHhszZozat2+vdu3aFWgda9eulaOjoz744AM5OzsXaC0A7n3sEQJwX7hy5Yok6dSpU3Jzc8u1EGSM0dWrV3NlXig4165dU1paWkGXgXsQQSgfdevWTcWLF9fvv/+udu3aqXjx4ipdurQGDhyo1NRUu74XLlxQt27d5OXlJW9vb0VFRenChQuZznf//v1q3769SpYsKVdXV9WrV09ffvmlXZ/0Q3XffvutXn75ZZUqVUqenp6KjIzU+fPnM8xzxYoVaty4sYoVKyYPDw+1bt1ae/bsuefWZ+PGjYqOjlbp0qVVrFgxPf300zp9+rStX1BQkPbs2aP/+7//k4ODgxwcHPTYY49luty8qlWS9uzZo2bNmsnNzU3lypXT6NGjM/1Qzuqcj5vPHcjpeGZm7dq1tjH29vbWU089pX379tn16datm4KCgjJMO3LkSDk4ONjVffnyZc2bN8/2OqfXm953//796tChgzw9PVWqVCn1799f165dyzDvjz/+WCEhIXJzc1PJkiXVqVMnnThxwq7PY489pho1amj79u169NFH5e7uriFDhsjBwUFz5szR5cuXbXWkHxZNSUnR22+/reDgYLm4uCgoKEhDhgzR9evXM7zWTz75pFatWqV69erJzc1NM2fOtJ0/s2jRIo0aNUply5aVh4eH2rdvr8TERF2/fl2vvfaafH19Vbx4cXXv3j3DvL/55hs1atRI3t7eKl68uKpWraohQ4bcdqyuX7+uAQMGqHTp0vLw8FDbtm3122+/Zdr3999/1wsvvCA/Pz+5uLjooYce0ocffpih32+//aZ27dqpWLFi8vX11YABAzLUm/56ZLY39bHHHrN7L6W/PgsXLtSQIUPk7++vYsWKqW3bthnGLzPHjh1T7969VbVqVbm5ualUqVJ69tlnMz2H7sKFCxowYICCgoLk4uKicuXKKTIyUmfOnLGrZcGCBRo2bJjKli0rd3d3JSUlSZI+++wz2zbm4+Oj559/Xr///rvdMuLj49W9e3eVK1dOLi4uCggI0FNPPWVXz7Zt2xQRESEfHx+5ubmpYsWKeuGFF267rsYYjR49WuXKlZO7u7uaNm2a4fNVyvg+S5fZ+YXp2+369ett223NmjVt53stWbJENWvWlKurq0JCQrRz5067eaZ/nh8+fFgREREqVqyYypQpo7feekvGGLu+CxYsUEhIiDw8POTp6amaNWvq/fffv+1636s4NJbPUlNTFRERodDQUI0fP15r1qzRhAkTFBwcrF69ekn6803y1FNPacOGDXrllVdUrVo1LV26VFFRURnmt2fPHjVs2FBly5bVoEGDVKxYMS1atEjt2rXT559/rqefftquf9++feXt7a2RI0fqwIEDmj59uo4dO2b74JCk+fPnKyoqShEREXr33Xd15coVTZ8+XY0aNdLOnTvtvhgLen369eunEiVKKCYmRkePHtWkSZPUt29fLVy4UJI0adIk9evXT8WLF9fQoUMlSX5+flmOT17UGh8fr6ZNmyolJcXWb9asWXJzc8uyjuzKznhmZs2aNWrZsqUqVaqkkSNH6urVq5o8ebIaNmyoHTt2ZBp+bmX+/Pnq0aOH6tevr5deekmSFBwcbNenQ4cOCgoKUmxsrDZv3qx//etfOn/+vD766CNbn3feeUfDhw9Xhw4d1KNHD50+fVqTJ0/Wo48+qp07d8rb29vW9+zZs2rZsqU6deqk559/Xn5+fqpXr55mzZqlLVu26N///rckqUGDBpKkHj16aN68eWrfvr1ef/11/fDDD4qNjdW+ffu0dOlSu1oPHDigzp076+WXX1bPnj1VtWpV299iY2Pl5uamQYMG6eDBg5o8ebKKFi0qR0dHnT9/XiNHjtTmzZs1d+5cVaxYUSNGjJD05/by5JNPqlatWnrrrbfk4uKigwcPauPGjbd9fXv06KGPP/5Yzz33nBo0aKC1a9eqdevWGfolJCTokUcekYODg/r27avSpUtrxYoVevHFF5WUlKTXXntNknT16lU1b95cx48f16uvvqoyZcpo/vz5Wrt27W1ruZ133nlHDg4OevPNN3Xq1ClNmjRJ4eHh2rVr1y23+a1bt+r7779Xp06dVK5cOR09elTTp0/XY489pr1798rd3V2SdOnSJTVu3Fj79u3TCy+8oL/97W86c+aMvvzyS/3222/y8fGxzfPtt9+Ws7OzBg4cqOvXr8vZ2Vlz585V9+7d9fDDDys2NlYJCQl6//33tXHjRrtt7JlnntGePXvUr18/BQUF6dSpU/rmm290/Phx2/MWLVqodOnSGjRokLy9vXX06FEtWbLktq/RiBEjNHr0aLVq1UqtWrXSjh071KJFCyUnJ9/Va3/w4EE999xzevnll/X8889r/PjxatOmjWbMmKEhQ4aod+/ekv7chjt06KADBw7I0fF/+0NSU1P1xBNP6JFHHtG4ceO0cuVKxcTEKCUlRW+99ZakP8N8586d1bx5c7377ruSpH379mnjxo3q37//XdVfYAzyxJw5c4wks3XrVltbVFSUkWTeeustu75169Y1ISEhtudffPGFkWTGjRtna0tJSTGNGzc2ksycOXNs7c2bNzc1a9Y0165ds7WlpaWZBg0amCpVqmSoJyQkxCQnJ9vax40bZySZ//73v8YYYy5evGi8vb1Nz5497WqMj483Xl5edu33wvqEh4ebtLQ0W/uAAQOMk5OTuXDhgq3toYceMk2aNDHZkRe1vvbaa0aS+eGHH2xtp06dMl5eXkaSOXLkiK1dkomJiclQV4UKFUxUVFSG9b/deGalTp06xtfX15w9e9bWtnv3buPo6GgiIyNtbVFRUaZChQoZpo+JiTE3f3wUK1bMrsab+7Zt29auvXfv3kaS2b17tzHGmKNHjxonJyfzzjvv2PX76aefTJEiRezamzRpYiSZGTNmZFheVFSUKVasmF3brl27jCTTo0cPu/aBAwcaSWbt2rW2tgoVKhhJZuXKlXZ9161bZySZGjVq2L3mnTt3Ng4ODqZly5Z2/cPCwuxeu3/+859Gkjl9+nSGmm8lvfbevXvbtT/33HMZtpcXX3zRBAQEmDNnztj17dSpk/Hy8jJXrlwxxhgzadIkI8ksWrTI1ufy5cumcuXKRpJZt26d3euR2bg2adLE7n2V/vqULVvWJCUl2doXLVpkJJn333//luuZXttfbdq0yUgyH330ka1txIgRRpJZsmRJhv7pnwXptVSqVMluvsnJycbX19fUqFHDXL161db+9ddfG0lmxIgRxhhjzp8/bySZ9957L8t6ly5dmuEzPjtOnTplnJ2dTevWre0+u4YMGWIk2b3Wmb3PjPnf+/+vnx3p2+33339va1u1apWRZNzc3MyxY8ds7TNnzswwzumf5/369bO1paWlmdatWxtnZ2fbdtu/f3/j6elpUlJScrTe9zIOjRWAV155xe5548aNdfjwYdvz5cuXq0iRIrY9KpLk5OSkfv362U137tw5rV27Vh06dNDFixd15swZnTlzRmfPnlVERIR+/fXXDLt7X3rpJRUtWtT2vFevXipSpIiWL18u6c+0f+HCBXXu3Nk2vzNnzsjJyUmhoaFat27dPbc+f93z0bhxY6WmpurYsWMZ6syOvKh1+fLleuSRR1S/fn3b9KVLl1aXLl3uqMa/ut14ZubkyZPatWuXunXrppIlS9raa9Wqpccff/yW096NPn362D1Pf03Tl7dkyRKlpaWpQ4cOdtuev7+/qlSpkmHbc3FxUffu3bO17PRlREdH27W//vrrkqRly5bZtVesWFERERGZzisyMtLuNQ8NDZUxJsMhkdDQUJ04cUIpKSmSZNvT8N///jdH56qk1/7qq6/atafv3UlnjNHnn3+uNm3ayBhj9xpGREQoMTFRO3bssM0zICBA7du3t03v7u5u25t3NyIjI+Xh4WF73r59ewUEBNx2u/rr3qIbN27o7Nmzqly5sry9vW11S9Lnn3+u2rVrZ9g7LCnDXtCoqCi7+W7btk2nTp1S79695erqamtv3bq1HnzwQdt2kH6O2fr167M81Jw+nl9//bVu3Lhxy3X7qzVr1ig5OVn9+vWzq/fm8bwT1atXV1hYmO15aGioJKlZs2YqX758hva/fk6n69u3r+3f6XsWk5OTtWbNGkl/rvfly5f1zTff3HW99wqCUD5zdXVV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57M7nplZs2aNadiwoXFzczOenp6mTZs2Zu/evRn6rV692tSoUcM4OzubqlWrmo8//jjTMd6/f7959NFHjZubm91lwOl99+7da9q3b288PDxMiRIlTN++fe0uYU73+eefm0aNGplixYqZYsWKmQcffND06dPHHDhwwNanSZMm5qGHHsp0vbLaLm/cuGFGjRplKlasaIoWLWoCAwPN4MGD7W5/YMyflyG3bt06w/Tp29Znn31m157Vtpi+3umXHcfFxZmnnnrKlClTxjg7O5syZcqYzp07m19++SXT9firq1evmldffdWUKlXKFCtWzLRp08acOHEi09stJCQkmD59+pjAwEBTtGhR4+/vb5o3b25mzZpl1+/YsWOmbdu2xt3d3fj4+Jj+/fublStXZnj/GGPMhAkTTNmyZY2Li4tp2LCh2bZtW5aXz3/66adm8ODBxtfX17i5uZnWrVvbXbqdlfPnz5vu3bsbHx8fU7x4cRMREWH279+f6eX7Z8+eNX379jVly5Y1zs7Oply5ciYqKsp224CsxirdwoULTd26dY2Li4spWbKk6dKli/ntt99sfz9z5ozp06ePefDBB02xYsWMl5eXCQ0NtbvdwI4dO0znzp1N+fLljYuLi/H19TVPPvmk3WdkVlJTU82oUaNMQECAcXNzM4899pj5+eefM13X7du3m9DQUOPs7GzKly9vJk6cmOXl85ltt5JMnz597NqOHDmS4fYA6e+bQ4cOmRYtWhh3d3fj5+dnYmJiTGpqqq3f4sWLTYsWLYyvr6+tppdfftmcPHnytut9r3IwJo/PKsU9If0mYlu3blW9evUKuhzcpcI0niNHjtSoUaN0+vTpLPdsofBbv369mjZtqs8++8zusnwUDt26ddPixYt16dKlgi4l33GOEAAAsCyCEAAAsCyCEAAAsKwCPUfo22+/1Xvvvaft27fbLslt167dLadZv369oqOjtWfPHgUGBmrYsGGZ/jIyAADA7RToHqHLly+rdu3aGe4vkpUjR46odevWatq0qXbt2qXXXntNPXr00KpVq/K4UgAAcD+6Z64ac3BwuO0eoTfffFPLli2zu1lYp06ddOHChUL/WycAACD/FaobKm7atCnDreMjIiJu+au9169ft7vbZVpams6dO6dSpUrl6KcXAABAwTHG6OLFiypTpowcHXPvgFahCkLx8fHy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vvzyywoKCsrt+nId9xECAKDwKRQ3VPz5559Vo0aN3JpdniAIAQBQ+OTV9/dd3+jn4sWLmjVrlurXr6/atWvnRk0AAAD54o6D0LfffquoqCgFBARo/PjxatasmTZv3pybtQEAAOSpHJ0sHR8fr7lz5+qDDz5QUlKSOnTooOvXr+uLL75Q9erV86pGAACAPJHtPUJt2rRR1apV9eOPP2rSpEn6448/NHny5LysDQAAIE9le4/QihUr9Oqrr6pXr16qUqVKXtYEAACQL7K9R2jDhg26ePGiQkJCFBoaqilTpujMmTN5WRsAAECeynYQeuSRRzR79mydPHlSL7/8shYsWKAyZcooLS1N33zzjS5evHjHRUydOlVBQUFydXVVaGiotmzZkq3pFixYIAcHB7Vr1+6Olw0AAKwrx1eNFStWTC+88II2bNign376Sa+//rrGjh0rX19ftW3bNscFLFy4UNHR0YqJidGOHTtUu3ZtRURE6NSpU7ec7ujRoxo4cKAaN26c42UCAABId3kfoapVq2rcuHH67bff9Omnn97RPCZOnKiePXuqe/fuql69umbMmCF3d3d9+OGHWU6TmpqqLl26aNSoUapUqdKdlg8AACzurm+oKElOTk5q166dvvzyyxxNl5ycrO3btys8PPx/BTk6Kjw83PZL9pl566235OvrqxdffPG2y7h+/bqSkpLsHgAAAFIuBaE7debMGaWmpsrPz8+u3c/PT/Hx8ZlOs2HDBn3wwQeaPXt2tpYRGxsrLy8v2yMwMPCu6wYAAPeHAg1COXXx4kV17dpVs2fPlo+PT7amGTx4sBITE22PEydO5HGVAACgsMjRnaVzm4+Pj5ycnJSQkGDXnpCQIH9//wz9Dx06pKNHj6pNmza2trS0NElSkSJFdODAAQUHB9tN4+LiIhcXlzyoHgAAFHYFukfI2dlZISEhiouLs7WlpaUpLi5OYWFhGfo/+OCD+umnn7Rr1y7bo23btmratKl27drFYS8AAJAjBbpHSJKio6MVFRWlevXqqX79+po0aZIuX76s7t27S5IiIyNVtmxZxcbGytXVVTVq1LCb3tvbW5IytAMAANxOgQehjh076vTp0xoxYoTi4+NVp04drVy50nYC9fHjx+XoWKhOZQIAAIWEgzHGFHQR+SkpKUleXl5KTEyUp6dnQZcDAACyIa++v9nVAgAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALIsgBAAALOueCEJTp05VUFCQXF1dFRoaqi1btmTZd/bs2WrcuLFKlCihEiVKKDw8/Jb9AQAAslLgQWjhwoWKjo5WTEyMduzYodq1aysiIkKnTp3KtP/69evVuXNnrVu3Tps2bVJgYKBatGih33//PZ8rBwAAhZ2DMcYUZAGhoaF6+OGHNWXKFElSWlqaAgMD1a9fPw0aNOi206empqpEiRKaMmWKIiMjb9s/KSlJXl5eSkxMlKen513XDwAA8l5efX8X6B6h5ORkbd++XeHh4bY2R0dHhYeHa9OmTdmax5UrV3Tjxg2VLFky079fv35dSUlJdg8AAACpgIPQmTNnlJqaKj8/P7t2Pz8/xcfHZ2seb775psqUKWMXpv4qNjZWXl5etkdgYOBd1w0AAO4PBX6O0N0YO3asFixYoKVLl8rV1TXTPoMHD1ZiYqLtceLEiXyuEgAA3KuKFOTCfXx85OTkpISEBLv2hIQE+fv733La8ePHa+zYsVqzZo1q1aqVZT8XFxe5uLjkSr0AAOD+UqB7hJydnRUSEqK4uDhbW1pamuLi4hQWFpbldOPGjdPbb7+tlStXql69evlRKgAAuA8V6B4hSYqOjlZUVJTq1aun+vXra9KkSbp8+bK6d+8uSYqMjFTZsmUVGxsrSXr33Xc1YsQI/ec//1FQUJDtXKLixYurePHiBbYeAACg8CnwINSxY0ed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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "\n", "import json\n", "import os\n", "from matplotlib import pyplot as plt\n", "metrics = ['agg_score', 'commonsense_qa/acc_norm', 'hellaswag/acc_norm', 'openbookqa/acc_norm', 'piqa/acc_norm',\n", " 'siqa/acc_norm', 'winogrande/acc_norm', 'arc/acc_norm', 'mmlu/acc_norm']\n", "\n", "def normalize_runname(runname):\n", " return runname.replace(\"/\", \"_\")\n", "\n", "grouped = (\n", " df.groupby([\"runname\", \"steps\"])\n", " .agg(\n", " {\n", " key: \"mean\" for key in metrics\n", " }\n", " )\n", " .reset_index()\n", ")\n", "\n", "file_id=\"../assets/data/plots/ind_dedup_better\"\n", "files = {}\n", "for metric in metrics:\n", " datas = {}\n", " for name, group in grouped.groupby(\"runname\"):\n", " group = group[[\"steps\", metric]].sort_values(by=\"steps\")\n", " group = group.set_index(\"steps\")\n", " rolling_avg = group\n", " # rolling_avg = group.rolling(wjjjjjjjjjjjjjindow=5).mean()\n", " datas[name] = {\n", " \"x\": (rolling_avg.index * 2048 * 1024 * 1e-9).tolist(),\n", " \"y\": rolling_avg[metric].tolist(),\n", " \"label\": runs_mapping[name],\n", " }\n", " # Sort the datata based on the steps\n", " datas = {k: v for k, v in sorted(datas.items(), key=lambda x: -x[1][\"y\"][-1])}\n", " # Create a folder\n", " os.makedirs(f\"{file_id}\", exist_ok=True)\n", " with open(f\"{file_id}/{normalize_runname(metric)}.json\", \"w\") as f:\n", " json.dump({\n", " \"data\": datas,\n", " \"layout\": {\n", " \"title\": {\n", " \"text\": \"Independent dedup outperforms dedup across dumps\"\n", " },\n", " }\n", " }, f)\n", " files[metric] = {\"file\": f\"{normalize_runname(metric)}.json\"}\n", "# Create index\n", "with open(f\"{file_id}/index.json\", \"w\") as f:\n", " json.dump({\n", " \"files\": files,\n", " \"settings\": {\n", " \"defaultMetric\": \"agg_score\",\n", " \"slider\":{\"min\":0,\"max\":30,\"default\":5}\n", " }\n", " }, f)\n", " \n", "\n", " \n", "# Add labels and legend\n", "plt.xlabel('Training tokens (billions)')\n", "plt.ylabel('Agg Score')\n", "plt.title('Independent dedup outperforms dedup across dumps')\n", "plt.legend()\n", "\n", "# Show the plot\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 4, "id": "af28ebbd054cdc33", "metadata": { "ExecuteTime": { "end_time": "2024-04-30T15:08:02.522543Z", "start_time": "2024-04-30T15:08:02.520569Z" }, "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "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.12.2" } }, "nbformat": 4, "nbformat_minor": 5 }