База

Арифметика: дроби, проценты, порядки величин

Дроби

$$ \frac{a}{b} + \frac{c}{d} = \frac{ad + bc}{bd}, \qquad \frac{a}{b} \cdot \frac{c}{d} = \frac{ac}{bd}, \qquad \frac{a}{b} : \frac{c}{d} = \frac{a}{b} \cdot \frac{d}{c} $$

  • Делить на дробь = умножать на перевёрнутую.
  • Сокращать можно только множители, не слагаемые: $\frac{2x}{2y} = \frac{x}{y}$, но $\frac{x + 2}{y + 2} \ne \frac{x}{y}$.

Где в ML: precision $= \frac{TP}{TP + FP}$ — это просто дробь «сколько из предсказанных позитивов правильные».

Проценты и доли

Задача Формула Пример
p% от числа $N \cdot p / 100$ 15% от 240 = 36
Какой процент A от B $A / B \cdot 100\%$ 36 из 240 = 15%
Изменение в процентах $\frac{\text{новое} - \text{старое}}{\text{старое}} \cdot 100\%$ 0.80 → 0.84: +5%
Процентные пункты (п.п.) разность процентов 80% → 84%: +4 п.п.

⚠️ Ловушка: «accuracy выросла на 4%» и «на 4 п.п.» — разные вещи. С 80% до 84% — это +4 п.п., но +5% относительно. Ошибка «упала с 20% до 16%» — минус 4 п.п., но минус 20% ошибок.

Несколько изменений подряд перемножаются: +10%, затем −10% — это $1.1 \cdot 0.9 = 0.99$, итог −1%, а не 0.

Порядок действий и округление

Скобки → степени → умножение и деление → сложение и вычитание. В коде то же: 2 + 3 * 4 ** 2 == 50.

Значащие цифры: 0.000123 — три значащие цифры. Float32 хранит ~7 значащих цифр, поэтому 1.0 + 1e-8 == 1.0 (подробнее — модуль 13 основного курса).

Научная запись и порядки величин

$123\,000 = 1.23 \cdot 10^5$, $0.00042 = 4.2 \cdot 10^{-4}$. В коде: 1.23e5, 4.2e-4.

Приставка Множитель Пример в ML
К (кило) $10^3$ 4K контекст ≈ 4096 токенов
М (мега) $10^6$ 125M параметров (GPT-2 small)
G / B (гига, billion) $10^9$ 7B параметров
T (тера, trillion) $10^{12}$ 15T токенов обучения
P (пета) $10^{15}$ PFLOP/s — производительность кластера
м (милли) $10^{-3}$ lr = 3e-4 = 0.3 милли

Прикидка «на салфетке» — ключевой навык: $7 \cdot 10^9$ параметров × 2 байта = $14 \cdot 10^9$ байт ≈ 14 ГБ.

🏋️ Практика Б1

Б1.1. Модель улучшила F1 с 0.62 до 0.71. На сколько процентных пунктов и на сколько процентов?

▶️ Ответ +9 п.п.; относительный рост $(0.71 - 0.62)/0.62 \approx 14.5\%$.

Б1.2. Датасет 1.2 млн картинок, батч 256. Сколько шагов в эпохе? Сколько шагов за 90 эпох?

▶️ Ответ $1\,200\,000 / 256 = 4687.5$ → 4688 шагов (последний батч неполный). За 90 эпох ≈ 421 900 шагов.

Б1.3. Сколько гигабайт займут 50 млн эмбеддингов размерности 768 во float32 (4 байта)?

▶️ Ответ $5 \cdot 10^7 \cdot 768 \cdot 4 \approx 1.54 \cdot 10^{11}$ байт ≈ 154 ГБ. В float16 — 77 ГБ, с квантизацией в int8 — 38 ГБ. Поэтому в векторных базах используют сжатие (PQ).