ML Engineer (проектная занятость → долгосрочное сотрудничество)
О проекте
Мы развиваем автоматизированную систему продаж и аналитики в мессенджерах. Сейчас распознавание товаров в переписках работает по жёстким правилам и триггерам — это не масштабируется на реальный поток сообщений.
Задача проекта: обучить модель, которая из неструктурированного текста (сообщения менеджеров и клиентов, прайсы, описания «на лету») находит и определяет конкретные товары — без заранее заданного списка на каждый случай.
Категории товаров: широкий спектр электроники и техники — телефоны, ноутбуки, планшеты, бытовая и профессиональная электротехника, комплектующие, аксессуары и смежные категории. Формулировки в чатах часто нестандартные: сокращения, опечатки, жаргон, смешение языков, неполные названия.
Формат: проектная работа с чёткими этапами и критериями приёмки. При успешном результате — переход на постоянное сотрудничество (поддержка модели, расширение категорий, интеграция в продукт).
Что нужно сделать
1. Спроектировать и обучить ML/LLM-решение для извлечения и классификации товаров из текста (NER, entity linking, классификация или комбинированный пайплайн — выбор за вами, с обоснованием).
2. Обеспечить работу на «грязных» данных: разговорный язык, сокращения (iPhone 15 Pro Max / айфон 15 про / 15pm), вариативные написания брендов и моделей.
3. Покрыть широкую товарную матрицу, а не узкий набор SKU: модель должна generalize на новые модели и категории при минимальной доработке.
4. Достичь измеримого качества на согласованном тестовом наборе (метрики, пороги и датасет фиксируем до старта).
5. Подготовить модель к продакшену: inference API или библиотека, документация, рекомендации по инфраструктуре (GPU/CPU, latency, batch).
6. Передать артефакты: веса/чекпоинты, код обучения и инференса, воспроизводимый pipeline, инструкция по дообучению.
Кого ищем
Senior / Lead ML Engineer с подтверждённым опытом end-to-end ML-проектов — не теоретик, а человек, который сам доводил модели до рабочего состояния в проде.
Обязательно
- 3+ лет в ML/NLP, из них минимум 2 проекта с обучением языковых моделей (fine-tuning, pre-training или обучение с нуля на domain-specific корпусе).
- Опыт извлечения сущностей (NER) и/или классификации неструктурированного текста на реальных, «шумных» данных.
- Уверенная работа с PyTorch (или аналог) и экосистемой LLM: Hugging Face, LoRA/QLoRA, full fine-tuning, evaluation pipelines.
- Опыт сбора, разметки и подготовки датасетов — умеете организовать процесс, если разметки мало.
- Понимание trade-offs: качество vs скорость vs стоимость inference; умеете обосновать архитектурное решение, а не «просто взять GPT».
- Python, Docker, базовый MLOps (версионирование данных/моделей, воспроизводимость экспериментов).
- Портфолио или кейсы с конкретными метриками (F1, precision/recall, latency) — без этого не рассматриваем.
Сильный плюс
- Опыт в e-commerce, маркетплейсах, прайс-парсинге, product matching.
- Работа с мультиязычными или смешанными текстами (RU/UA/EN в одном сообщении).
- Опыт distillation — сжатие большой модели под быстрый inference.
- Интеграция ML-сервисов в Python backend (FastAPI, async).
- Опыт обучения на ограниченных GPU-ресурсах с оптимизацией бюджета.
Чего ждём от кандидата на этапе отбора
- Краткое описание похожего кейса (задача → подход → метрики → что пошло не так и как решили).
- Ваше видение архитектуры для нашей задачи (1–2 страницы или созвон 30 мин).
- Оценка сроков и этапов проекта с промежуточными deliverables.
- Честная оценка: обучение с нуля vs fine-tuning — что реально даст нужное качество в наших условиях.