From a91e8330730a7ea59dc679fbabbdf0738eeff96e Mon Sep 17 00:00:00 2001 From: Douglas Orr Date: Thu, 15 Aug 2024 15:48:49 +0100 Subject: [PATCH] Address PR feedback --- examples/how_to_scale_op.ipynb | 189 +++++++++++++++++++++++---------- 1 file changed, 131 insertions(+), 58 deletions(-) diff --git a/examples/how_to_scale_op.ipynb b/examples/how_to_scale_op.ipynb index a3a48d1..c16f13b 100644 --- a/examples/how_to_scale_op.ipynb +++ b/examples/how_to_scale_op.ipynb @@ -5,6 +5,25 @@ "metadata": {}, "source": [ "Copyright (c) 2024 Graphcore Ltd. All rights reserved.\n", + "\n", + "# How to unit-scale an op\n", + "\n", + "The unit-scaled maximal update parametrisation, [u-μP](https://arxiv.org/abs/2407.17465), enables hyperparameter transfer and low-precision training by paying careful attention to the _scale_ (standard deviation, or 'std') of tensors in the forward and backward passes.\n", + "\n", + "In order to construct u-μP models, we need _scaled_ ops. A scaled op produces approximately unit-std outputs when given unit-std inputs. Likewise, in the backward pass, it produces unit-std input gradients when given unit-std output gradients. The [unit-scaling](https://github.com/graphcore-research/unit-scaling) library provides implementations of many common ops, but it can never be exhaustive, so in this notebook we walk through how to unit-scale an op for ourselves.\n", + "\n", + "Structure:\n", + " - **Introduction** - what is the task?\n", + " - **Empirical scaling** - scaling our op via simulation and empirical measurement.\n", + " - **Statistical scaling** - scaling our op via statistical analysis.\n", + " - **Scaling constraints** - a mechanism for supporting the cut-edge rule.\n", + " - **Summing up** - phew!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "#### Imports/preamble/helpers (nothing much to see here - feel free to skip)" ] @@ -70,26 +89,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# How to unit-scale an op\n", - "\n", - "[u-μP](https://arxiv.org/abs/2407.17465) mandates that the differentiable ops that make up a deep learning model should be properly _scaled_. A scaled op produces unit-std outputs when given unit-std inputs.\n", - "\n", - "To achieve this, we insert scaling factors separately into the forward and backward passes, as follows:\n", - "\n", - "```python\n", - "def hardtanh(x: Tensor, mult: float = 1) -> Tensor:\n", - " y_scale, grad_scale = ... # ???\n", - " x = scale_bwd(x, grad_scale)\n", - " y = F.hardtanh(x, -1/mult, 1/mult)\n", - " return scale_fwd(y, y_scale)\n", - "```\n", + "## Introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our chosen task is to unit-scale `F.hardtanh`, an elementwise nonlinearity provided by PyTorch that looks like a harder/sharper version of `tanh`. It's defined as `F.hardtanh(x, a=-1, b=1) = clip(x, a, b)`, and is suitable as an illustrative example, as it permits both empirical and statistical scaling methods, as we'll see.\n", "\n", - "This post is about how to choose `y_scale` and `grad_scale`, for the example of `hardtanh`, which looks like:" + "The op and gradient look like this:" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -107,6 +121,30 @@ "opplot({\"F.hardtanh(x)\": F.hardtanh})" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's the _unscaled_ op, but we want to find the equivalent _scaled_ op. To do this:\n", + "\n", + " - Replace thresholds `a` and `b` with a `mult` shape parameter, since the output should have zero-mean.\n", + " - Insert scaling factors separately into the forward and backward passes, to achieve unit scale.\n", + "\n", + "In code, that's\n", + "\n", + "```python\n", + "def hardtanh(x: Tensor, mult: float = 1) -> Tensor:\n", + " y_scale, grad_scale = ... # ???\n", + " x = scale_bwd(x, grad_scale)\n", + " y = F.hardtanh(x, -1/mult, 1/mult)\n", + " return scale_fwd(y, y_scale)\n", + "```\n", + "\n", + "which relies on the utilities `scale_fwd` and `scale_bwd` from `unit_scaling.scale`. These apply a muliplicative scaling factor in either the forward or backwards pass (compare with the straight-forward `x * scale` which applies the same scale in both foward and backward passes).\n", + "\n", + "**The remaining problem is how to choose `y_scale` and `grad_scale`, so that `y.std` ≈ 1 when `x.std` = 1 and also `x.grad.std` ≈ 1 when `y.grad.std` = 1.**" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -128,7 +166,7 @@ "output_type": "stream", "text": [ "torch.nn.functional.hardtanh\n", - " x.std = 1.000\n", + " x.std = 1.001\n", " y.std = 0.718\n", " grad_x.std = 0.826\n" ] @@ -152,7 +190,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we can pluck these scales, and use them as `y_scale` and `grad_scale`:" + "The unscaled op therefore shrinks the scale in both forward and backward passes.\n", + "\n", + "We can pluck these scales, and use them to set `y_scale = 1 / empirical_y_std` and `grad_scale = 1 / empirical_grad_x_std`:" ] }, { @@ -166,8 +206,8 @@ "text": [ "hardtanh_scaled_empirical\n", " x.std = 1.000\n", - " y.std = 1.001\n", - " grad_x.std = 1.001\n" + " y.std = 1.000\n", + " grad_x.std = 1.000\n" ] } ], @@ -197,9 +237,9 @@ "source": [ "## Statistical scaling\n", "\n", - "Our second approach will be to try to compute the output distribution and its' standard deviation, given an input distribution.\n", + "Our second approach will be to try to compute the output distribution and its standard deviation, given an input distribution.\n", "\n", - "First, let's eyeball the forward-pass distribution for `y = hardtanh(x)` when $x \\sim \\mathcal{N}(0, 1)$. Note that this plot shows RMS, which is equal to standard deviation when zero-mean." + "First, let's eyeball the forward-pass distribution for `y = F.hardtanh(x)` when $x \\sim \\mathcal{N}(0, 1)$. Note that this plot shows RMS, which is equal to standard deviation when zero-mean." ] }, { @@ -209,7 +249,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -219,7 +259,7 @@ } ], "source": [ - "x = torch.randn(100000).requires_grad_()\n", + "x = torch.randn(int(1e5)).requires_grad_()\n", "y = F.hardtanh(x)\n", "y.backward(torch.ones_like(y))\n", "df = pd.DataFrame.from_dict(dict(x=x.detach(), y=y.detach(), grad_x=x.grad))\n", @@ -231,12 +271,39 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Since `hardtanh(x, mult)` is defined as `clip(x, -1/mult, 1/mult)`, we can see that the output distribution is a mixture of three components:\n", + "Recalling that `hardtanh(x, mult)` is defined as `clip(x, -1/mult, 1/mult)`, we can see that the output distribution is a mixture of three components:\n", + "\n", + " - truncated Gaussian with weight `p(-1/mult <= x <= 1/mult)`\n", + " - spike at `y=-1/mult` with weight `p(x < -1/mult)`\n", + " - spike at `y=1/mult` with weight `p(x > 1/mult)`\n", + "\n", + "So we can write out the pdf of $Y$ as a mixture distribution (where $\\alpha = \\mathrm{mult}$):\n", + "\n", + "$\\mathrm{P}(Y=y) = \\begin{cases}\\frac{1-Z}{2}\\, \\delta(y - \\alpha^{-1}) + \\frac{1-Z}{2}\\, \\delta(y + \\alpha^{-1}) + \\varphi(y) & \\textrm{if } {-\\alpha^{-1}} \\leq y \\leq \\alpha^{-1} \\\\\n", + "0 & \\textrm{otherwise}\n", + "\\end{cases}\n", + "$\n", + "\n", + "where $Z \\coloneqq \\mathrm{erf}(\\sqrt{\\frac{1}{2}}\\, \\alpha^{-1})$ is the probability that $x \\sim \\mathcal{N}(0,1)$ falls in the range $[-\\alpha^{-1}, \\alpha^{-1}]$, $\\delta(\\cdot)$ is the Dirac delta function and $\\varphi(\\cdot)$ is the Gaussian pdf (note that the $Z$ normaliser for a truncated Gaussian cancels exactly with the mixture weight).\n", + "\n", + "Next, by symmetry, we can observe that $\\mathrm{E}(Y) = 0$. Therefore the scale, $\\sigma_Y = \\sqrt{\\mathrm{E}(Y^2) - \\mathrm{E}(Y)^2} = \\sqrt{\\mathrm{E}(Y^2)}$.\n", + "\n", + "This expands to:\n", + "\n", + "$\\sigma_Y = \\sqrt{(1-Z)\\, \\alpha^{-2} + Z\\,(1 - 2 e^{-1/(2\\alpha^2)} / (Z \\alpha \\sqrt{2 \\pi}))}$\n", + "\n", + "where the first term is from the pair of spikes, and the second term from the variance of a symmetric [truncated Gaussian](https://en.wikipedia.org/wiki/Truncated_normal_distribution).\n", + "\n", + "Leading to the **forward scale**:\n", "\n", - " - Truncated Gaussian with weight `p(-1/mult <= x <= 1/mult)`\n", - " - Spike at `y=-1/mult` with weight `p(x < -1/mult)`\n", - " - Spike at `y=1/mult` with weight `p(x > 1/mult)`\n", + "$\\sigma_Y = \\sqrt{\\alpha^{-2} + (1 - \\alpha^{-2})\\,\\mathrm{erf}(\\sqrt{\\frac{1}{2}}\\, \\alpha^{-1}) - \\sqrt{\\frac{2}{\\pi}}\\, \\alpha^{-1}\\, e^{-\\frac{1}{2}\\alpha^{-2}}}$\n", "\n", + "> Note: when $\\alpha\\!=\\!1$, this simplifies to $\\sqrt{1 - \\sqrt{2 / (\\pi e)}}$\n", + "\n", + "Let's test this rule by sweeping `mult` over a logarithmic range:\n", + "\n", + "" ] }, { @@ -259,7 +326,7 @@ "outputs": [ { "data": { - "image/png": "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Ywbh4eFs2bKFgQMH0q9fPzp06ECDBg3Yvn07zZo1o1u3biQnJ6d72c888wwdO3akRYsWnDx5kpMnT9KgQYNMGIVI9qXSFMlFatasyf/93/8RGRnJ8OHDCQwMJDw8nN69exMZGcmoUaM4e/Ysu3btSvey8+fPT1BQEAEBARQrVoxixYrhdDozYRQi2ZdKUyQXqVGjRurnNpuNwoULU7169dT7ihYtCsDp06ezPJtIbqDSFMlFHA7HVV9bLJar7vvt/Uqfz4fVauXP16B3u92ZH1IkB1NpiuRRRYoUITExkaSkpNT7duzY8bevcTqdeL3eTE4mkn2pNEXyqNtuu43g4GBGjBjBwYMHmTt3LtOnT//b15QrV45du3axb98+fv31V22ZSp6j0hTJo8LCwpg9ezaffvop1atXZ968eYwZM+ZvX9O7d28qV65M3bp1KVKkCJs3b86asCLZhMX485saIiIick3a0hQREUkjlaaIiEgaqTRFRETSSKUpIiKSRipNERGRNFJpioiIpJFKU0REJI1UmiIiImmk0hQREUkjlaaIiEgaqTRFRETS6P8BY78poCEOD9UAAAAASUVORK5CYII=", + "image/png": "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IY0bN05Z5okTJ4iOjua5554DYNWqVRiGwZIlS6hUqRLBwcHUrl2brVu3XvIea9eupW7duuTJk4cSJUrw8MMPk5SUlPL1UqVK8cILL9C1a1fCwsLo3bs3e/bswTCMlKL6870+//xzqlSpQp48eWjQoAFHjx5l6dKllCtXjrCwMDp27MjZs2f/c3x/+nO5X3zxBdWrVyckJIQ6deqwY8cOIHAa4ogRI9i8eTOGYWAYBpMmTUrTv3FaZPk1zYykNU35T4kH4NcV8Oty+C0ekgNH2CaaeVnrr8Aqf2XifZU5yl/neZYxDtLBvpJW9jV/HZFbNC6w9lmxDQSHWzAQudhZt5fyz31uyXtve74xIa7Ub8783//+x7Rp03j99deJiYlh9erV9OnTh88//5yyZctSsWJFhg0bxsCBA2nXrh2///4769atw+FwsGrVKm6//XbKlSvHG2+8QZEiRRg6dChbt25l586dOJ1Odu3aReXKlXnxxRdp1qwZx44do3///lSuXJmJEycCgdI8efIkzz33HC1atADAbrdfsk/zz/eqXbs2r776KiEhIbRr147ixYsTFBTEqFGjOHPmDC1btmTw4ME8+eST/zm+2267LWW5tWrVYvTo0RQqVIg+ffrg8/lYt24d586d49lnn+Wzzz5jxYoVQPpsibwSlaZKU1LL54F96wMF+suKwKZdAgcXbTLL8pGvPh/76nCWYAAceLnTtoH29pXUtf0YmN3IkQduagnVugWOwNXcu5bILqWZnJxMREQEK1as4Oabb055vGfPnpw9e5YZM2YwZ84cunbtyqBBg3jrrbfYtGlTyrEffxbOrFmzaN++PfDX2uikSZNo164dPXv2xG63895776Usf+3atdx2220kJSURHBxMqVKlqFKlCgsWLEh5zt8PBPrzvVasWMEdd9wBwKhRoxgyZAi7du2iTJkyAPTp04c9e/bw2WefpWp8l1vup59+SrNmzTh37hzBwcGZunk2201uIGIZuxNK3RK4NRwOpw7Bri8wdn5O1Z2fU9X2Ac84prHYV5tZvtv5wYxhqb8WS/21KM4x2jriaWvGU3zzDNg8I3AKy22Dody9mkQhk+Vx2tn2fGPL3ju1fv31V86ePcudd955yeNut5sqVaoA0LZtWxYsWMCoUaMYN27cZQ+WvLiQIiIiiI2NZfv27QBs3ryZLVu2MH36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", "text/plain": [ "
" ] @@ -296,7 +363,7 @@ "source": [ "This looks pretty solid.\n", "\n", - "Now for the backwards pass. Note that in this case we just feed in `y.grad = 1` in order to obtain the partial derivatives `dy/dx` that define the scaling behaviour:" + "Now for the backwards pass. Note that in this case we just feed in `y.grad = 1` in order to obtain the partial derivatives $\\partial y / \\partial x$ that define the scaling behaviour:" ] }, { @@ -306,7 +373,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAGaCAYAAADKE66pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvMElEQVR4nO3de3xU9Z3/8ffMJJkJuQxEQkIg4SKK9UIqaKyXIlQUNMviirj4sLtBvMGiuxZrH2CRqLuYVl0vD6BgqxK6SlF00RYqPy2KoohYka0RUKkEMJAQIMyESeaSme/vj5CRIQkSTmCS8Ho+HvMg55zv+Z7PXA7vOed7ZsZmjDECAMACe7wLAAB0foQJAMAywgQAYBlhAgCwjDABAFhGmAAALCNMAACWESYAAMsIEwCAZYQJAMAywgQAYBlhglNu//796tWrl8rLy497nYkTJ+q///u/T15RACwhTE5TkyZNks1mk81mU2JiogYMGKBf/OIX8vv9zdpMmTKl2frTpk2TzWbTpEmTovOqq6s1depU5eXlyel0Kjs7W6NHj9aHH34Ys+6cOXM0btw49e/f/7jrnTVrlubMmSOPx9Pm+3os77//vsaOHaucnBzZbDa9/vrrx7Xe/Pnz1b9/f7lcLl1yySXasGHDCbUBugrC5DQ2ZswY7dmzR998842eeuopPfvssyouLo5pk5ubq6VLl6q+vj46z+/3a8mSJcrLy4tpO378eH322WdavHixvvrqK/3xj3/UiBEjtH///miburo6Pf/887rtttvaVOv555+vM888Uy+++OIJ3NPW+Xw+5efna/78+ce9zssvv6zp06eruLhYGzduVH5+vkaPHq29e/e2qQ3QpRicloqKisy4ceNi5t1www3mwgsvbNbm/PPPNy+++GJ0/ksvvWSGDBlixo0bZ4qKiowxxtTU1BhJZs2aNcfc7rJly0xmZmbMvCVLlhiXy2V2794dnTdp0iRzwQUXmIMHD0bnPfzww+aKK65o6109bpLM8uXLv7ddQUGBmTZtWnQ6HA6bnJwcU1JS0qY2QFfCkQkkSWVlZVq3bp2SkpKaLZs8ebIWLVoUnX7hhRd06623xrRJTU1VamqqXn/9dQUCgVa3s3btWg0bNixm3sSJE3X22Wfr0UcflSQVFxfrL3/5i95880253e5ou4KCAm3YsKHF/h999NFoDa3ddu7ceXwPxjEEg0F9+umnGjVqVHSe3W7XqFGj9NFHHx13G6CrSYh3AYifFStWKDU1VQ0NDQoEArLb7Zo3b16zdj/96U81c+ZM7dixQ5L04YcfaunSpVqzZk20TUJCgkpLS3XHHXdo4cKFGjp0qK688kpNnDhRQ4YMibbbsWOHcnJyYvq32WyaM2eObrzxRmVnZ2vu3Llau3at+vTpE9MuJydHwWBQlZWV6tevX8yyKVOm6Kabbjrm/T16uydi3759CofDysrKipmflZWlrVu3HncboKshTE5jI0eO1IIFC+Tz+fTUU08pISFB48ePb9YuMzNThYWFKi0tlTFGhYWF6tmzZ7N248ePV2FhodauXav169frzTff1GOPPabnnnsuOlBfX18vl8vVbN1/+Id/0LnnnqtHHnlEb731ls4777xmbZKTkyU1jrscLSMjQxkZGW19CAC0E05zncZSUlI0aNAg5efn64UXXtDHH3+s559/vsW2kydPVmlpqRYvXqzJkye32qfL5dLVV1+tBx98UOvWrdOkSZNiBvV79uypmpqaZuutWrVKW7dubfEdfZMDBw5Iagy3o52q01w9e/aUw+FQVVVVzPyqqiplZ2cfdxugqyFMIKnxnP4DDzygWbNmxVy51WTMmDEKBoMKhUIaPXr0cfd77rnnyufzRacvvPBCbd68OabNxo0bddNNN+n555/XVVddpQcffLDFvsrKytS3b98Wj4qmTJmiTZs2HfPWHqe5kpKSNGzYMK1evTo6LxKJaPXq1br00kuPuw3Q1XCaC1ETJkzQ/fffr/nz5+vnP/95zDKHw6EtW7ZE/z7a/v37NWHCBE2ePFlDhgxRWlqa/vrXv+qxxx7TuHHjou1Gjx6tmTNnqqamRj169FB5ebkKCwv1wAMP6Oabb9bAgQN16aWXauPGjRo6dGjMNtauXatrrrmmxdpP9DTXoUOHtG3btuj09u3btWnTJmVkZEQvfZ43b56WL18eDYfp06erqKhIF110kQoKCvT000/L5/PFXJRwPG2ALiXel5MhPlq6NNgYY0pKSkxmZqY5dOhQq22aHHlpsN/vNzNmzDBDhw41brfbdOvWzQwePNjMmjXL1NXVxaxXUFBgFi5caPbv328GDx5s7rrrrpjl1113nRk9enTMvPr6euN2u81HH310Qve3Ne+++66R1OzWdL+MMaa4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Nurq6pp9n5jD4VAkEjnmYxOJRI45vtQSwgRAhzdhwgQ5HA7Nnz+/2TKHw6EtW7Zo8+bNcjgczZbv379fP/nJT/Tiiy/qb3/7m7Zv365ly5bpscceixlIHz16tL744ouYo5PFixdr+PDhevDBB7/3P+AjrV27Vtdcc02LyzIyMjRo0KBj3hISmo9ATJ8+Xb/73e+0ePFibdmyRVOnTpXP54u54GDevHm66qqrotNjx47VnDlztHLlSpWXl2v58uV68skn9U//9E/RNjNnztT777+v8vJyff7555o5c6bWrFnTbFzle7Xp2i8AOMlaujTYGGNKSkpMZmamOXToUKttmhx5abDf7zczZswwQ4cONW6323Tr1s0MHjzYzJo1K+YzKsY0Xn67cOHC6HRVVZWprq421113nfmf//kfY4wxl112mVm/fr0xxpjJkyebJ598MqaP+vp643a7o59XaU9z5841eXl5JikpyRQUFETraFJcXGz69esXnfZ6veY//uM/TF5ennG5XGbgwIHml7/8pQkEAtE2kydPNv369TNJSUkmMzPTXHXVVeatt95qc218nQoAHLZy5Urdf//9Kisrizk9tGLFCq1cuVILFizQqlWr9Oyzz+rHP/6xtmzZot/97ncxfSxYsEDLly/XW2+9darLjyuu5gKAwwoLC/X111+roqJC3bt3b/ZFj1LjGM0vf/lLrVy5UqtWNf928cTERM2dO/dUlx53jJkAwBHuvfde5ebm6ve//71GjhypdevWyePxaOjQoZKkTz75RAcOHJDb7VZiYmKz9W+//XYNHjz4VJcdd4QJALSgsrJSZ511VswXPVZUVOj222/XO++8o/LycpWVlcW7zA6DMRMAaMHXX3+tyZMnKxgM6pFHHtHw4cN11VVX6Ve/+pWGDx+uZcuW6dVXX9XLL78c71I7BMIEAGAZp7kAAJYRJi0wxsjr9YqDNiA+2Ac7H8KkBbW1tXK73aqtrY13KcBpiX2w8yFMAACWESYAAMsIEwCAZYQJAMAywgQAYBlhAgCwjDABAFhGmAAALCNMAACWESYAAMsIEwCAZYQJAMAywgQAYBlhAgCwjDABAFhGmAAALCNMAACWdckwKSkp0cUXX6y0tDT16tVL119/vb788st4lwUAXVaXDJP33ntP06ZN0/r16/X2228rFArpmmuukc/ni3dpANAl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lSTl5ubGuRKg8+Gndk9PneY34E+lSCSi3bt3t+s7LK/Xq9zcXO3atavD7mjU2H46Q50nq8b22G+MMaqtreUopxPhyKQFdru92a80tpf09PQO+59LE2psP52hzo5Yo81m63A14dgYgAcAWEaYAAAsI0xOEafTqeLiYjmdzniX0ipqbD+doc7OUCM6DwbgAQCWcWQCALCMMAEAWEaYAAAsI0wAAJYRJqdYeXm5brvtNg0YMEDJyck688wzVVxcrGAwGO/SYsyZM0eXXXaZunXrpu7du8e7nKj58+erf//+crlcuuSSS7Rhw4Z4lxTj/fff19ixY5WTkyObzabXX3893iXFKCkp0cUXX6y0tDT16tVL119/vb788st4l4UugDA5xbZu3apIJKJnn31WX3zxhZ566iktXLhQDzzwQLxLixEMBjVhwgRNnTo13qVEvfzyy5o+fbqKi4u1ceNG5efna/To0dq7d2+8S4vy+XzKz8/X/Pnz411Ki9577z1NmzZN69ev19tvv61QKKRrrrlGPp8v3qWhszOIu8cee8wMGDAg3mW0aNGiRcbtdse7DGOMMQUFBWbatGnR6XA4bHJyckxJSUkcq2qdJLN8+fJ4l3FMe/fuNZLMe++9F+9S0MlxZNIBeDweZWRkxLuMDi0YDOrTTz/VqFGjovPsdrtGjRqljz76KI6VdW4ej0eSeP3BMsIkzrZt26a5c+fqrrvuincpHdq+ffsUDoeVlZUVMz8rK0uVlZVxqqpzi0Qiuvfee3X55Zfr/PPPj3c56OQIk3YyY8YM2Wy2Y962bt0as05FRYXGjBmjCRMm6I477uiQNaLrmjZtmsrKyrR06dJ4l4IugK+gbyf33XefJk2adMw2AwcOjP69e/dujRw5Updddpl++9vfnuTqGrW1xo6kZ8+ecjgcqqqqiplfVVWl7OzsOFXVed19991asWKF3n///ZP2cws4vRAm7SQzM1OZmZnH1baiokIjR47UsGHDtGjRItntp+YAsS01djRJSUkaNmyYVq9ereuvv15S42ma1atX6+67745vcZ2IMUb33HOPli9frjVr1mjAgAHxLgldBGFyilVUVGjEiBHq16+fnnjiCVVXV0eXdaR32Dt37tSBAwe0c+dOhcNhbdq0SZI0aNAgpaamxqWm6dOnq6ioSBdddJEKCgr09NNPy+fz6dZbb41LPS05dOiQtm3bFp3evn27Nm3apIyMDOXl5cWxskbTpk3TkiVL9MYbbygtLS063uR2u5WcnBzn6tCpxftystPNokWLjKQWbx1JUVFRizW+++67ca1r7ty5Ji8vzyQlJZmCggKzfv36uNZztHfffbfFx62oqCjepRljTKuvvUWLFsW7NHRyfAU9AMAyruYCAFhGmAAALCNMAACWESYAAMsIEwCAZYQJAMAywgQAYBlhAgCwjDABAFhGmAAALCNMAACWESboFP7whz8oOTlZe/bsic679dZbNWTIkOhPzwKIH77oEZ2CMUY//OEPNXz4cM2dO1fFxcV64YUXtH79evXp0yfe5QGnPX7PBJ2CzWbTnDlzdOONNyo7O1tz587V2rVrCRKgg+DIBJ3K0KFD9cUXX+itt97SlVdeGe9yABzGmAk6jVWrVmnr1q0Kh8PKysqKdzkAjsCRCTqFjRs3asSIEXr22WdVWlqq9PR0LVu2LN5lATiMMRN0eOXl5SosLNQDDzygm2++WQMHDtSll16qjRs3aujQofEuD4A4MkEHd+DAAV122WUaMWKEFi5cGJ1fWFiocDisVatWxbE6AE0IEwCAZQzAAwAsI0wAAJYRJgAAywgTAIBlhAkAwDLCBABgGWECALCMMAEAWEaYAAAsI0wAAJYRJgAAy/4/UJcdfeyT95YAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -323,11 +390,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now we note that the partial derivatives are a square pulse, where $\\frac{\\partial y}{\\partial x}=1$ when $-1/\\alpha <= x <= 1/\\alpha$ and $0$ otherwise.\n", + "The partial derivatives are a square pulse, where $\\frac{\\partial y}{\\partial x}=1$ when ${-\\alpha^{-1}} \\leq x \\leq \\alpha^{-1}$ and $0$ otherwise.\n", + "\n", + "We assume that the output gradient $\\dot{Y}$ is independent of the inputs $X$, so that the input gradient is the product of two random variables: $\\dot{X} = \\dot{Y} \\Delta$, where $\\dot{Y} \\sim N(0, 1)$ and $\\Delta \\sim \\mathrm{Bernoulli}(Z)$, where $Z$ is defined as previously.\n", + "\n", + "Since they're independent, the expectation of the product is the product of the expectations, so $\\mathrm{E}(\\dot{X})=0$, and\n", + "\n", + "$\\sigma_{\\dot{X}} = \\sqrt{\\mathrm{E}((\\dot{Y} \\Delta)^2)} = \\sqrt{Z\\, \\mathrm{E}(\\dot{Y}^2) + (1-Z)\\,0} = \\sqrt{Z}$\n", "\n", "Therefore, we have the **backward scale**:\n", "\n", - "$\\sqrt{\\mathrm{E}(\\dot{X}^2)} = \\sqrt{Z} = \\sqrt{\\mathrm{erf}(\\frac{1}{\\alpha\\sqrt{2}})}$" + "$\\sigma_{\\dot{X}} = \\sqrt{\\mathrm{erf}(\\sqrt{\\frac{1}{2}}\\, \\alpha^{-1})}$" ] }, { @@ -337,7 +410,7 @@ "outputs": [ { "data": { - "image/png": "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65MSY/3T5s2b8fl86fKSayk5zozmSmM/cuQIRYoUSXptkSJFOHz4sFVRr1tW+j4HO9b0/HMZjKuNM61+16o0r2DNmjX07NmTb775hhUrVuDxeGjUqBHx8fEASevP/3k7cuRI0jJy5szJjz/+yL59+5g5cybHjh2zajhXlBJjBTh16hTR0dFMmDDBimFcVUqNMyO62tgzE4310rGm95/LYFxtnGn2u9aUoB0/ftwEzDVr1lzT1/fo0cOcM2dOCqdKHdcy1gsXLph16tQxp02blorJUta1fk9XrVpltm7dOpVSpY2/j33Dhg1my5Ytk57r06ePOWPGDAvTpazLfZ8zw/fwcv451oz4cxmMK/3spubvWs00k+Hs2bMA5M6dO6jXHzt2jLi4uKSvXbt2LaVLl061fCkpuWM1TZNOnTpRv359OnTokJrRUlRyx5mZ/H3sNWrUYPv27Rw+fJhz586xZMkSGjdubHHClJOVvs9/H2tG/bkMxt/Hmaa/a1OlijMhn89nNm/e3Lz99tuD/ppvv/3WrFixohkVFWVWqFDBHDduXComTDnXMtZ169aZhmGYFStWTLpt27YtFVNev2sZp2maZoMGDcy8efOaYWFhZpEiRcyNGzemUsLUc7mxL1iwwCxVqpR50003mePHj7cwXcq63Fgzw/fwcv451oz4cxmMf44zLX/XqjSD1L17d7N48eLmwYMHrY6S6rLKWLPKOC8nK41dY818rBynSjMIPXv2NIsWLWr+9ttvVkdJdVllrFllnJeTlcausWY+Vo9TpXkFfr/f7Nmzp1m4cGFzz549VsdJVVllrFllnJeTlcausWY+6WWcjtTZUpo59OzZk5kzZ7JgwQLCw8M5evQoAJGRkYSFhVmcLmVllbFmlXFeTlYau8aa+caabsZpWV1nAMBlb5MnT7Y6WorLKmPNKuO8nKw0do018401vYxT554VEREJko7TFBERCZJKU0REJEgqTRERkSCpNEVERIKk0hQREQmSSlNERCRIKk0REZEgqTRFRESCpNIUEREJkkpTRP7T0KFDqVSpktUxRNINlaaIBK1Tp060bNnS6hgillFpioiIBEmlKZJJ1KtXj969e9O3b19y5cpFgQIFmDhxIvHx8TzyyCOEh4dz8803s2TJEgCmTJlCzpw5L1nG/PnzMQzjsssfOnQoU6dOZcGCBRiGgWEYrF69OpVHJZK+qDRFMpGpU6eSN29eNm3aRO/evenRowdt2rShdu3abNmyhUaNGtGhQwcSEhKSvez+/fvTtm1bmjRpQkxMDDExMdSuXTsVRiGSfqk0RTKRihUr8txzz1GqVCkGDhxIaGgoefPm5dFHH6VUqVIMGTKEP/74g23btiV72Tly5CAsLIyQkBAKFixIwYIFcblcqTAKkfRLpSmSiURFRSXdt9vt5MmThwoVKiQ9VqBAAQCOHz+e5tlEMgOVpkgm4nQ6L/ncMIxLHvtze6Xf78dms/HPa9B7PJ7UDymSgak0RbKofPnyERcXR3x8fNJjW7duveLXuFwufD5fKicTSb9UmiJZVM2aNcmWLRuDBg1i7969zJw5kylTplzxa0qUKMG2bdvYvXs3J0+e1MxUshyVpkgWlTt3bqZPn87ixYupUKECs2bNYujQoVf8mkcffZTSpUtTrVo18uXLx4YNG9ImrEg6YZj/3KghIiIil6WZpoiISJBUmiIiIkFSaYqIiARJpSkiIhIklaaIiEiQVJoiIiJBUmmKiIgESaUpIiISJJWmiIhIkFSaIiIiQVJpioiIBOn/MnXLf5xL39kAAAAASUVORK5CYII=", + "image/png": "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IiJBUmmKiIgESaUpIiISJJWmiIhIkFSaIiIiQVJpisg/Gjt2LDVr1rQ6hkimodIUkaD16tWLtm3bWh1DxDIqTRERkSCpNEWyiSZNmvDoo48yePBgChQoQNGiRXn//fdJTEykd+/ehIWFUaFCBZYvXw7AtGnTyJ8//2XT+OyzzzAM44rTHzt2LNOnT2fx4sUYhoFhGKxevTqdRyWSuag0RbKR6dOnExERwebNm3n00Ufp378/HTt25KabbuKnn37ijjvuoHv37iQlJaV62kOGDKFTp060bNmS6OhooqOjuemmm9JhFCKZl0pTJBupUaMGo0aNIjIykuHDh5MrVy4iIiLo06cPkZGRjBkzhtOnT7Nt27ZUTztv3ryEhoYSEhJCsWLFKFasGC6XKx1GIZJ5qTRFspGoqKiU23a7nUKFClG9evWUx4oWLQrAiRMnMjybSHag0hTJRpxO52X3DcO47LFL6yv9fj82m42/noPe4/Gkf0iRLEylKZJDFS5cmISEBBITE1Me27p167++x+Vy4fP50jmZSOal0hTJoW688UZy587NiBEj2LdvH7Nnz2batGn/+p5y5cqxbds29uzZw6lTpzRnKjmOSlMkhypYsCAzZ85k2bJlVK9enTlz5jB27Nh/fU+fPn2oVKkSdevWpXDhwmzYsCFjwopkEob515UaIiIickWa0xQREQmSSlNERCRIKk0REZEgqTRFRESCpNIUEREJkkpTREQkSCpNERGRIKk0RUREgqTSFBERCZJKU0REJEgqTRERkSD9P2r95eIK0z/BAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -373,19 +446,19 @@ "output_type": "stream", "text": [ "hardtanh_scaled_statistical\n", - " x.std = 1.000\n", + " x.std = 0.999\n", " y.std = 1.000\n", - " grad_x.std = 0.998\n", + " grad_x.std = 1.001\n", "\n", "hardtanh_scaled_statistical {'mult': 0.25}\n", - " x.std = 1.000\n", - " y.std = 1.000\n", + " x.std = 0.999\n", + " y.std = 0.999\n", " grad_x.std = 1.000\n", "\n", "hardtanh_scaled_statistical {'mult': 4}\n", - " x.std = 0.999\n", + " x.std = 1.000\n", " y.std = 1.000\n", - " grad_x.std = 1.002\n" + " grad_x.std = 1.004\n" ] } ], @@ -424,21 +497,21 @@ "hardtanh {'constraint': 'to_output_scale'}\n", " x.std = 1.000\n", " y.std = 1.000\n", - " grad_x.std = 1.150\n", + " grad_x.std = 1.151\n", "\n", "hardtanh {'constraint': 'to_grad_input_scale'}\n", " x.std = 1.000\n", " y.std = 0.869\n", - " grad_x.std = 1.000\n", + " grad_x.std = 1.001\n", "\n", "hardtanh {'constraint': 'gmean'}\n", " x.std = 1.000\n", - " y.std = 0.932\n", - " grad_x.std = 1.071\n", + " y.std = 0.933\n", + " grad_x.std = 1.072\n", "\n", "hardtanh {'constraint': None}\n", - " x.std = 1.001\n", - " y.std = 1.001\n", + " x.std = 1.000\n", + " y.std = 1.000\n", " grad_x.std = 1.002\n", "\n" ] @@ -446,7 +519,7 @@ ], "source": [ "# (Final version)\n", - "def hardtanh(x: Tensor, constraint: Optional[str] = \"to_output_scale\", mult: float = 1) -> Tensor:\n", + "def hardtanh(x: Tensor, mult: float = 1.0, constraint: Optional[str] = \"to_output_scale\") -> Tensor:\n", " Z = erf(1 / (mult * sqrt(2)))\n", " y_scale = 1 / sqrt(Z + (1 - Z) / mult**2 - sqrt(2/pi) / mult * exp(-1/2 / mult**2))\n", " grad_scale = 1 / sqrt(Z)\n", @@ -465,7 +538,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here we can see the tradeoff implied by constraints. When constraining the scaling factors, either the forward or backward passes can be well-scaled (or some tradeoff between them), but in general it isn't possible for both to have good scale when `y_scale == grad_scale`.\n", + "Here we can see the trade-off implied by constraints. When constraining the scaling factors, either the forward or backward passes can be well-scaled (or some trade-off between them), but in general it isn't possible for both to have good scale when `y_scale == grad_scale`.\n", "\n", "With larger `mult`, the constrained scaling rule must relax the unit scale requirement, as the ideal forward and backward scales are more different:" ] @@ -479,21 +552,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "hardtanh {'constraint': 'to_output_scale', 'mult': 4}\n", - " x.std = 0.999\n", + "hardtanh {'mult': 4, 'constraint': 'to_output_scale'}\n", + " x.std = 1.000\n", " y.std = 1.000\n", - " grad_x.std = 1.904\n", + " grad_x.std = 1.913\n", "\n", - "hardtanh {'constraint': 'to_grad_input_scale', 'mult': 4}\n", + "hardtanh {'mult': 4, 'constraint': 'to_grad_input_scale'}\n", " x.std = 1.000\n", " y.std = 0.524\n", - " grad_x.std = 0.999\n" + " grad_x.std = 1.000\n" ] } ], "source": [ - "check_scaling(hardtanh, constraint=\"to_output_scale\", mult=4); print()\n", - "check_scaling(hardtanh, constraint=\"to_grad_input_scale\", mult=4)" + "check_scaling(hardtanh, mult=4, constraint=\"to_output_scale\"); print()\n", + "check_scaling(hardtanh, mult=4, constraint=\"to_grad_input_scale\")" ] }, { @@ -533,9 +606,9 @@ "source": [ "## Summing up\n", "\n", - "That's it; scaling an op can be a relatively systematic process, based on either empirical or statistical analysis.\n", + "That's it; unit-scaling an op can be a relatively systematic process, based on either empirical or statistical analysis.\n", "\n", - "The main thing our `hardtanh` example missed is any dependence on input tensor shapes. Since it is an elementwise nonlinearity, these do not change the scaling behaviour. In general, a scaling rule would have to consider input shapes.\n", + "> Note: The main thing our `hardtanh` example missed is any dependence on input tensor shapes. Since it is an elementwise nonlinearity, these do not change the scaling behaviour. In general, a scaling rule would have to consider input shapes.\n", "\n", "To unit-scale an op for u-μP:\n", "\n", @@ -548,7 +621,7 @@ "\n", "To use the compendium of ops for which we have proposed scaling rules, or to develop your own rules, see https://github.com/graphcore-research/unit-scaling.\n", "\n", - "Thanks for reading!" + "Thanks for reading, well done for reaching the end & happy scaling!" ] } ],