Привет, Хабр! Меня зовут Максим Шаланкин, я вместе со своими коллегами — преподавателями в Школе аналитиков данных от МТС — подготовил семь каверзных вопросов, с которыми могут столкнуться начинающие специалисты в области Data Science, ML и Big Data. Ну что, поехали!


Максим Шаланкин

Data Science Team Lead в команде Финтех в Центре Big Data МТС

1. Когда можно и нужно дообучать модели глубокого обучения?

а) Когда есть свободный GPU и его нужно утилизировать.

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

в) Практически в любых задачах, где есть четкие требования к результату.

Комментарий

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

Правильный ответ — последний. Основное применение Deep learning находит в текстовых (если не помогают регулярки) и графовых задачах (мы, кстати, выложили в open source CoolGraph — библиотеку для быстрого старта с GNN), в рекомендациях — как для DSSM-архитектур, так и для трансформерных подходов, не говоря уже об эмбеддинге контента, например на основе CLIP.

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

2. Какой алгоритм выбрать, чтобы определить цвет глаз по покупкам на сайте?

а) Кластеризация алгоритмом k-means.
б) Lasso-регрессия.
в) Мультикласс-классификация алгоритмом gradient boosting.

Комментарий

Определить цвет глаз по истории в интернете — это наша внутренняя шутка, но за ней стоит серьезная теория. Да, в базовом ML множество разных алгоритмов. Есть разные классы задач, и в каждом из них с десяток своих алгоритмов. В нашем примере это мультиклассовая классификация, потому что глаз может быть зеленый, карий, серый и другие вариации цветов. Т. е. здесь условно 4–5 вариантов ответа, а нужно выбрать только один. Такую задачу решают разные алгоритмы — и один из них как раз gradient boosting.

Никита Малыхин

Tech Lead в команде AdTech в Центре Big Data МТС

3. Какое основное преимущество использования Docker в контексте разработки и развертывания ML-приложений?

а) Docker облегчает развертывание в любых средах с помощью создания контейнеров, которые обеспечивают изоляцию приложений и их зависимостей.

б) Docker автоматически оптимизирует код ML-приложения для повышения производительности без участия разработчика.

в) Docker заменяет необходимость использования виртуальных машин, так как позволяет запускать приложения непосредственно на аппаратном уровне без операционной системы.

Комментарий

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

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

Обычно студенты считают, что аналитики работают только с ML-моделями, но мы в школе аналитиков учим и другим технологиям, с которыми они могут столкнуться в работе. Зная и понимая принципы работы Docker, будет проще общаться с коллегами и можно создавать MVP самостоятельно, что здорово ускоряет работу.

4. Зачем нужен MLOps при разработке и развертывании моделей машинного обучения?

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

б) MLOps автоматизирует и оптимизирует жизненный цикл ML-моделей: разработку, тестирование, развертывание и мониторинг, — что обеспечивает более эффективное и надежное управление моделями.

в) Основная цель MLOps — заменить разработчиков и дата-инженеров автоматизированными инструментами, которые создают и развертывают модели без человеческого вмешательства. Слава роботам!

Комментарий

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

Знание инструментов и платформ, таких как Kubernetes для оркестрации контейнеров, GitLab CI/CD для автоматизации развертывания, Airflow для регулярного переобучения моделей, а также систем управления версиями позволит отслеживать изменения данных и моделей.

5. Зачем нужна калибровка вероятностей моделей?

а) Калибровка вероятностей нужна для того, чтобы модель могла выдавать точные вероятностные оценки.

б) Калибровка вероятностей необходима для улучшения скорости работы модели. Чем лучше откалибрована модель, тем быстрее она может принимать решения.

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

Комментарий

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

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

Сергей Королев

Руководитель центра компетенции прикладной архитектуры в Центре Big Data МТС

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

а) Напишу свой API-интерфейс для выдачи результата «по запросу».

б) Выгружу скоры в шину данных Kafka сразу после сборки средствами Spark.

в) Вникну в бизнес-задачу и взвешу ценность и затраты на реализацию вместе с Product Owner-ом.

Комментарий

Да, первые два ответа действительно являются вариантами реализации — и мы на курсе будем про них рассказывать. Но в реальной жизни даже Near-Real-Time-взаимодействие часто является избыточным и дорогим.

7. Для своевременного скоринга или построения фичей на больших данных используют фреймворки распределенных вычислений, такие как Map Reduce и Spark. Каким способом лучше всего ускорить такие вычисления?

а) Попросить коллегу дата-инженера.

б) Увеличить количество вычислительных единиц — воркеров, считаем параллельно, то есть быстрее.

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

Комментарий

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

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


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

За десять месяцев вы изучите основы SQL, Python, нейросетей, рекомендательных систем и MLOps. Вы узнаете, как хранятся и используются данные в распределенных файловых системах, сможете работать с данными в NoSQL-базах для Big Data, таких как Apache HBase и Cassandra, освоите архитектуру типичного Spark-приложения и много-много чего еще. Подробности о курсе и его деталях можно узнать у нас на сайте. Спешите — прием заявок идет до 20 октября.

Комментарии (1)


  1. HiItsYuri
    17.10.2024 18:47

    Ответил на все верно. Но я даже близко не млер/аналитик. Правильные ответы чисто приходят из банальных логических рассуждений.