Собеседование с AI

Собеседование с AI

@notedatascience

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


Формат собеседований

Насколько мы знаем собеседования могут состоять из разных форматов.

Например:

  • интервью по теории и проектам —вам задают некоторые вопросы релевантные вакансии, которые оценивают ваши знания;
  • алгоритмическое интервью — вам предстоит решить некоторую задачу на основе python, sql или других фреймворках. Тут интервьюер оценивает насколько качественно вы пишите код и он соответствует pep8, ход ваших мыслей – умеете ли вы декомпозировать задачу и оценивать сложности, оптимальность и скорость решения;
  • интервью на знание математики, статистики, теории вероятности и тд.

Технология собеседования

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

кто такие мемы?

Метрика

Далеко ходить не надо, давайте субъективно (смещенно) оценивать с вами релевантность ответа.

Релевантность — такая метрика, которая оценивается от 0 до 1 и показывает степень актуальности, корректности ответа.

Однако мы должны быть не только метрикой едины, но ещё и выбрать список навыков, которые хотим оценивать. Ведь обычно на собеседованиях просто разделяют на 1-2 вопроса по каждой секции.

Пример разбияния по секциям, темам или подтемам:

  • Python [Regular]
  • Python [Backend]
  • SQL
  • ML [REC SYS]
  • ML [Regular]
  • ML [Data Validation]
  • DL [NLP]
  • DL [RL]
  • A/B

Методы оценки компетенции

После определения компетенций будем оценивать насколько мы эксперты в вопросах. Для этого мы так же будем использовать небольшую валидацию, по каждой компетенции нужно спросить себя по 1-4 вопросу k раз [допустим 3-6] каждой категории. Можно оценивать себя релевантностью [от 0 до 1] или более грубо перейти к бинарной строгой велечине [0 или 1]. Тем самым мы замеряем наш bias и varience.

Используем ИИ

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

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


Промт инженерим

Прежде всего советую вам использовать более новую модель, а именно GPT4. По сравнению с моделью версии 3.5 она выдаёт адекватные вопросы, иногда достаточно интересные. Однако стоит заметить они все ещё отличаются от вопросов для самих собеседованиях и могут быть несколько легче. Например для senior ML engineer актуально задавать вопросы по систем дизайну, а не "что такое машинное обучение". Тем не менее все зависит от того как вы составите промт.

Пример качественного промта:

Выступи в роли интервьюера по вакансии Middle ML-engineer в крупную IT компанию. Вот мой первый запрос: создай список сложных вопросов из FAANG и ответы к ним, что бы оценить знания кандидата
Выступи в роли интервьюера по вакансии Senior ML-engineer в крупную IT компанию. Вот мой первый запрос: создай список сложных олимпиадных вопросов, что бы оценить знания кандидата

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

Выступи в роли оценивающей системы на ответы кандидата. Для оценки пользовательского ответа нужно дать результат по метрике релевантность от 0 до 1.

Вопрос: "Как вы определите, когда модель переобучена?"

Ответ кандидата: "Модель будет выдавать хорошие результаты на train и плохие на test, это так же можно проверить качественной валидацией данных и подбором гиперпараметров."

Формат ответа: "релеваность {0-1}, комментарий: {твой комментарий, в чем студент ошибся и/или был прав}"

Finally, ботаем

Отлично, мы можем составить матрицу компетенций и составить список тем, в которых мы блуждаем. Однако помните, что ботать и зазубривать теорию < применить на практике. И знаете что? Попросите ChatGPT на основе вашей матрицы составить вам пет-проект, который заполнит ваши пробелы в знаниях. Возможно это будут маленькие проектики, но все равно. Можно например реализовать деревья решений, какую то метрику, провести A/B тест и так далее.


Полезные материалы

Report Page