Что такое собеседование по проектированию системы машинного обучения и как к нему подготовиться

Подробное руководство по подготовке интервью по проектированию системы ML с шаблоном

Что такое системный дизайн машинного обучения?

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

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

Это делается для того, чтобы оценить способность кандидата понять общую картину разработки полной системы машинного обучения с учетом большинства необходимых деталей. Большинство кандидатов на ML хорошо разбираются в технических деталях тем ML. Но когда дело доходит до соединения их вместе, они не могут различить сложности и взаимозависимости проектирования полной системы машинного обучения от сбора данных до оценки и развертывания модели и, следовательно, плохо справляются с такими собеседованиями.

Главное в таком интервью — организованный мыслительный процесс. Такой организационный мыслительный процесс требует подготовки. Общий шаблон для таких задач может очень пригодиться во время ограниченного времени собеседования. Это гарантирует, что вы сосредоточитесь на важных аспектах и ​​не будете долго говорить об одном или полностью упускать важные темы.

📓 Шаблон:

На большинство вопросов собеседования по проектированию систем машинного обучения можно ответить, следуя приведенному ниже шаблону.

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

1. Понять проблему и задать уточняющие вопросы

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

2. Сбор/генерация данных

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

  • Взаимодействие пользователя с существующей системой (если есть)
  • Этикетировщики/краудсорсинг
  • Специализированные этикетировщики
  • Синтетические данные

Было бы полезно, если бы вы обсудили с интервьюером эти моменты. Еще одна важная вещь — проанализировать, какие данные вам доступны, и поспорить, достаточно ли универсальности. Вы должны знать о последствиях несбалансированного набора данных в ML и устранять его, если это необходимо. Убедитесь, что положительные и отрицательные образцы сбалансированы, чтобы избежать переобучения одному классу. Кроме того, в процессе сбора данных не должно быть предвзятости. Спросите себя, взяты ли данные из достаточно большой совокупности, чтобы их можно было хорошо обобщить.



3. Исследовательский анализ данных

Когда у вас есть необработанные данные, вы не можете использовать их напрямую для ввода в систему машинного обучения. Вы всегда должны анализировать и обрезать его. Такая предварительная обработка включает в себя очистку данных, фильтрацию и избавление от избыточных параметров. Несколько способов сделать это

  • Изучение признаков (среднее, медиана, гистограмма, моменты и т.
  • Изучение взаимосвязи между признаками (ковариация, корреляция и т. д.)
  • Применение уменьшения размерности (например, PCA), чтобы избавиться от избыточных параметров

Конечная цель — изучить, какие функции важны, и избавиться от избыточных. Ненужные функции, как правило, создают проблемы при обучении моделей, известные как проклятие размерности.

4. Выбор модели и KPI

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

  • Тип модели (регрессия, деревья, ИНС, случайный лес и т. д.)
  • Если вы выбрали DNN, обсудите структуру, количество слоев, тип слоев и т. д.
  • Предпочитаете ли вы один тип сети/блока другому, например AlexNet, VGGNet, ResNet и Inception.
  • Обязательно расскажите об использовании памяти и вычислений в вашей сети.

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

  • Проблема классификации: точность, точность, полнота, оценка F1, площадь под ROC (AUROC)
  • Регрессия:MSE, MAE, R-квадрат/скорректированный R-квадрат
  • Обнаружение/локализация объектов: пересечение по объединению (IoU), средняя точность (AP)
  • Обучение с подкреплением: совокупное вознаграждение, доход, Q-значения, показатель успеха.
  • Система/оборудование: задержка, энергопотребление, мощность
  • КПЭ, связанные с бизнесом: удержание пользователей, ежедневные/ежемесячные активные пользователи (DAU, MAU), новые пользователи.

Следующая статья поможет вам понять различные блоки модели машинного обучения.







5. Модельное обучение

Здесь будут оцениваться технические знания. Убедитесь, что вы знакомы с различными аспектами обучения машинному обучению и вам удобно говорить о них подробно. Интервьюер может даже спросить вас, как вы будете бороться, скажем, с переоснащением или почему вы не использовали регуляризацию, и если вы использовали, то какую из них вы использовали и почему и т. д. Темы включают, но не ограничиваются

  • Выбор функции потерь: CrossEntropy, MSE, MAE, потери Хубера, потери шарнира
  • Регуляризация: L1, L2, энтропийная регуляризация, K-кратное CV, отсев
  • Обратное распространение: SGD, ADAGrad, Momentum, RMSProp
  • Исчезающий градиент и как с этим бороться
  • Функции активации: Linear, ELU, RELU, Tanh, Sigmoid.
  • Другие проблемы: несбалансированные данные, переобучение, нормализация и т. д.

Следующие статьи помогут вам глубже понять некоторые темы, упомянутые выше.





6. Оценка

Конечная цель обученной модели — хорошо работать в реальных сценариях рассматриваемой проблемы. Как это работает с невидимыми данными? Закрыты ли угловые ящики? Чтобы проанализировать это, нужно провести как офлайн, так и онлайн оценки.

  • Оценка в автономном режиме. Производительность модели на заблокированных образцах набора данных. Во время сбора набора данных данные были разделены на обучающие, тестовые и проверочные подмножества. Идея состоит в том, чтобы проанализировать, насколько хорошо модель обобщает невидимые наборы данных. Вы также можете выполнить перекрестную проверку в K-кратном порядке, чтобы найти производительность для разных подмножеств данных. Модель, которая хорошо работает для выбранного KPI, выбирается для реализации и развертывания.
  • Онлайн-оценка.Первый этап развертывания обученной модели в реальных сценариях (после того, как она будет оценена в автономном режиме) – проведение A/B-тестирования. Обученная модель не может быть быстро приведена в соответствие с реальными данными в целом. Это слишком рискованно. Вместо этого модель развертывается в небольшом подмножестве сценариев. Например, скажем, разработанная модель должна была сопоставить водителя Uber с пассажиром. При A/B-тестировании модель будет развернута только в небольшом географическом регионе, а не на всем земном шаре. Затем эта бета-версия модели будет сравниваться с существующей моделью в течение более длительного периода времени, и если она приведет к повышению производительности бизнес-ключевых показателей эффективности (например, больше DAU/MAU для приложения Uber, лучший пользовательский удержание и, в конечном итоге, увеличение дохода от Uber), то это будет реализовано в более широком масштабе.

Подведение итогов:

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

Краткое содержание:

В этой статье мы рассмотрели организованный способ ответа на вопрос о проектировании системы машинного обучения. Однозначного правильного ответа не существует, и цель этого собеседования — проанализировать мыслительный процесс кандидата при проектировании комплексной системы. При этом для успеха на этом собеседовании необходимо глубокое понимание различных тем машинного обучения. Следующие шпаргалки помогут обновить эти темы.



Если эта статья была вам полезна или вы хотите узнать больше о машинном обучении и науке о данных, подпишитесь на Aqeel Anwar или свяжитесь со мной в LinkedIn или Twitter. Вы также можете подписаться на мою рассылку.