Разработчик на Python в команду разработки LLM-проектов для B2B
Требования
Местоположение и тип занятости
Компания
Компания, которая развивает самую популярную в России поисковую систему и десятки других сервисов
Описание вакансии
Мы работаем над B2B-платформой автоматических ответов на вопросы по документации на основе LLM-моделей и технологий поиска.
Система используется:
Для помощи операторам поддержки разных сервисов
Для ответов по документации общего назначения разных клиентов, как внешних, так и внутри Яндекса
В бета-режиме — для некоторых клиентов Yandex Cloud
Мы планируем расширять область использования платформы, масштабировать систему и автоматизировать инструменты её применения.
Какие задачи вас ждут
1 Разработка новых алгоритмов обработки и генерации данных с использованием ML-моделей (LLM и другие)
Наши бэкенды используют разнообразные ML-модели для задач генерации текста, поиска, ранжирования и модерации данных, и мы постоянно делаем так, чтобы бэкенды качественно и быстро работали на разных данных, учитывая требования бизнес-логики разных клиентов. Чтобы этого достичь, мы перепридумываем подходы к GPT-генерации и одновременно решаем обычные задачи бэкенда, такие как observability и отказоустойчивость.
2 Создание универсальной платформы
Мы не только делаем продукт для внешних заказчиков, но и создаём технологическую платформу внутри Яндекса, чтобы другие команды разработки могли переиспользовать наши результаты. Для этого мы планируем сделать единую общую библиотеку платформы, которую можно будет применять в других разработках внутри Яндекса. Также мы собираемся создавать инструменты, помогающие коллегам из ML-команды анализировать и отлаживать работу ML-моделей и всего ML-пайплайна в целом.
3 Задачи масштабирования системы
По мере развития системы перед нами возникают всё более сложные задачи обработки большого количества данных и ускорения работы системы: мы улучшаем процесс подготовки данных и оптимизируем скорость ответов наших бэкендов по этим данным.
4 Создание изолированной версии системы
Мы планируем обеспечить возможность запускать все компоненты системы в отдельных изолированных окружениях, не зависящих от инфраструктуры Яндекса. Для этого нужно проанализировать все компоненты и фичи системы и спроектировать, как всё будет работать в изолированной версии.
Мы ждем, что вы
Знаете классические алгоритмы и структуры данных
Пишете надёжный и масштабируемый код, покрываете его автотестами
Разрабатывали бэкенды на асинхронном Python 3
Знаете по опыту, как сделать хороший APIРаботали с базами данных (например, с Postgres), умеете оптимизировать структуру БД и SQL-запросы
Понимаете основные принципы аутентификации и авторизации при работе с веб-сервисами
Можете декомпозировать сложную задачу
Будет плюсом, если вы
Умеете проектировать распределённые и отказоустойчивые системы
Работали с инфраструктурой ML-моделей, понимаете базовые принципы ML или хотите в них разобраться
Умеете поддерживать работу бэкендов в production: анализировать логи и метрики качества работы системы, работать в Unix-like-окружении
Работали с Docker и облачными системами
Работали с распределёнными системами хранения и обработки данных (такими как Hadoop, YTsaurus и т. д.)
Работали с базами данных для векторного поиска
Система используется:
Для помощи операторам поддержки разных сервисов
Для ответов по документации общего назначения разных клиентов, как внешних, так и внутри Яндекса
В бета-режиме — для некоторых клиентов Yandex Cloud
Мы планируем расширять область использования платформы, масштабировать систему и автоматизировать инструменты её применения.
Какие задачи вас ждут
1 Разработка новых алгоритмов обработки и генерации данных с использованием ML-моделей (LLM и другие)
Наши бэкенды используют разнообразные ML-модели для задач генерации текста, поиска, ранжирования и модерации данных, и мы постоянно делаем так, чтобы бэкенды качественно и быстро работали на разных данных, учитывая требования бизнес-логики разных клиентов. Чтобы этого достичь, мы перепридумываем подходы к GPT-генерации и одновременно решаем обычные задачи бэкенда, такие как observability и отказоустойчивость.
2 Создание универсальной платформы
Мы не только делаем продукт для внешних заказчиков, но и создаём технологическую платформу внутри Яндекса, чтобы другие команды разработки могли переиспользовать наши результаты. Для этого мы планируем сделать единую общую библиотеку платформы, которую можно будет применять в других разработках внутри Яндекса. Также мы собираемся создавать инструменты, помогающие коллегам из ML-команды анализировать и отлаживать работу ML-моделей и всего ML-пайплайна в целом.
3 Задачи масштабирования системы
По мере развития системы перед нами возникают всё более сложные задачи обработки большого количества данных и ускорения работы системы: мы улучшаем процесс подготовки данных и оптимизируем скорость ответов наших бэкендов по этим данным.
4 Создание изолированной версии системы
Мы планируем обеспечить возможность запускать все компоненты системы в отдельных изолированных окружениях, не зависящих от инфраструктуры Яндекса. Для этого нужно проанализировать все компоненты и фичи системы и спроектировать, как всё будет работать в изолированной версии.
Мы ждем, что вы
Знаете классические алгоритмы и структуры данных
Пишете надёжный и масштабируемый код, покрываете его автотестами
Разрабатывали бэкенды на асинхронном Python 3
Знаете по опыту, как сделать хороший APIРаботали с базами данных (например, с Postgres), умеете оптимизировать структуру БД и SQL-запросы
Понимаете основные принципы аутентификации и авторизации при работе с веб-сервисами
Можете декомпозировать сложную задачу
Будет плюсом, если вы
Умеете проектировать распределённые и отказоустойчивые системы
Работали с инфраструктурой ML-моделей, понимаете базовые принципы ML или хотите в них разобраться
Умеете поддерживать работу бэкендов в production: анализировать логи и метрики качества работы системы, работать в Unix-like-окружении
Работали с Docker и облачными системами
Работали с распределёнными системами хранения и обработки данных (такими как Hadoop, YTsaurus и т. д.)
Работали с базами данных для векторного поиска
Дополнительные инструкции
- Интервью с HR
- Интервью на знание языка ( в вашей IDE)
- Интервью на знание базовых алгоритмов
* Архитектура
- Финал с командой