Полное руководство

Заявление об ограничении ответственности: эта статья не содержит никакой информации, которая еще не стала общедоступной для всех, кто готовится к экзамену. Эта статья не содержит вопросов, полностью или частично, а также ответов, полностью или частично, из фактического экзамена. Когда я использую термин «ответ по умолчанию» или предлагаю ответ на возможный вопрос, я изо всех сил стараюсь убедиться, что ответ правильный, на основе предоставленной документации или подготовительных материалов, но я не могу гарантировать, что ответ правильный. Точно так же я не могу гарантировать, что список тем будет полным или полностью соответствует фактическим вопросам экзамена - это только мои лучшие усилия, основанные на материалах подготовки. Цель этой статьи - помочь вам лучше подготовиться, и я бы посоветовал избегать любых форм обмана во время подготовки или самого экзамена.

Обновление 2020–11–28: в конце статьи добавлена ​​замечательная «Диаграмма решений для моделирования GCP ML». Проверьте это!

Вступление

Вчера, 2020–11–24, я сдал Экзамен на сертифицированного профессионального инженера по машинному обучению Google (с этого момента я буду называть его просто экзаменом). Я чувствую себя обязанным поделиться своим опытом с моими коллегами-инженерами по машинному обучению, потому что путь к этому священному результату PASSED не должен быть таким сложным, как сейчас.

У меня было всего две недели подготовки, но я бы порекомендовал как минимум один месяц для опытных инженеров. Думаю, в моем случае двух недель хватило, потому что:

  1. Я уже сдавал Google Professional Data Engineer раньше, поэтому я уже знаю формат экзамена и знаком с мельчайшими деталями служб GCP.
  2. ML Engineering - моя повседневная работа, и это очень помогло во время экзамена - я вспомнил проблемы, с которыми мы столкнулись, и решения, которые мы применили.

Важное замечание: не будет никаких вопросов или ответов - это несправедливо, я не хочу портить вам удовольствие.

Важное замечание: будьте готовы к тому, что вашей подготовки будет недостаточно! Это также верно и для экзамена Data Engineer: примеры вопросов, курсов и других подготовительных материалов не отражают сложность реальных вопросов! Хотя темы те же, ожидайте, что реальный вопрос затронет ограничения услуг или даже представит несколько применимых решений, одно из которых будет немного более «официальным способом сделать это». Полагаю, отсюда и необходимость трехлетнего практического опыта.

Важное примечание: я полагаю, что Google выбирает вопросы случайным образом, поэтому ваш опыт может отличаться.

Формат экзамена: 60 вопросов, 120 минут. Большинство из них - вопросы с одним вариантом ответа, но было меньше пяти вопросов с несколькими вариантами ответа. От вас не требуется никаких расчетов, и вы не получаете бумагу для заметок. Есть вопросы по фрагментам кода на Python.

Ощущение экзамена

Я выбрал автономный экзамен под наблюдением в центре тестирования, потому что любая мелочь дома, например, разрыв связи или внезапный прыжок кошки, может испортить вашу попытку.

Когда начался экзамен, меня застали врасплох первый вопрос, поэтому мой совет - не судить себя, пока вы не закончите экзамен. Просто продолжайте отвечать - вопросы не расположены в определенном порядке, поэтому с самого начала вы можете получить что-то действительно сложное, а затем последуют простые вопросы.

Говоря о сложности, вопросы в среднем сложнее, чем типовые вопросы, но этого следовало ожидать после экзамена на инженера по данным. Я не был уверен насчет ~ 10 вопросов и не знал ответа на ~ 5 вопросов. Таким образом, я поставил на рассмотрение около 15 вопросов. Было довольно сложно поддерживать скорость 2 минуты на вопрос, поэтому в итоге мне пришлось ускориться и у меня было ~ 6 минут, чтобы просмотреть отмеченные вопросы. Мой совет здесь - внимательно следить за своим временем, потому что на этом экзамене вы можете легко выйти из него. Кроме того, не ставьте для обзора вопросы, в которых вы уверены более чем на 70%.

