Сингулярное разложение это простая математика. Я писал по нему курсовую, включая тензорное расширение. Берешь находишь перпендикулярные друг другу вектора, так чтобы аппроксимировать исходные данные минимизируя фробениусову норму. За два-три вечера можно разобраться.
В deep learning тоже не знаю где там сложности. Никаких тебе интегральных и вариационных исчислений, знаний 11 класса про первую-вторую производную достаточно.
От джуна ждут что у него всего, каждого пункта, понемногу либо на поверхностном уровне. Например, джун не участвовал в проведении реальных А/Б, поэтому от него ждут уверенной ориентации в статистической терминологии, но не более; не дизайнил системы, не имеет насмотренности, поэтому здесь от него ждут больше здравого смысла в рассуждениях о том как применить ML, а не способности за 45 минут задизайнить с нуля новый для себя ML сервис.
Кроме Толоки, из русских, знаю, у мейл.ру были разметчики. Но знакомые говорят что собираются отказываться от них в пользу Толоки.
Из зарубежных много говорят про Scale AI, "толоку на стероидах".
Далее цитирую Игоря Котенкова:
Еще ~год назад я увидел, что OpenAI пользуются их [Scale AI] услугами для найма контрактных сотрудников, которые будут помогать готовить данные для моделей, основанных на GPT (включая ChatGPT?). Вот он, успех :)
Знаю много матёрых коллег которые пришли в ML из гуманитарных наук, в ML нет сложной математики. Вот к примеру 4 странички (алгебра, матан, диффуры, теорвер) необходимого минимума для Deep Learning (http://www.d2l.ai/chapter_preliminaries/linear-algebra.html). Сложной математики в ML нет, более того, чтобы применять ML и строить ML сервисы её знать необязательно. Да, это во многих местах ускоряет поиск проблем или даёт идеи попробовать нестандартные метрики, нестандартные модификации моделей – но такое пригождается нечасто.
Дам консервативную оценку, за 4-6 месяцев или даже быстрее сможете. Тем более, с таким опытом в бекенде. Многие чисто технические вещи будут даваться быстро. Вопрос чисто в усидчивости.
Да, как верно сказано выше, offline-метрики можно посчитать на исторических данных, online-метрики только в боевых условиях. Оффлайн мы можем посчитать быстро не рискуя пользователями. Онлайн только в ходе А/Б или пилота (что "долго", но ближе к цели проекта).
Не всегда онлайн-метрики в ходе АБ совпадают с целью проекта. Например, хотим увеличить на 20% месячный оборот, в качестве хорошей прокси-метрики подойдёт средняя выручка на 1 клик. Прокси-метрика – косвенная метрика, коррелирующая с данной, но обладающая другими полезными свойствами, например, её быстрее посчитать, более чувствительна и т.д.
Хорошо выбранные оффлайн метрики будут хорошими прокси для наших онлайн метрик. Конкретно оценить ожидаемый прирост по онлайн зная прирост по оффлайн (прикинуть MDE) очень сложно.
Либо у нас есть история АБ и мы примерно знаем что каждые X% прироста по такой-то оффлайн метрике (например nDCG, ERR, PFound) дают в среднем прирост на Y% по такой-то онлайн метрике (например CTR)
Либо мы делаем симуляцию среды в которой будет находиться модель (разработка может быть очень трудоемкой и легко занять месяц).
Либо пытаемся строить корреляцию на истории, если для этого собирались данные по текущему сервису.
Есть также квази-онлайн метрики - валидация от разметчиков (релевантная / нерелевантная выдача; матч / не матч). Они занимают промежуточное место между оффлайн и онлайн, их дольше считать (ручной труд), но мы не рискуем реальными юзерами.
Идём по порядку. Инженер машинного обучения end-2-end специалист.
Один из ключевых навыков - это продуктовое мышление и способность быстро освоиться в новом домене, понять, где бизнес получает или теряет деньги, какую ценность мы даем пользователю и какую роль в каком месте какой цепочки играет или будет играть ML сервис. Отсюда: поговорить с заказчиками, аналитиками, бекендерами, разобраться что и как работает сейчас с разных сторон, понять какую цель или боль бизнеса покроем.
Следующий пласт навыков - ML System Design. Умение декомпозировать большой проект на составляющие (примерный план упомянут в статье во 2 пункте).
Датасет никто за вас не подготовит, поэтому SQL и навыки работы с БД (включая аналитические) также входят в наш инструментарий. Также в больших компаниях нужно работать с распределенными системами, HDFS или, доводилось, ODPS. Здесь какие-то азы из дата инженерии лишними не будут. В каком-то случае нужные под задачу данные еще не собираются, соответственно нужно дата инженеру или бекендеру сформировать набор требований. К этому же кластеру отнесем data quality, методы препроцессинга, чистки, мониторинга данных.
Само машинное обучение - отдельная большая тема. Умение быстро разобраться в новой или старой задаче; читать научные статьи, искать имплементации, знать что как запускать, валидировать, оценивать в оффлайн/онлайн.
Сюда же включим навыки писать качественный код на Python, включая оптимизацию, тестирование (как общее, так и специфическое для ML кода), дебаг и остальное.
Первая версия построена - вопросы интеграции, деплоя. Какие-то базовые вещи из MLOps будут не лишними: написать CI/CD, завести версионирование моделей, версионирование данных. Мониторинг моделей.
Навык дизайна А/Б экспериментов. Отдельная большая тема. Не всегда в компании есть платформа А/Б или выделен аналитик. Всегда нужно понимать что тестируем, как и на что это повлияет, отдельная тема для исследования в каждой отдельной задаче как мы оцениваем ожидаемый эффект в онлайн метриках по оффлайн метрикам.
Ну и широкий спектр soft skills: навык презентации, объяснение что мы сделали или что будем делать (так чтобы было понятно человеку без математического склада ума), работа с разными командами, приоритизация, дисциплина, всё всё.
нет, проблема не в нормировке, Я пробовал
проблема именно в том, как GPT бьёт картинку на патчи
рекомендую к прочтению, сегодня вышла
https://www.oranlooney.com/post/gpt-cnn/
спасибо большое, пофиксил
да, все базовые сигналы, признаки, приемы определяет 😏
Cтатья на arxiv где предлагается похожий подход https://arxiv.org/abs/2402.12058
Спасибо, исправим
Ждём Вас в Симуляторе ML! :)
Сингулярное разложение это простая математика. Я писал по нему курсовую, включая тензорное расширение. Берешь находишь перпендикулярные друг другу вектора, так чтобы аппроксимировать исходные данные минимизируя фробениусову норму. За два-три вечера можно разобраться.
В deep learning тоже не знаю где там сложности. Никаких тебе интегральных и вариационных исчислений, знаний 11 класса про первую-вторую производную достаточно.
От джуна ждут что у него всего, каждого пункта, понемногу либо на поверхностном уровне. Например, джун не участвовал в проведении реальных А/Б, поэтому от него ждут уверенной ориентации в статистической терминологии, но не более; не дизайнил системы, не имеет насмотренности, поэтому здесь от него ждут больше здравого смысла в рассуждениях о том как применить ML, а не способности за 45 минут задизайнить с нуля новый для себя ML сервис.
Кроме Толоки, из русских, знаю, у мейл.ру были разметчики. Но знакомые говорят что собираются отказываться от них в пользу Толоки.
Из зарубежных много говорят про Scale AI, "толоку на стероидах".
Далее цитирую Игоря Котенкова:
Еще ~год назад я увидел, что OpenAI пользуются их [Scale AI] услугами для найма контрактных сотрудников, которые будут помогать готовить данные для моделей, основанных на GPT (включая ChatGPT?). Вот он, успех :)
Спасибо за приятный отзыв,
Знаю много матёрых коллег которые пришли в ML из гуманитарных наук, в ML нет сложной математики. Вот к примеру 4 странички (алгебра, матан, диффуры, теорвер) необходимого минимума для Deep Learning (http://www.d2l.ai/chapter_preliminaries/linear-algebra.html). Сложной математики в ML нет, более того, чтобы применять ML и строить ML сервисы её знать необязательно. Да, это во многих местах ускоряет поиск проблем или даёт идеи попробовать нестандартные метрики, нестандартные модификации моделей – но такое пригождается нечасто.
Дам консервативную оценку, за 4-6 месяцев или даже быстрее сможете. Тем более, с таким опытом в бекенде. Многие чисто технические вещи будут даваться быстро. Вопрос чисто в усидчивости.
Да, как верно сказано выше, offline-метрики можно посчитать на исторических данных, online-метрики только в боевых условиях. Оффлайн мы можем посчитать быстро не рискуя пользователями. Онлайн только в ходе А/Б или пилота (что "долго", но ближе к цели проекта).
Не всегда онлайн-метрики в ходе АБ совпадают с целью проекта. Например, хотим увеличить на 20% месячный оборот, в качестве хорошей прокси-метрики подойдёт средняя выручка на 1 клик. Прокси-метрика – косвенная метрика, коррелирующая с данной, но обладающая другими полезными свойствами, например, её быстрее посчитать, более чувствительна и т.д.
Хорошо выбранные оффлайн метрики будут хорошими прокси для наших онлайн метрик. Конкретно оценить ожидаемый прирост по онлайн зная прирост по оффлайн (прикинуть MDE) очень сложно.
Либо у нас есть история АБ и мы примерно знаем что каждые X% прироста по такой-то оффлайн метрике (например nDCG, ERR, PFound) дают в среднем прирост на Y% по такой-то онлайн метрике (например CTR)
Либо мы делаем симуляцию среды в которой будет находиться модель (разработка может быть очень трудоемкой и легко занять месяц).
Либо пытаемся строить корреляцию на истории, если для этого собирались данные по текущему сервису.
Есть также квази-онлайн метрики - валидация от разметчиков (релевантная / нерелевантная выдача; матч / не матч). Они занимают промежуточное место между оффлайн и онлайн, их дольше считать (ручной труд), но мы не рискуем реальными юзерами.
Спасибо большое за очень хороший вопрос.
Идём по порядку. Инженер машинного обучения end-2-end специалист.
Один из ключевых навыков - это продуктовое мышление и способность быстро освоиться в новом домене, понять, где бизнес получает или теряет деньги, какую ценность мы даем пользователю и какую роль в каком месте какой цепочки играет или будет играть ML сервис. Отсюда: поговорить с заказчиками, аналитиками, бекендерами, разобраться что и как работает сейчас с разных сторон, понять какую цель или боль бизнеса покроем.
Следующий пласт навыков - ML System Design. Умение декомпозировать большой проект на составляющие (примерный план упомянут в статье во 2 пункте).
Датасет никто за вас не подготовит, поэтому SQL и навыки работы с БД (включая аналитические) также входят в наш инструментарий. Также в больших компаниях нужно работать с распределенными системами, HDFS или, доводилось, ODPS. Здесь какие-то азы из дата инженерии лишними не будут. В каком-то случае нужные под задачу данные еще не собираются, соответственно нужно дата инженеру или бекендеру сформировать набор требований. К этому же кластеру отнесем data quality, методы препроцессинга, чистки, мониторинга данных.
Само машинное обучение - отдельная большая тема. Умение быстро разобраться в новой или старой задаче; читать научные статьи, искать имплементации, знать что как запускать, валидировать, оценивать в оффлайн/онлайн.
Сюда же включим навыки писать качественный код на Python, включая оптимизацию, тестирование (как общее, так и специфическое для ML кода), дебаг и остальное.
Первая версия построена - вопросы интеграции, деплоя. Какие-то базовые вещи из MLOps будут не лишними: написать CI/CD, завести версионирование моделей, версионирование данных. Мониторинг моделей.
Навык дизайна А/Б экспериментов. Отдельная большая тема. Не всегда в компании есть платформа А/Б или выделен аналитик. Всегда нужно понимать что тестируем, как и на что это повлияет, отдельная тема для исследования в каждой отдельной задаче как мы оцениваем ожидаемый эффект в онлайн метриках по оффлайн метрикам.
Ну и широкий спектр soft skills: навык презентации, объяснение что мы сделали или что будем делать (так чтобы было понятно человеку без математического склада ума), работа с разными командами, приоритизация, дисциплина, всё всё.
Надеюсь, верхнеуровнево обрисовал