Предисловие
Pardee Professor of Computer Science Emeritus (почетный профессор информатики)
Калифорнийский университет в Беркли
выдающийся инженер Google
лауреат премии Тьюринга ACM
Беркли, Калифорния
Вся моя карьера была посвящена пониманию и совершенствованию самых основ, на которых работают вычисления: от систем команд, определяющих процессоры, до систем хранения, в которых лежат наши данные. Я видел своими глазами, что значительные достижения редко связаны с одной блестящей идеей, взятой в отрыве. Гораздо чаще они возникают из целостного объединения многих идей в надежную, эффективную и устойчивую систему.
Сегодня мы стоим у очередного переломного момента. Машинное обучение (ML) перестало быть научным любопытством и стало силой, которая перестраивает отрасли, стимулирует инновации и меняет нашу повседневную жизнь. Интеллектуальная мощь алгоритмов, рост точности и почти волшебные возможности, которые они открывают, по праву захватили воображение мира.
Меня тревожит, что большая часть этого прогресса достигнута сообществом, которое — не по своей вине — никогда не учили мыслить о том, что оно строит, в системных категориях. Инженеры умеют вызвать model.fit(), но не могут объяснить, почему обучение медленное. Исследователи подбирают гиперпараметры, не понимая ограничений пропускной способности памяти, которые делают одни выборы непрактичными. Практики развертывают модели в эксплуатацию, не имея рамки для рассуждений о задержке, пропускной способности и режимах отказа.
Блестящий алгоритм без хорошо спроектированной системы, которая его поддерживает, похож на мощный двигатель без шасси и тормозов. Далеко он не уедет, а уж надежно — тем более.
Этот разрыв — не дефицит талантов. Это дефицит учебных программ. У области просто не было учебников, которых она заслуживает. Эта книга, Введение в системы машинного обучения, появляется точно в нужный момент, чтобы осветить этот критически важный и часто упускаемый из виду аспект революции ML.
Почему важно системное мышление
Моя карьера опиралась на силу системного мышления: выявлять узкие места, понимать взаимодействие компонентов и проектировать с расчетом на производительность, надежность, экономическую эффективность и простоту использования во всем стеке. К этому выводу нельзя прийти, опираясь только на первые принципы: нужно было думать о системе.
Системы ML требуют ровно той же дисциплины. Нейронная сеть — не математическая абстракция, парящая вне физических ограничений. Это вычисление, которое должно исполняться на кремнии с конечной пропускной способностью памяти, конечными энергетическими бюджетами и конечной способностью к коммуникациям. Арифметическая интенсивность, модель Roofline и эффекты иерархии памяти — не продвинутые темы, которые проходят после основ. Они и есть основы.
Почему системы ML заслуживают серьезного учебника
Назначение учебника — не только каталогизировать текущий передний край. Его задача — дать концептуальный каркас, который позволит студентам понять этот передний край и продвинуть его самим. Архитектуры нейронных сетей, описанные на этих страницах, будут развиваться, а описанные ускорители — вытеснены. Но некоторые основы не изменятся: иерархии памяти никуда не денутся, арифметическая интенсивность останется ключевой мерой. Принципы конвейеризации, компромиссов между задержкой и пропускной способностью, квантования и точности отражают физические и математические реальности, которые не устаревают. Тот, кто действительно их понимает, сможет рассуждать о любой новой системе, которую отрасль выпустит через год или через десять лет.
Меня поражает и масштаб того, что пытается сделать эта книга. Недостаточно объяснить, как работает обучение; нужно также разобрать инженерию данных, оптимизацию моделей, аппаратное ускорение, развертывание, бенчмаркинг, ответственный ИИ и устойчивость. Это не разрозненные темы, сложенные вместе для полноты. Это взаимосвязанные стороны одной инженерной дисциплины. Решение на уровне данных влияет на поведение модели, которое влияет на задержку вывода, которая влияет на стоимость развертывания, а та — на сообщества, способные или не способные получить доступ к результирующей системе. Книга правильно рассматривает эту интеграцию как предмет первого ранга.
Особенно радует количественная методология, которая проходит через каждую главу. Утверждения подкреплены измерениями, компромиссы выражены числами. Студентов учат оценивать, измерять и проверять, а не полагаться на интуицию. Разница между инженером и дилетантом — именно в этой способности к строгим рассуждениям, опирающимся на измерения.
Почему открытый доступ важен для следующего поколения
Я приветствую решение сделать этот бесценный ресурс свободно доступным.
Когда я в соавторстве с Джоном Хеннесси писал Computer Architecture: A Quantitative Approach, мы обсуждали, как сделать материал максимально доступным. Мы добивались от издателя снижения цены и даже выпустили недорогое издание для международных студентов, предназначенное для продаж за пределами Северной Америки. Эти заботы стали еще острее, когда ML превратился в инфраструктуру — в такую же важную для современного мира вещь, как электрическая сеть или интернет.
Решение опубликовать эту книгу как свободно доступный образовательный ресурс — не компромисс. Это заявление о ценностях. Системы ML внедряются во всех секторах экономики на всех континентах. Инженеры, которые их строят и поддерживают, придут отовсюду. Если фундаментальное образование, необходимое для такой работы, доступно только студентам обеспеченных вузов, мы усилим разрыв в экспертизе, который отражает общественные вопросы о том, кто выигрывает от ИИ и кто несет его издержки.
Еще более впечатляет то, что проект вышел далеко за рамки открытого доступа к статичному тексту. Сопутствующая экосистема — интерактивные лаборатории, фреймворк TinyTorch для сборки с нуля, наборы для аппаратного развертывания, материалы для преподавателей и глобальная сеть университетов, которые принимают курс, — отражает знакомую педагогическую максиму: слышу — забываю, вижу — запоминаю, делаю — понимаю.
Модель открытого исходного кода также делает сам учебный план лучше. Ошибки исправляются, примеры оттачиваются, новые главы появляются в ответ на то, что действительно нужно области. Как мы убедились с Computer Architecture: A Quantitative Approach, сообщество авторов, сложившееся вокруг книги, может обеспечить такой уровень контроля качества, какой не сможет дать ни одна команда авторов в одиночку, как бы опытна она ни была.
Последнее слово
В области архитектуры компьютеров есть традиция, которой я горжусь: мы создаем вещи, честно их измеряем, делимся тем, что узнаем, и пересматриваем свои взгляды, когда того требуют измерения. Мы не прячемся за сложностью своих систем, чтобы уклониться от ответственности за то, работают ли они на самом деле. Мы не путаем новизну с прогрессом. Мы строго спорим о том, что важно и почему.
Хочется надеяться, что инженерия систем ML последует этой традиции. Ей нужны навыки мышления, которые приходят от серьезного отношения к системам: думать о взаимодействиях, измерять на правильном уровне абстракции, честно говорить о компромиссах и нести ответственность перед реальной производительностью, а не перед фольклором бенчмарков. Эта книга воплощает такие навыки.
Введение в системы машинного обучения — больше, чем учебник. Это призыв к системному мышлению в эпоху ИИ, руководство по созданию устойчивых ML-приложений и свидетельство силы открытого образования.
Мы переживаем исключительный момент. За мою карьеру каждое десятилетие приносило крупный прорыв: микропроцессор в 1970-х, персональный компьютер в 1980-х, интернет в 1990-х, смартфон в 2000-х и ИИ в 2010-х. Первые четыре изменили бизнес и общество, однако ИИ, похоже, окажет самое большое влияние из всех.
Системы, которые создаются сегодня, определят, как внедряется интеллект, кто из него извлекает пользу и чего он стоит — в деньгах, в энергии и в углеродном следе. Нам нужны инженеры, которые их строят, и они должны владеть системными навыками на максимальном уровне.
Эта книга — важный шаг к тому, чтобы любой мог их освоить.