О роли
JetBrains создаёт инструменты для разработчиков. В команде Agentic Models строят многошаговых агентов для написания кода, которые понимают большие кодовые базы, планируют изменения, вызывают инструменты и итерируют вместе с пользователем. Research Engineer отвечает за модели, тренировочные циклы и пайплайны оценки, которые обеспечивают работу этих агентов. Работа ведётся на стыке SFT и RL-посттренировки и продуктовой оценки, с использованием распределённых GPU- и MapReduce-кластеров для выпуска моделей в продукты JetBrains.
Задачи
- Проектировать, внедрять и поддерживать пайплайны SFT и RL-посттренировки для многошаговых агентов написания кода.
- Обучать и адаптировать LLM для агентных сценариев: планирование, использование инструментов, многошаговые взаимодействия внутри IDE JetBrains.
- Создавать и развивать среды оценки и симуляции, где агенты могут действовать, измеряться и сравниваться на реалистичных задачах разработчика.
- Разрабатывать фреймворки и метрики оценки поведения агентов, анализировать трейсы и логи, замыкать цикл от оценки обратно к обучению, данным и дизайну наград.
- Анализировать результаты обучения и оценки, предлагать и внедрять улучшения архитектур моделей, рецептов обучения и датасетов.
- Работать с крупномасштабной инфраструктурой: распределённое обучение на GPU-кластерах и обработка данных в стиле MapReduce для претрейнинга и датасетов тонкой настройки.
- Тесно взаимодействовать с исследовательскими, продуктовыми и инфраструктурными командами, превращая продуктовые задачи в конкретные модели, эксперименты и выпущенные функции.
Требования
- Обширный практический опыт обучения LLM (претрейнинг, тонкая настройка или посттренировка) в исследовательской или производственной среде.
- Глубокое знание современных фреймворков глубокого обучения, таких как PyTorch, и специализированных стеков обучения LLM (Megatron, NeMo, verl или аналогичных).
- Сильное теоретическое и практическое понимание основ LLM: архитектуры, токенизация, пайплайны данных, батчинг, mixed precision, распределённое обучение и отладка нестабильных запусков.
- Умение вести проекты от начала до конца: от постановки проблемы или продуктовой боли до дизайна, экспериментов, реализации и итераций.
- Продуктовое мышление: понимание того, как разработчики реально используют агентов, и умение переводить продуктовые потребности и сбои в задачи моделирования и оценки.
- Не менее 3 лет опыта работы с Python и написания чистого поддерживаемого кода в современных ML-кодовых базах.
Будет плюсом
- Опыт работы с ML-оркестраторами и инструментами рабочих процессов: Kubeflow, Dagster, Airflow, ZenML и/или планировщиками задач вроде Kubernetes или SLURM.
- Опыт работы с крупномасштабными пайплайнами данных и обучения: кластеры в стиле MapReduce, многоузловое GPU-обучение или нагрузки порядка 1M+ CPU/GPU-часов.
- Проектирование и поддержка пайплайнов оценки для LLM или агентов: метрики, дашборды, отслеживание экспериментов, автоматические регрессионные проверки.
- Разработка ИИ-агентов: агенты с использованием инструментов, планировщики, многошаговые сценарии написания кода, знакомство с агентными фреймворками и паттернами.
- Отслеживание экспериментов и наблюдаемость с помощью Weights & Biases, MLflow, Langfuse или аналогичных инструментов.
- Оптимизация инференса и эксплуатация оптимизированных моделей в production.