Орієнтація в середовищі: найм інженера з машинного навчання

Ми вдосконалили наш процес найму інженерів з машинного навчання, зосередившись на навичках розгортання та чітко визначивши відмінності між ними та дата-саєнтистами.

---

Тема в Slack, яка спровокувала зміни

Все почалося з обговорення в Slack, де один із наших бекенд-інженерів висловив свої емоції щодо неприємної взаємодії з новим співробітником, який стверджував, що є інженером з машинного навчання. "Вони зовсім не розуміють процес розгортання," - написав він, підкреслюючи прогалину, яка впливала на наш проект. Цей момент дав зрозуміти: нам потрібно переосмислити, як ми наймаємо інженерів з машинного навчання, і забезпечити їх здатність ефективно сприяти нашому процесу розгортання.

Контекст: Чому це важливо

Відмінність між інженерами з машинного навчання та дата-саєнтистами часто розмивається, що призводить до невідповідності в очікуваннях щодо найму. У нашому випадку ставки були високими; ми були в процесі розгортання нової функції, яка сильно покладалася на надійні моделі машинного навчання. Якщо наш новий співробітник не зможе впоратися з операційними аспектами машинного навчання, це затримає наш графік і вплине на наших користувачів. Нам потрібна була ясність щодо того, які навички ми шукаємо і як ефективно їх тестувати під час інтерв'ю.

Проблема в деталях

Наш новий співробітник мав сильне теоретичне розуміння машинного навчання, але не вистачало практичного досвіду в розгортанні моделей. Наприклад, коли йому доручили інтегрувати модель у нашу існуючу інфраструктуру, він мав труднощі з обробкою залежностей та версій, що призвело до значного простою. Це не лише дратувало команду, але й ставило під загрозу терміни нашого проекту. Ми швидко зрозуміли, що зосередження виключно на навичках моделювання є недостатнім.

Що ми спробували спочатку

Спочатку ми намагалися вдосконалити наші описи вакансій, щоб залучити кандидатів з досвідом розгортання. Однак після кількох ітерацій ми виявили, що просте коригування формулювань не призвело до значних змін у якості кандидатів. Ми все ще отримували безліч кандидатів, які були чудові в теорії, але не мали практичних навичок. Це змусило нас переглянути наш процес інтерв'ю в цілому, переходячи від традиційних питань щодо моделювання до оцінки готовності до реального світу.

Технічний підхід

Ми вирішили впровадити двочастинний процес інтерв'ю, який зосереджувався як на теоретичних знаннях, так і на практичному застосуванні. Перша частина охоплювала основні концепції машинного навчання, а друга включала практичне завдання з кодування, яке імітувало сценарій розгортання. Наприклад, кандидатам було запропоновано написати простий скрипт для розгортання попередньо натренованої моделі на імітованому API, продемонструвавши своє розуміння пайплайнів.

# Приклад скрипту для розгортання
import joblib
from flask import Flask, request

app = Flask(__name__)

model = joblib.load('model.pkl')

@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    prediction = model.predict(data['input'])
    return {'prediction': prediction.tolist()}

if __name__ == '__main__':
    app.run(debug=True)

Цей підхід допоміг нам ідентифікувати кандидатів, які не лише розуміли теорію машинного навчання, але й могли орієнтуватися в середовищі розгортання, що є критично важливим для нашої команди.

Що змінилося в продукті

Після впровадження наш процес найму став більш відповідним до наших реальних потреб. Ми успішно заповнили кілька вакансій кандидатами, які продемонстрували сильний баланс теорії та практичних навичок розгортання. Як результат, ми спостерігали помітне покращення в ефективності наших розгортань функцій машинного навчання. Це безпосередньо вплинуло на задоволеність користувачів, оскільки ми змогли запускати нові функції вчасно без попередніх проблем.

Що ми дізналися

У процесі ми виявили кілька ключових висновків:

  • Зосередженість на практичних навичках: Кандидати повинні продемонструвати практичний досвід у розгортанні, а не лише теоретичні знання.
  • Чітке визначення ролей: Правильне розмежування ролей між інженерами з машинного навчання та дата-саєнтистами допомагає спростити процес найму та встановлює чіткі очікування.
  • Ітерація процесів інтерв'ю: Регулярне перегляд і вдосконалення наших методологій інтерв'ю зберігає наші практики найму актуальними та ефективними.
  • Цінність реальних сценаріїв: Включення реальних викликів в інтерв'ю дає кращий розуміння практичних можливостей кандидата.

Що це означає для кандидатів

Як кандидат, важливо розуміти відмінність між інженерією машинного навчання та дата-сайенсом. Якщо ви подаєте заявку на посаду інженера з машинного навчання, зосередьтеся на демонстрації свого досвіду розгортання та знайомства з пайплайнами. Будьте готові обговорювати практичні сценарії під час інтерв'ю, оскільки ми цінуємо практичні навички так само, як і теоретичні знання.

Що це означає для рекрутерів

Для рекрутерів важливо уточнити вимоги до вакансії, шукаючи інженерів з машинного навчання. Наголошуйте на необхідності, щоб кандидати мали практичний досвід у розгортанні моделей та пайплайнах. Це допоможе залучити правильні таланти та зменшить ймовірність невідповідностей у наймі, які можуть призвести до затримок у проектах.

Наступні кроки

Дивлячись у майбутнє, ми плануємо постійно моніторити результати нашого найму та збирати відгуки від нових співробітників про процес інтерв'ю. Ми також розглядаємо можливість створення стандартизованої платформи оцінки для потенційних кандидатів, щоб ще більше спростити наші оцінки. Якби нам довелося щось переробити, ми б включили спільні сесії кодування раніше в процес, щоб краще оцінити динаміку командної роботи. ---

Пов'язані матеріали

  • Architecture diagram plannedML Engineer vs Data Scientist
    A diagram illustrating the differences between machine learning engineers, data scientists, and research scientists.
  • Chart plannedInterview Process Flow
    Flowchart depicting the new interview process for machine learning engineers.

Також на Fitlane AI

Теми: how to hire a machine learning engineer, hire ml engineer, ml engineer interview questions, deployment pipelines, model serving, job requirements, candidate assessment