Думаю, я придумал полезную стратегию чтения вопросов. Во-первых, прочтите вопрос полностью, даже если вы думаете, что уже знаете ответ. Убедитесь, что в вопросе содержатся положительные утверждения (платформа AI поддерживает…) или отрицательные утверждения (платформа AI не поддерживает…). Во-вторых, прочтите вопрос еще раз и создайте мысленную модель проблемы: контролируемая или неконтролируемая проблема, регрессия, бинарная или мультиклассовая классификация. В-третьих, прочтите вопрос еще раз (в последний раз, обещаю), а теперь поищите требования и ограничения: «доступен ли набор данных и где он?», «Есть ли настраиваемые категории?» Или «это что-то, что ML API могут подобрать? »,« Вы обязаны кодировать модель? »,« Есть ли спешка в разработке / оценке? » и так далее. В-четвертых, прочитайте каждый возможный ответ и аргументируйте, почему он может или не может быть подходящим. Помните - вы должны прочитать все ответы, прежде чем сможете выбрать один. Google любит давать несколько подходящих и идеально работающих ответов, но один из них будет немного более подходящим, учитывая требования в вопросе.

И последнее, но не менее важное: ответ на вопрос иногда можно выяснить, просто сравнив варианты ответов! Если вы видите, что какая-то технология повторяется в двух вариантах, возможно, это правильно. Например (не настоящие ответы, просто пример), если вы видите:

  1. Pub / Sub, Dataflow, BigQuery,
  2. Pub / Sub, поток данных, CloudSQL
  3. DataProc, облачное хранилище, облачный SQL
  4. Облачное хранилище, облачные функции, BigQuery

Можно сделать вывод, что:

  1. Pub / Sub и Dataflow повторяются дважды, так что, вероятно, это правильные варианты.
  2. Облачное хранилище также повторяется дважды, но каждый раз в сочетании с разными технологиями, поэтому, поскольку оно конфликтует с Pub / Sub и Dataflow, вам следует выбрать Pub / Sub и Dataflow, потому что они повторяются как пара.
  3. Теперь вам нужно только выбрать между BigQuery и CloudSQL.

Но, пожалуйста, придерживайтесь этого предположения, только если вы действительно не знаете ответа на вопрос.

Читайте список материалов для подготовки.

Официальные материалы

Самая большая проблема этого экзамена - отсутствие материалов для подготовки. Посмотрим, что может предложить Google:

  1. Получите более трех лет практического опыта - это не особенно полезно, и не волнуйтесь, если у вас нет трехлетнего опыта работы в GCP.
  2. Список тем на экзамене. Хотя это хорошее начало, это слишком высокий уровень, чтобы иметь практическое применение.
  3. 10 типовых вопросов. Это действительно хорошо, поэтому убедитесь, что вы полностью понимаете причину правильных и неправильных ответов. К счастью, когда вы ответите на все вопросы, они дадут вам объяснения по каждому варианту.
  4. Путь обучения. Прислушайтесь к моему совету с солидной усмешкой, потому что я не пошел по этому пути обучения. Я просмотрел его и пришел к выводу, что он слишком простой и требует слишком много времени - у меня было всего две недели. Тем не менее, если у вас есть пара свободных недель, лучше следуйте по этому пути, чтобы быть пуленепробиваемым.
  5. Подготовка к сертификации: сертификация по машинному обучению. Этот вопрос меня разочаровал по нескольким причинам: 1) нет новых типовых вопросов, они только что рассмотрели 4 из 10 уже представленных типовых вопросов; 2) только общие советы, такие как получите практический опыт и прочтите документацию. Я ожидал от него гораздо большего, но вы все равно можете его посмотреть, потому что он короткий и официальный.
  6. MLOps в Google Cloud. Это может быть полезно, если вы умеете его готовить! Не обращайте особого внимания на то, что говорит докладчик - у меня создалось впечатление, что он просто читает маркетинговые материалы Google. Но обратите внимание на то, что на слайдах! Убедитесь, что вы понимаете каждое название продукта и каждую диаграмму: почему эти службы были выбраны для совместной работы.
  7. Документация Google Cloud. Я пишу это с улыбкой на лице. Хотя это замечательный ресурс и вы можете потратить на него всю жизнь, «прочтите документацию» - не тот совет, который вы хотели бы получить за месяц до экзамена (Google, я смотрю на вас!). Я дам ссылки на те части, которые вам действительно нужны.

