Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Обозначения

Инженерия 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 использует как независимую переменную.
Точка перехода RooflineFLOP/байт. Предпочитается эта явная форма вместо краткой записи со звездочкой, чтобы смысл оставался ясным в тексте.
Достижимая скорость вычислений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 используют Гбит/с; пропускная способность на уровне приложений — ГБ/с. Соглашение отмечается при первом использовании.
  • Мощность в контекстах устойчивости: физическая мощность может обозначаться явно индексированными переменными (например, , , ), когда окружающий раздел посвящен мощности или энергии. Голое остается зарезервированным за числом параметров.