Обозначения
Инженерия ML-систем соединяет машинное обучение (информатику и статистику) и системы (архитектуру компьютеров и аппаратуру). Каждая из этих областей выработала свои обозначения независимо, и многие символы означают разное в разных сообществах и публикациях. Это столкновение создает реальную путаницу, когда дисциплины сливаются. Приведенные ниже соглашения вводят единое обозначение, которое устраняет эту неоднозначность.
Рассмотрим простое утверждение: «Увеличение повышает пропускную способность». Для исследователя ML означает размер батча. Для инженера-аппаратчика означает пропускную способность. Обе трактовки верны в своих областях, но в ML-системах нам нужны оба понятия в одном уравнении — отсюда необходимость единого последовательного соглашения.
Железный закон систем машинного обучения
Для последовательных фаз исполнения декомпозиция производительности по железному закону такова:
Каждая переменная выбрана намеренно, чтобы не совпадать с обычной ML-терминологией.
| Символ | Определение | Единица | Почему именно этот символ? |
|---|---|---|---|
| Время | секунды | Однозначно. Фактическое время выполнения операции. | |
| Объем данных | байты | Избегает совпадения с (размер набора данных). В законах масштабирования означает обучающие токены. Здесь нам нужны байты, прошедшие через память. Индекс устраняет неоднозначность. | |
| Пропускная способность | байт/с | Избегает совпадения с (размер батча). В литературе по системам часто означает пропускную способность, а в ML — размер батча. Обозначение сохраняет соглашение ML. | |
| Операции | FLOP | Общее число операций с плавающей запятой. Аккуратно выглядит в формулах (в отличие от «»). | |
| Пиковая скорость | FLOP/s | Избегает совпадения с (параметры). В презентациях Roofline для производительности часто используют , а в ML — для числа параметров. Обозначение сохраняет соглашение ML. | |
| Эффективность | — | Загрузка аппаратуры . Избегает совпадения со скоростью обучения . | |
| Задержка | секунды | Избегает совпадения с (функция потерь). Фиксированное время накладных расходов (запуск ядра, RTT сети). Индекс отличает его от функции потерь. |
Почему эти выборы важны
Без аккуратных обозначений предложения становятся двусмысленными:
«Уменьшение улучшает производительность».
У предложения два возможных прочтения:
- Уменьшение размера набора данных (меньше обучающих примеров) может ускорить обучение, но может снизить точность.
- Уменьшение перемещаемого объема данных (например, за счет сжатия или квантования) может ускорить инференс, а влияние на точность зависит от метода и калибровки.
С нашими обозначениями можно записать точно:
«Уменьшение за счет квантования FP32 в INT8 сокращает трафик памяти параметров вчетверо, а (обучающие данные) остается неизменным».
Наше обозначение устраняет эту неоднозначность: « ограничивает пропускную способность» допускает только одно прочтение.
Варианты с индексами
Прямой корень называет величину, а индекс указывает, какой ее экземпляр имеется в виду. Соглашение разводит близкие измерения по разным обозначениям, не сводя их к одному символу:
- , , : пропускная способность в трех точках пути данных
- , , , : члены железного закона, каждый из которых отделен от общего ML-символа
- , , : один энергетический бюджет, разделенный на части, которые можно обменивать
Поэтому индекс несет часть утверждения. Пропускные способности диска и ускорителя различаются на порядки, поэтому значение воспроизводимо только тогда, когда индекс говорит, где было выполнено измерение.
Уравнение деградации
Уравнение деградации — подогнанная локальная модель. Одно лишь расхождение не определяет направление изменения точности, поэтому оценивается по размеченным исходам. Некоторые символы ниже, например , встречаются в тексте глав, а не в уравнении.
| Символ | Определение | Единица/тип | Примечания |
|---|---|---|---|
| Точность в момент | скаляр | Точность модели после того, как она проработала в эксплуатации время . | |
| Начальная точность | скаляр | Точность модели в момент развертывания. | |
| Подогнанная чувствительность | скаляр | Локальный коэффициент, оцененный по исходам на заявленном диапазоне; не универсальная константа. (Не длина волны.) | |
| Текущее распределение | распределение | Распределение данных в момент . (Не параметры — для числа параметров используйте .) | |
| Обучающее распределение | распределение | Распределение данных в момент обучения. | |
| Статистическое расхождение | скаляр | Измеряет, насколько ушло от . Обычные варианты: расхождение Кульбака–Лейблера, полная вариация, расстояние Вассерштейна. (Каллиграфический, чтобы не совпадать с = размер набора данных.) | |
| Порог реакции | скаляр | Эксплуатационный порог для расследования; он не запускает переобучение автоматически. |
Следствие для энергии
При эффективных стоимостях на байт и на операцию энергия нагрузки приближенно равна:
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Полная энергия | джоули | Полная энергия, потребленная ML-нагрузкой и разложенная на члены перемещения данных и вычислений. | |
| Энергия на перемещенный байт | джоули/байт | Эффективная стоимость перемещения; полная энергия зависит также от перемещенных байтов и выполненных операций. | |
| Энергия на операцию | джоули/FLOP | Энергетическая стоимость одной арифметической операции. |
Обозначения глубокого обучения
Книга следует стандартным соглашениям глубокого обучения (Goodfellow et al., 2016) с явным различением системных переменных.
| Символ | Определение | Размерность/тип |
|---|---|---|
| Размер батча | Целое. Число образцов, обрабатываемых параллельно. (Никогда не пропускная способность.) | |
| Параметры | Целое. Общее число скалярных параметров модели, включая веса и смещения. (Никогда не пиковые FLOP/s.) | |
| Размер набора данных | Целое. Число обучающих образцов или токенов. (Никогда не объем данных в байтах — используйте .) | |
| Длина последовательности | Целое. Число токенов или временных шагов. | |
| Размерность скрытого состояния | Целое. Размер вектора скрытого состояния. | |
| Размерность головы внимания | Целое. Размерность скрытого состояния одной головы в слоях внимания. | |
| Число слоев | Целое. Общее число слоев в сети. | |
| Число голов внимания | Целое. Число голов внимания в слое многоголового внимания. | |
| Число голов ключ–значение | Целое. Число голов ключ–значение в групповом (grouped-query) или многозапросном (multi-query) внимании. | |
| Индекс слоя | Целое. Индекс слоя. Используйте вместо голого при индексации слоев, потому что совпадает с потерями и задержкой. | |
| Функция потерь | Скаляр. Целевая функция, которую минимизируют при обучении. | |
| Скорость обучения | Скаляр. Размер шага оптимизатора. (Никогда без индекса для эффективности аппаратуры — используйте .) | |
| Параметры модели | Набор параметров, часто трактуемый как вектор. Множество всех обучаемых параметров. | |
| Распределение | Вероятностная масса или плотность случайной величины. Для общих распределений используйте строчное , чтобы не совпадать с (число параметров). | |
| Условное распределение | Условная вероятность или плотность. Эту форму используйте для общих зависимостей меток; и оставьте для обучающего и текущего распределений в уравнении деградации. | |
| Вероятность события | Вероятность события . Используйте для утверждений о событиях, например ; для распределений используйте и . |
Латинские матрицы и векторы набираются полужирным (, ); скаляры, размерности, индексы и отдельные элементы матриц остаются курсивом (, , , ). Общий символ параметров — единственное обычное исключение, и он остается курсивом. Локальная матричная алгебра следует тому же правилу полужирного: операнды-матрицы полужирные (, , ), как в общем матричном умножении (GEMM) . Полужирная форма отмечает матричный операнд и отличается от курсивного скалярного размера батча , который в скалярных контекстах остается размером батча.
Обозначения производительности, обслуживания и памяти
Повторно используемые величины производительности и обслуживания следуют тому же правилу избегания коллизий, что и железный закон. Скорости обозначаются через или описательные греческие символы; число запросов — через , а не перегруженным ; загрузка очереди — через с индексом, чтобы голое оставалось доступным для других моделей отношений.
| Символ | Определение | Единица/тип | Примечания |
|---|---|---|---|
| Арифметическая интенсивность | FLOP/байт | FLOP нагрузки на перемещенный байт. Модель Roofline использует как независимую переменную. | |
| Точка перехода Roofline | FLOP/байт | . Предпочитается эта явная форма вместо краткой записи со звездочкой, чтобы смысл оставался ясным в тексте. | |
| Достижимая скорость вычислений | FLOP/s | Граница Roofline: . Использует , а не , потому что величина — скорость. | |
| Утилизация FLOP модели | безразмерная | Полезные FLOP/s модели, деленные на доступные пиковые FLOP/s. Текстовая аббревиатура не перегружает . | |
| Коэффициент сжатия | безразмерный | Размер без сжатия, деленный на размер после сжатия. Сжатая полезная нагрузка имеет несжатого размера; индекс избегает голого . | |
| Одновременность запросов | запросы | Среднее число запросов в обработке в устойчивой системе обслуживания ( по закону Литтла). Избегает совпадения с как числом устройств в распределенных системах. | |
| Интенсивность прихода | запросы/с | Интенсивность прихода запросов. Индекс избегает совпадения с как чувствительностью деградации или интенсивностью отказов. | |
| Время запроса в системе | секунды | Сквозная задержка очереди и обслуживания для закона Литтла. Отличается от , фиксированного члена задержки в железном законе. | |
| Время обслуживания батча | секунды | Время обслуживания батча размера . | |
| Эффективная скорость обслуживания | запросы/с | Скорость обслуживания при батчинге, обычно . | |
| Загрузка обслуживания | безразмерная | Загрузка очереди или сервера. Используется вместо голого , которое в распределенных контекстах зарезервировано за отношением коммуникации к вычислениям. | |
| Полный объем памяти | байты | Сумма явных компонентов памяти; избегает неоднозначности голого . | |
| Память весов | байты | Память, занятая параметрами модели. | |
| Память градиентов | байты | Память, занятая сохраненными градиентами. | |
| Память состояния оптимизатора | байты | Моменты, дисперсии, основные веса и другие буферы оптимизатора. | |
| Память активаций | байты | Сохраненные активации для обратного прохода или промежуточные данные обслуживания. | |
| Размер хранения элемента | байты/элемент | Байты на один хранимый элемент тензора. |
Единицы измерения и точность
- Физические единицы: книга во всем тексте использует метрические единицы СИ — метры, килограммы, секунды, ватты и градусы Цельсия, в соответствии со стандартной инженерной и научной практикой. Если исходные данные были приведены во внесистемных единицах, книга переводит их в СИ и в скобках указывает исходные значения. Между числом и единицей всегда ставится пробел (например, 100 мс, 2 ТБ/с).
- Данные и память: книга использует только десятичные приставки СИ: КБ = байт, МБ = , ГБ = , ТБ = . Двоичные приставки в тексте не встречаются; все емкости, пропускные способности и размеры моделей приводятся в десятичных единицах (например, 80 ГБ, 2 ТБ/с, 102 МБ).
- Вычисления: обозначения различают число операций и скорости. Общий объем работы измеряется в FLOP (например, GFLOP, TFLOP), а пропускная способность — в FLOP/s с десятичными приставками (например, GFLOP/s, TFLOP/s).
- 1 TFLOP = FLOP
- 1 TFLOP/s = FLOP в секунду
- Арифметическая интенсивность обычно выражается в FLOP/байт как единичное отношение (операции с плавающей запятой на перемещенный байт). Это единица отношения, а не символ общего объема работы или пропускной способности.
- Валюта: суммы в долларах обозначаются знаком доллара (
$); если не указано иное, стоимости в долларах — это доллары США (USD). - Точность:
- FP64: двойная точность (8 байт)
- FP32: одинарная точность (4 байта)
- TF32: TensorFloat-32 (режим вычислений тензорных ядер с 19-битным представлением; входы и хранение остаются FP32)
- FP16: половинная точность (2 байта, стандартный диапазон)
- BF16: brain float (2 байта, широкий динамический диапазон)
- FP8: четверть точности (1 байт, формат E4M3 или E5M2)
- FP4: 4-битный формат с плавающей запятой
- INT8: 8-битное целое (1 байт)
- INT4: 4-битное целое; более низкие целочисленные точности следуют тому же шаблону записи
INTnзаглавными буквами (например, INT3, INT2)
Краткая справка: разрешение коллизий
Частые точки коллизий в литературе по системам машинного обучения:
| Символ | Значение в ML | Значение в системах | Соглашение книги |
|---|---|---|---|
| Размер батча | Пропускная способность | Размер батча. Для пропускной способности используйте . | |
| Параметры | Пиковые FLOP/s | Параметры. Для пиковой скорости используйте . | |
| Размер набора данных | Объем данных | Размер набора данных. Для перемещенных байтов используйте . | |
| Потери | Задержка | Потери . Для задержки используйте . | |
| Скорость обучения | Эффективность | Скорость обучения. Для эффективности используйте . |
Как общий принцип, соглашения ML имеют приоритет для одиночных букв, тогда как системные понятия получают индексы или многобуквенные символы. Это отражает основную аудиторию (практиков ML, изучающих системы) и сохраняет совместимость с обширной литературой по ML.
Обозначения распределенных систем
Работа с распределенными системами вводит второй слой обозначений для координации, коммуникации и надежности. Некоторые из приведенных ниже символов закреплены за контекстами синхронизации, восстановления и оценки размера градиентов; их централизованное определение сохраняет каноническую форму однозначной там, где они встречаются. Центральное уравнение — закон парка (закон времени распределенного шага):
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Число устройств | целое | Число ускорителей в распределенном задании. (Не число параметров, для него используйте .) | |
| Время распределенного шага | секунды | Фактическое время одного шага обучения в масштабе . | |
| Время вычислений на одном устройстве | секунды | Проходы вперед и назад на одном устройстве. | |
| Время коммуникации | секунды | Время коллективных операций (AllReduce, AllGather). Растет с . | |
| Перекрытое время | секунды | Коммуникация, скрытая за вычислениями. Снижает эффективные накладные расходы. | |
| Время синхронизации | секунды | Суммарная неперекрытая стоимость синхронизации или координации на шаг в масштабе . | |
| Отношение коммуникации к вычислениям | безразмерная | . Значения около 1 и выше указывают на масштабирование, ограниченное коммуникацией. |
Модель коммуникации -
Время сетевой коммуникации раскладывается на фиксированную задержку и передачу, зависящую от пропускной способности:
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Время коммуникации | секунды | Фактическое время передачи сообщения размера по одному каналу. | |
| Сетевая задержка | секунды | Фиксированные накладные расходы на сообщение. (Не скорость обучения, контекст снимает неоднозначность.) | |
| Пропускная способность канала | байт/с | Эффективная пропускная способность на канал. | |
| Размер сообщения | байты | Размер полезной нагрузки (например, тензора градиентов). | |
| Точка перехода | байты | . Ниже : ограничение задержкой. Выше: ограничение пропускной способностью. |
Расширение LogGP
LogGP уточняет модель -, разделяя сетевую задержку, накладные расходы процессора и интервалы впрыскивания длинных сообщений. Стандартные названия короткие, но для самого конфликтного члена книга использует описательные индексы.
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Время длинного сообщения в LogGP | секунды | Время передачи длинного сообщения в байт. Использует из модели -. | |
| Сетевая задержка LogGP | секунды | Стандартный параметр задержки LogGP; индекс избегает коллизий с голым . | |
| Накладные расходы отправителя | секунды | Накладные расходы процессора или сетевой карты на инициирование сообщения. | |
| Накладные расходы получателя | секунды | Накладные расходы процессора или сетевой карты на завершение сообщения. | |
| Интервал впрыскивания сообщений | секунды | Минимальный интервал между последовательными впрыскиваниями сообщений. | |
| Интервал длинного сообщения на байт | секунды/байт | Интервал длинного сообщения на байт; не путать с пропускной способностью канала . |
Эффективность масштабирования
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Эффективность масштабирования | безразмерная | Отношение измеренного ускорения к идеальному линейному. Значение — идеальная линейная база, а не жесткая верхняя граница. | |
| Время на одном устройстве | секунды | Базовое фактическое время той же полезной работы на одном устройстве. | |
| Время на устройствах | секунды | Фактическое время той же полезной работы на устройствах; не включает операционный простой, учитываемый в . |
Отказоустойчивость и надежность
Надежность системы деградирует с масштабом. При независимых компонентах с экспоненциальным распределением отказов надежность системы из компонентов равна:
В суммарном показателе экспоненты используется интенсивность отказов на уровне системы , где — интенсивность отказов одного компонента при допущении независимых одинаковых компонентов. Показатель безразмерен, поэтому должно измеряться в тех же единицах времени, что и (в часах, когда получена из приведенных ниже интенсивностей в единицах FIT).
Оптимальный интервал контрольных точек уравновешивает стоимость ввода-вывода и стоимость повторной работы:
В формуле используется среднее время между отказами (MTBF) всей системы (интервал между отказами для всего задания), а не MTBF компонента; подстановка значения компонента завысила бы в раз. Для согласованности размерностей и должны быть в одних и тех же единицах времени. Стандартный в отрасли указывают в часах; чтобы объединить его со временем записи в масштабе секунд, выполните пересчет: . Результат затем выражается в тех же единицах времени, что выбраны для входных данных.
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Функция надежности | вероятность | Вероятность отсутствия отказов во всей системе до момента . | |
| Интенсивность отказов компонента | отказов/час | Интенсивность отказов одного компонента; интенсивность отказов системы равна при независимых одинаковых компонентах. Стандартная отраслевая единица — FIT (отказов на устройство-часов): . (Не чувствительность — контекст снимает неоднозначность.) | |
| Среднее время между отказами | часы | Среднее время между последовательными отказами. . | |
| Среднее время до отказа | часы | Показатель срока службы компонента, выведенный из интенсивностей FIT. Отличается от системы, когда моделируются циклы ремонта или замены. | |
| Среднее время восстановления | часы | Среднее время восстановления после отказа. | |
| Оптимальный интервал контрольных точек | секунды | Формула Янга–Дэйли. Минимизирует суммарное потерянное время. | |
| Время записи контрольной точки | секунды | Время сохранения состояния модели в хранилище. |
Измерения параллелизма
3D-параллелизм разбивает нагрузку обучения по трем ортогональным измерениям:
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Общее число устройств | целое | Произведение трех измерений параллелизма. Общее число ускорителей в задании. | |
| Параллелизм по данным | целое | Число реплик модели. (Также скрытая размерность, контекст снимает неоднозначность.) | |
| Физические стадии конвейера | целое | Число физических стадий конвейера при разбиении по глубине модели. | |
| Тензорный параллелизм | целое | Степень внутрислойного разбиения (по ширине модели). (Также время, контекст снимает неоднозначность.) | |
| Число микробатчей | целое | Число микробатчей, которыми заполняют и опустошают конвейер. | |
| Доля пузыря конвейера | безразмерная | Доля времени GPU конвейера, проведенная в простое; избегает голого . | |
| Виртуальные стадии конвейера на устройство | целое | Число чередующихся виртуальных фрагментов, назначенных каждой физической стадии конвейера. | |
| Размер полезной нагрузки сообщения | байты | Общий размер градиента, состояния модели, активации или сжатой полезной нагрузки сообщения для передачи. |
Факторы емкости парка
Расчеты емкости в масштабе парка перемножают эффективность модели на одном устройстве, эффективность масштабирования продуктивных шагов и операционную полезную загрузку (goodput), измеряемую вне этих шагов.
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Доля полезного времени вычислений | безразмерная | . Показывает, какая часть времени шага приходится на полезную локальную арифметику после распределения. | |
| Доля операционных накладных расходов | безразмерная | Доля выделенного фактического времени, потерянная вне продуктивных шагов, измеряемых : паузы на контрольные точки, восстановление после отказов, вытеснение планировщиком или обслуживание. | |
| Коэффициент goodput | безразмерная | Доля выделенного фактического времени, остающаяся после потерь вне шагов, учтенных в ; часто . | |
| Эффективная пропускная способность парка | FLOP/с | , где — база на одном устройстве, отражает все потери масштабирования внутри шага, а — только операционные потери вне шагов, исключенные из . |
Экономика сжатия
Модели сжатия сравнивают накладные расходы кодека со временем коммуникации, сэкономленным за счет уменьшения полезной нагрузки.
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Время передачи полезной нагрузки | секунды | Время коммуникации для полезной нагрузки в байт в соответствующей модели канала или коллективной операции. | |
| Время коммуникации со сжатием | секунды | Суммарное время после кодирования, передачи и декодирования. | |
| Время кодирования кодеком | секунды | Локальные накладные расходы сжатия перед передачей. | |
| Время декодирования кодеком | секунды | Локальные накладные расходы распаковки после передачи. |
Память обслуживания в масштабе
| Символ | Определение | Единица | Примечания |
|---|---|---|---|
| Память KV-кэша | байты | Объем кэша ключей и значений при авторегрессивном обслуживании. |
Дополнительные точки коллизий
Распределенный контекст вносит дополнительные коллизии символов сверх отмеченных в базовых обозначениях:
| Символ | Значение в ML | Значение в распределенных системах | Соглашение книги |
|---|---|---|---|
| — | Число устройств | Число устройств в распределенном контексте (ускорители, а не хост-узлы). | |
| Чувствительность | Интенсивность отказов | Зависит от контекста. Чувствительность при деградации; интенсивность отказов в надежности. | |
| Скрытая размерность | Степень параллелизма по данным | Зависит от контекста. Параллелизм в 3D-обозначениях; скрытая размерность в архитектурах. | |
| — | Тензорный параллелизм / время | Зависит от контекста. Тензорный параллелизм в 3D-обозначениях; время в надежности. | |
| Порог дрейфа | Локальный интервал / задержка | Избегайте голого повторного использования. Используйте для общих интервалов контрольных точек, для оптимума Янга–Дэйли и для устаревания градиентов. |
Дополнительные единицы
- Пропускная способность сети: указывается и в байтах в секунду (ГБ/с, ТБ/с), и в битах в секунду (Гбит/с) в зависимости от соглашения. Спецификации InfiniBand и Ethernet используют Гбит/с; пропускная способность на уровне приложений — ГБ/с. Соглашение отмечается при первом использовании.
- Мощность в контекстах устойчивости: физическая мощность может обозначаться явно индексированными переменными (например, , , ), когда окружающий раздел посвящен мощности или энергии. Голое остается зарезервированным за числом параметров.