Вот и все.

Темы экзамена

Я постараюсь, но список не может быть исчерпывающим. Я также буду включать ответы по умолчанию, где это возможно - опять же, не фактические ответы на экзаменах, а только то, что рекомендует документация, так что будьте осторожны :). Актуальные ссылки на соответствующие ресурсы можно будет найти в следующем сеансе.

В качестве общего совета при чтении постановки задачи постарайтесь понять, имеете ли вы дело с регрессией, двоичной классификацией или проблемами многоклассовой классификации. Это поможет вам понять, какие методы и показатели вам доступны.

На экзамене можно ожидать:

  1. API TensorFlow Keras. Вы должны понимать архитектуру последовательной модели, какие слои на самом деле определяют параметры, например, плотные слои, что такое выпадающие слои, что такое сверточные слои.
  2. Распределенное обучение TensorFlow. Общий ответ заключается в том, что обучение GPU происходит быстрее, чем обучение CPU, и GPU обычно не требует дополнительной настройки. TPU быстрее графических процессоров, но имеют свои ограничения. Кроме того, убедитесь, что означают роли реплик: мастер, рабочий, сервер параметров, оценщик и сколько из них вы можете получить. Если вам нужно оптимизировать распределенное обучение, ответы по умолчанию следующие: 1) используйте tf.data.Dataset API для ввода; 2) чередование этапов конвейера путем включения параллелизма; 3) Keras API лучше поддерживает распределенное обучение, чем API-интерфейс Estimator.
  3. Знайте свою разработку функций в TensorFlow и узнайте, как создавать следующие функции: числовые, категориальные, с горячим кодированием / встроенным / хешированием, с разделением на блоки, с одним горячим кодированием / встроенные / хешированные, скрещенные.
  4. TensorFlow Extended или TFX. Вы должны знать компоненты и то, как построить из них конвейер.
  5. Распределенное обучение AI Platform с контейнерами. Ответ по умолчанию: если у вас есть распределенное обучающее приложение, вы можете упаковать каждый компонент в отдельный контейнер (главный, рабочий, сервер параметров) и развернуть его на платформе AI.
  6. Распределенное обучение AI Platform. По сути, это объединение тем распределенного обучения TensorFlow и распределенного обучения контейнеров платформы AI. Однако обратите внимание, что распределенное обучение не поддерживается для моделей, использующих scikit-learn (возможно, уже догадались) или среды XGBoost.
  7. Настройка гиперпараметров платформы AI. Было бы полезно знать, что байесовская оптимизация используется под капотом.
  8. Встроенные алгоритмы AI Platform. Это что-то среднее между AutoML и пользовательским кодом: вам все еще нужно выполнить предварительную обработку данных, разработку функций и настройку гиперпараметров, но сама модель уже реализована. Имейте в виду, что встроенные алгоритмы не поддерживают распределенное обучение.
  9. BigQuery ML. По умолчанию ответ заключается в том, что если ваши данные уже находятся в BigQuery и вы хотите, чтобы их вывод тоже присутствовал, вам следует использовать BigQuery ML для моделирования. Но помните об ограничениях.
  10. Автоматический ML против API ML. Ответ по умолчанию - использовать ML API, если у вас нет чего-то особенного, например, для обнаружения продуктов вашей собственной компании на изображениях или классификации стенограмм обращений в службу поддержки вашей компании.
  11. Уметь выбирать инструменты моделирования от наиболее управляемого до наиболее настраиваемого: API ML - ›Auto ML -› BigQuery ML - ›Встроенные алгоритмы платформы AI -› Обучение платформе AI. В общем, старайтесь придерживаться левой части спектра, если вы не столкнулись с ограничениями выбранной технологии. Таким образом, если вам нужно распределенное обучение, вы не можете использовать встроенные алгоритмы.
  12. Рекомендации AI. Прочтите хотя бы документацию, рекомендуется немного практики.
  13. Виртуальная машина с глубоким обучением. Знайте, как это исправить! Желателен практический опыт.
  14. Объяснимый AI. Есть всего 3 метода атрибуции функций, о которых вам следует позаботиться (по крайней мере, в документации GCP упоминается только три, их может быть больше): Integrated Gradients, XAI и Sampled Shapely. Таблицы AutoML также поддерживают пояснения.
  15. Инструмент TensorBoard «Что если». Используется для поиска предвзятости в модели.
  16. Служба маркировки данных позволяет вам запрашивать маркировку вашего набора данных человеком. Ответ по умолчанию заключается в том, что вы никогда не маркируете набор данных самостоятельно, а платите только за это Google.
  17. Вопрос может потребовать наиболее эффективного по времени решения или может потребовать быстрого создания решения. Они имеют в виду это - просто обратите внимание, сколько раз Лак подчеркивает это в подготовительном видео. В этом случае вам нужно выбрать самое быстрое решение, которое включает в себя как можно меньше шагов. Самое быстрое решение обычно не является самым эффективным.
  18. Поток данных, Pub / Sub и конвейеры данных в целом. Dataflow - ваш единственный реальный вариант для конвейеров пакетной обработки и потоковой передачи. Если вам нужен конвейер потоковой передачи, это всегда будет Pub / Sub + Dataflow. Хранилище данных приемника потокового конвейера может отличаться, но вы можете выполнять потоковую передачу в BigQuery или BigTable. Также помните, что облачное хранилище обычно означает пакетный конвейер. Если вас просят указать «в реальном времени», это означает конвейер потоковой передачи, поэтому обычно следует использовать Pub / Sub + Dataflow + [BigQuery | Pub / Sub].
  19. Облачный мониторинг. Вам просто нужно знать, что обучение платформе AI и прогнозирование платформы AI имеют встроенный мониторинг показателей, который вы можете просматривать с помощью облачного мониторинга. Вы также можете добавить свои собственные метрики. Ответ по умолчанию - ваша модель не может быть развернута без мониторинга в реальном времени.
  20. Знайте, как настроить непрерывную оценку вашей модели. Ответ по умолчанию - вы не можете развернуть модель, пока не будете постоянно ее оценивать.
  21. Конвейеры Kubeflow и Kubeflow. Kubeflow также имеет встроенные метаданные Kubeflow для отслеживания артефактов.
  22. Точность, отзыв и оценка F1. Вы должны знать следующее: используйте Precision, чтобы свести к минимуму ложные срабатывания, используйте Recall, чтобы минимизировать ложноотрицательные результаты, используйте счет F1, чтобы сбалансировать оба. Обычно (не всегда!) Минимизация Precision означает увеличение Recall и наоборот.
  23. AUC ROC и AUC PR. В общем, AUC ROC является предпочтительным, потому что он инвариантен к порогу классификации, инвариантен к масштабу и инвариантен к балансу классов. AUC PR уступает AUC ROC, потому что AUC PR зависит от баланса классов, но имеет свои варианты использования.
  24. Знайте, что такое трансферное обучение.
  25. Знайте, что делает хорошую функцию: 1) связанной с целью; 2) известно во время прогноза; 3) определение не изменится со временем; 4) числовой со значащей величиной (не порядковой, а кардинальной); 5) достаточно примеров; 6) привносит человеческое понимание проблемы.
  26. Знайте рекомендации по настройке гиперпараметров: 1) при снижении скорости обучения увеличивайте размер пакета (или количество эпох); 2) небольшие размеры партии вызывают колебания потерь; 3) высокая скорость обучения вызывает скачки потерь;
  27. Знайте, что такое канареечное развертывание и чем оно отличается от A / B-тестирования.
  28. Знайте, как обращаться с недостающими данными. Если функция важна (если нет, отбросьте ее), рекомендуемая стратегия - предоставить дополнительный столбец, в котором указано, отсутствуют ли данные в исходном столбце, и только затем заменить отсутствующие значения средним значением / режимом.
  29. Знайте, что такое Cloud Composer, но это может быть неправильным решением проблемы.
  30. Знайте, что такое облачные функции, но, опять же, они, вероятно, не правильное решение.
  31. Знайте, что такое Cloud SQL. Это может быть правильным решением для хранения транзакционных данных. Под этим я подразумеваю хранилище, используемое приложениями, обслуживающими пользователей.
  32. Не все проблемы требуют решений машинного обучения.

