Принципы построения
Построение системы машинного обучения требует не только сборки компонентов модели; оно требует управления потоком информации и энергии через кремний. Часть I установила, что данные одновременно являются программой и физическим якорем каждой ML-системы. Опираясь на этот якорь, часть II переходит к взаимодействию алгоритма и машины: как математические модели совместно проектируются вокруг физических пределов аппаратуры, которая должна их исполнять. Принципы здесь начинаются с учета, который определяет, почему одни архитектуры успешны в масштабе, а другие терпят неудачу.
Железный закон систем машинного обучения
Инвариант: пусть обозначает фактическое время выполнения (wall-clock) в секундах. Здесь — объем данных в байтах, — эффективная пропускная способность соответствующего пути памяти или сети в байтах в секунду, — общее число операций с плавающей запятой, — пиковая скорость вычислений в FLOP/s, — безразмерная эффективность использования аппаратуры, а — фиксированные накладные расходы задержки в секундах, например запуск ядра или сетевой обмен туда и обратно. Когда перемещение данных, вычисления и фиксированные накладные расходы выполняются последовательно, их идеализированные времена складываются: Полное изложение см. в разделе «Железный закон систем машинного обучения».
Когда перемещение данных и вычисления перекрываются на современной аппаратуре, фактическое время выполнения следует критическому пути и не может быть меньше времени более медленного этапа плюс любой фиксированной задержки, которая остается вне перекрытия. Практический урок касается доминирования, а не безусловного суммирования.
Следствие: оптимизация редко бывает свободна от компромиссов. Снижение одного члена часто переносит узкое место на другой. Например, использование неструктурированной разреженности может сократить выполняемые арифметические операции, но разреженные представления и ядра могут снизить эффективную пропускную способность или добавить трафик индексов, увеличивая время перемещения данных . Оптимизация улучшает время выполнения только в той мере, в какой она сокращает критический путь на целевой аппаратуре.
Железный закон указывает, что оптимизировать, но не как. Архитектура решает, как это делать, еще до начала реализации.
Кремниевый контракт
Инвариант: каждая архитектура модели и режим нагрузки неявно берут обязательство перед аппаратурой — ставку на то, какой ресурс будет насыщен первым.
- ResNet-50 предполагает высокую плотность вычислений с плавающей запятой. При пакетном обучении или выводе на ускорителях она часто ограничена вычислениями: производительность ограничена .
- Llama 3 на 8 миллиардов параметров предполагает высокоскоростной доступ к памяти при авторегрессионном декодировании. При малых батчах она часто ограничена пропускной способностью: производительность ограничена .
- DLRM предполагает огромные таблицы вложений и разреженные обращения. Ее определяют и емкость, и пропускная способность: производительность зависит от того, помещаются ли таблицы вложений в доступную иерархию памяти и насколько быстро можно обслуживать разреженные обращения.
Следствие: проектировать модель, не зная, какой ресурс аппаратуры она насытит, — все равно что проектировать мост, не зная прочности стали. Проект должен быть направлен на узкое место.
Вместе железный закон и кремниевый контракт задают рамку для каждого проектного решения в части II. Последующие главы переводят эти принципы в компоненты стека ML: математические основы градиентного потока, архитектурные паттерны, которые закладывают определенные аппаратные ресурсы, фреймворки, которые отображают операции модели на аппаратуру, и системы обучения, которые исполняют ту же физику в масштабе.