Благодарности
Истоки
Эта книга обязана своим появлением одному разговору. Во время академического отпуска в Google Пит Уорден пригласил меня заняться, как тогда казалось, невыполнимой задачей для TinyML: запустить небольшую модель распознавания речи на микроконтроллере. Эта работа над TensorFlow Lite for Microcontrollers выявила нечто фундаментальное. Ограничения, которые управляют устройством с памятью от 16 КБ до 256 КБ, — те же, что управляют ускорителем в центре обработки данных, даже когда масштаб совершенно иной. Пропускная способность, задержка, энергия и память подчиняются одной и той же физике в обоих случаях. Это понимание стало зерном, из которого выросла книга.
Работа над TinyML привела к онлайн-курсу на HarvardX, который я вел вместе с Лоуренсом Моронеем и который вырос до более чем 100 000 студентов по всему миру. Брайан Плэнчер помог построить учебную программу по TinyML. Маркело Ровай, профессор, впервые познакомившийся с материалом через курс TinyML, позднее разработал практические лабораторные работы и наборы, которые сопровождают эту книгу. Зак Шелби открыл платформу Edge Impulse для студенческого использования. Массимо Банци и команда Arduino вместе с Эриком Паном и Seeed Studio сотрудничали с нами в разработке и предоставлении аппаратных наборов, которые сделали практическое обучение возможным. Марко Дзеннаро принес этот материал в развивающиеся страны через ICTP и высказал мысль, что эти принципы заслуживают полноценного учебника. Преподавание в таком масштабе без учебника сделало эту потребность очевидной.
Эта потребность превратилась в книгу в рамках курса CS249r в Гарвардском университете. В 2023 году семестровый проект курса состоял в том, чтобы написать конспекты лекций: каждая группа студентов брала на себя тему, изучала ее и вместе со мной превращала в главу. Эта работа заложила основу каждой главы книги. Исходная идея состояла в том, что письмо заставляет думать глубже, чем чтение. Затем мы открыли все это на GitHub, и то, что начиналось как черновые конспекты, с каждым семестром переписывалось и совершенствовалось.
Поскольку работа на GitHub продолжается, книга опирается на сообщество, вклад которого развивается вместе с проектом. Новые участники присоединяются по мере того, как читатели сообщают о проблемах, улучшают объяснения и дополняют поддерживающие материалы. Такая благодарность может зафиксировать лишь один момент этой продолжающейся истории. Актуальный список участников и правила внесения вклада доступны по адресу https://mlsysbook.ai/git.
Галерея участников в русском издании не воспроизводится: актуальный список ведется в английском репозитории, и его можно посмотреть по адресу mlsysbook.ai/git.
Коллеги и соратники
За пределами курса и сообщества GitHub мои более ранние совместные проекты сформировали интеллектуальный фундамент книги. Работа в Google повлияла на значительную часть системного мышления, изложенного на этих страницах. Этот период начался с моделирования производительности для первой системы на кристалле (SoC) Pixel, которое опиралось на мой опыт в архитектуре компьютеров. Совместная работа с Марком Хиллом над аналитическим моделированием в духе Roofline для гетерогенных SoC научила меня рассуждать об аппаратуре из первых принципов — тому количественному мышлению, которое проходит через каждую главу. Этот акцент на аналитическом моделировании естественно привел к систематической оценке, а систематическая оценка — к MLPerf. В MLPerf участвовало много людей из MLCommons, но ближе всего я работал с Питером Маттсоном, Дэвидом Кантером, Кэрол-Жан У, Кристин Ченг, Гюнтером Шмюлинг, Коди Колеманом и Клиффом Янгом. Эта совместная работа определила то, как я думаю о строгом измерении ML-систем.
Борис Мурманн и Сон Хан убедили меня на ранних этапах, что проект стоит продолжать. По мере написания я обращался за обратной связью к коллегам из промышленности и академической среды. Практики из Arm, Google, Intel, Meta, Microsoft, Qualcomm, STMicroelectronics и других организаций предлагали взгляд, опирающийся на производственные системы, а академические рецензенты из университетов Европы, Азии и Америк проверяли материал на соответствие собственным исследованиям и преподаванию. Их совокупная обратная связь сделала каждую главу точнее. Эвгений Гузев из Qualcomm и Пит Бернард из Edge AI Foundation поддержали просветительскую работу проекта и помогли построить вокруг него сообщество.
Эта петля обратной связи распространилась на аудитории по всему миру, где преподаватели проверяли материал, когда он еще был сырым. Софи Шао из UC Berkeley, Сяофань (Фред) Цзян из Колумбийского университета, Тушар Кришна и Дивья Махаджан из Технологического института Джорджии и Венькай Гуань из Миннесотского университета в Морисе были среди первых, а преподаватели из IIT Bombay, NUST Pakistan, De La Salle University на Филиппинах и университетов Европы, Латинской Америки и Африки с тех пор использовали книгу в своих курсах. Их готовность преподавать по незавершенному учебнику дала бесценную обратную связь и подтвердила, что потребность в этом материале не ограничена каким-либо одним учреждением или страной.
Студенты и участники
Мои студенты из Лаборатории вычислительных систем для периферии в Гарварде сформировали эту книгу способами, которые я не могу проследить полностью. Некоторые из них выполнили фундаментальную работу, которая помогла утвердить TinyML как область; их исследования и идеи, возникшие за годы совместной работы, вошли в техническое содержание книги. Эта когорта помогла запустить направление, а затем помогла мне написать о нем: Энди Ченг, Арья Чанд, Брайан Плэнчер, Колби Банбери, Элизабет Суитор, Эмма Чен, Икечукву Ученду, Джейсон Джаббур, Джейсон Йик, Джеффри Ма, Джессика Квайе, Марк Мазумдер, Мэтью Стюарт, Максимилиан Лам, Радхика Гошал, Шветанк Пракаш, Шриватсан Кришнан, Юнь-Шунь Сяо и Цзышэнь Ван. Кай Клайнбард, тогда работавший в Harvard Extension School, создал онлайн-наставника по генеративному ИИ SocratiQ. Нэим Хошневис из Harvard Kempner Institute построил необходимую инфраструктуру, включая GitHub Actions и стандарты документирования. Желько Хрчек подготовил диаграммы TikZ и участвовал в верстке PDF, композиции страниц и окончательном визуальном оформлении книги.
Работа также опиралась на поддержку Harvard Data Science Initiative, Harvard Extension School и Национального научного фонда; Edge AI Foundation и ICTP — за образовательную работу и стипендии; а также Arduino, Edge Impulse, Google и Seeed Studio — за аппаратное обеспечение, инструменты и инфраструктуру, которые сделали практические лабораторные возможными.
В MIT Press Сьюзан Хартман поверила в этот проект и провела его от эксперимента с открытым исходным кодом к опубликованной книге. Ее поддержка, редакторское чутье и дружба сделали эту книгу реальностью так, как не смог бы сделать один GitHub. Я в равной мере благодарен MIT Press за согласие сохранить книгу в открытом доступе. Учебник о дисциплине, которую формирует сообщество открытого исходного кода, должен быть доступен всем, кто в ней участвует. То, что MIT Press разделил эту убежденность, сыграло решающую роль.
Наконец, я благодарю мою жену Кари и моих дочерей Нору и Майю. Эта книга писалась в часы, которые принадлежали им: поздние ночи, которые начинались в десять и заканчивались в два-три часа утра, выходные, которые растворялись в правках, годы утр, когда я был рядом, но не совсем. Помимо упрямства, меня поддерживало сообщество открытого исходного кода. Каждая звезда на GitHub была сигналом, что кому-то это небезразлично, что кто-то учится, что работа важна. Цена была реальной, и они платили ее терпением, которого я не всегда заслуживал.