Рекомендуемые материалы

  1. Специализация Машинное обучение с TensorFlow в Google Cloud на Coursera. Это обеспечивает понимание API TensorFlow Keras. Пожалуйста, сделайте следующее: 1) напишите код в лабораторных условиях самостоятельно; 2) обратите внимание на курс №4, который проходит через модуль tf.transform.
  2. Распределенное обучение TensorFlow. Поймите и выучите стратегии распространения наизусть. Не могу сказать, что нужен практический опыт.
  3. Как отладить и оптимизировать производительность TensorFlow. Также на GPU.
  4. Как оптимизировать производительность входного конвейера с помощью tf.data.
  5. Ограничения ТПУ. Хотя TPU быстрее графических процессоров, они не являются универсальными и поддерживают только определенные модели. ТПУ также дороже. Вот хорошее сравнение TPU и GPU.
  6. Хорошо знайте, как оптимизировать распределенное обучение TensorFlow. Это действительно хорошие часы, особенно часть про параллельность конвейеров, позволяющую чередовать шаги.
  7. TFX гид.
  8. Обучение AI Platform с контейнерами.
  9. Распределенное обучение AI Platform с контейнерами.
  10. Настройка гиперпараметров AI-платформы.
  11. Встроенные алгоритмы AI-платформы.
  12. Модели BigQuery ML.
  13. Рекомендации AI.
  14. Поиск и устранение неисправностей ВМ с глубоким обучением.
  15. Методы атрибуции признаков. Вы всегда должны пытаться использовать XRAI для изображений и интегрированные градиенты для всего остального, что можно различить. Используйте Sampled Shapley только для ансамблей и других недифференцируемых моделей. Обратите внимание, что XRAI основан на интегрированных градиентах и ​​также не может использоваться в недифференцируемых моделях.
  16. Использование объяснения AI.
  17. Инструмент TensorBoard Что-если.
  18. Служба маркировки данных.
  19. Мониторинг прогнозов AI-платформы.
  20. Мониторинг обучения AI Platform.
  21. Постоянная оценка AI Platform.
  22. Трубопроводы Kubeflow.
  23. Метаданные Kubeflow.
  24. Точность, отзыв и ROC AUC. Не забудьте прочитать о разнице между ROC AUC и ROC PR.
  25. Канарское развертывание и A / B-тестирование.

Потрясающие дополнения

Во время подготовки я составил блок-схему и несколько сравнительных таблиц и нашел их действительно полезными, так что наслаждайтесь!

Решения для моделирования GCP ML

Если вам есть что добавить к этой диаграмме - оставьте, пожалуйста, комментарий!

Стратегии распространения TensorFlow

Auto ML против API ML

Округления

Итак, мой дорогой ученик, надеюсь, эти знания вам помогут. По крайней мере, это помогло бы мне, если бы я начал с самого начала.

Я планирую обновлять эту статью, когда найду больше полезных ссылок и учебных материалов.

Мы будем благодарны за ваш отзыв, давайте превратим эту статью в исчерпывающее руководство для инженера по машинному обучению Google Professional!

Удачи тебе на пути желаю,

Олег