Как стать автором
Обновить
137
0
Арсений Кравченко @Arseny_Info

machine learning engineer

Отправить сообщение

Это не проблема. Человек, который научился решать NLP задачи с помощью LSTM, легко и быстро освоит и трансформеры, и сверточные сети, и любой близкий инструмент.

При найме грузчиков тоже не надо ставить себя выше нанимаемых

> Отказ от тестов был вынужденным, потому что дедлайны горят

Leopards Ate My Face When I Voted For The Leopards Eating People's Faces Party
Совпадение ответов — недостаточный критерий качества. Например, я однажды тоже намерял, что торч в N раз медленнее, чем onnxruntime, а потом обнаружил, что с настойкой трединга накосячил.

А где можно почитать про ONNX? neoml.readthedocs.io/en/latest/search.html?q=onnx ничего не находит.
Сравнение на Mobilenet + CPU выглядит подозрительным: я верю, что вы крутые, но не может pytorch отставать в 10-20 раз. Допускаю, что тест не вполне корректный.

Было бы интересно еще увидеть сравнение по скорости инференса с openvino/tensorrt/onnxruntime.

Наконец, есть вопрос — как у вас дела с конвертерами? Например, можно ли натренировать модель на торче, сконвертить в onnx и инферить на neoml?

Вообще да, в питоне почти везде dict под капотом, в т.ч. для методов:


In [1]: class Foo:
   ...:     def bar(self, x):
   ...:         """I am first"""
   ...:         print(x)
   ...:
   ...:     def bar(self, x, y):
   ...:         """I am second"""
   ...:         print(x, y)
   ...:
   ...: Foo.__dict__['bar'].__doc__
Out[1]: 'I am second'

Вопрос про множественное наследование напомнил другую ситуацию на собеседовании, рассказываю со слов коллеги.
Вопрос интервьювера: Что будет, если написать такой код?


class Foo:
    def bar(self, x):
        print(x)

    def bar(self, x, y):
        print(x, y)

Foo().bar(x)

Коллега ответил (и по-моему идеально): не пройдет код ревью.

В unsupervised learning у нас обычно есть просто какие-то данные, и мы ищем в них структуру — например, кластера или какое-то более компактное представление.
В reinforcement learning сценарий предполагает, что есть агент, который взаимодействует со средой и получает какое-то вознаграждение; модель стремится выбирать такие действия, которые максимизируют вознаграждение.
Собственно, существует две больших группы методов обучения нейронной сети. Обучение с учителем и обучение без учителя.
Скорее это две группы методов машинного обучения (а нейросети — это подмножество ML). Как раз сети обычно учат в supervised/self-supervised парадигме, а под unsupervised часто имеют в виду кластеризацию и другие менее модные методы.

Пример с погодой, который мы рассмотрели выше, относится к группе методов обучения с подкреплением (без учителя).
Unsupervised learning и reinforcement learning — две сильно разные вещи.

Наконец, стоит отметить, что подбирать веса для нейросети генетическим алгоритмом — неоптимально (не говоря уже о том, что для этого и Tensorflow не нужен). Почти любая неигрушечная модель слишком сложна для этого, потому обычно используются какие-то вариации на тему SGD.
Не все вспышки одинаково опасны для эпилептиков
Действительно, зачем разрешать этому биомусору играть? И уж точно эти людишки недостойны того, чтобы в игре позволяли пропускать опасные для них сцены или делали опцию «ослабить визуальные эффекты». /s
Если сравнивать с 3d-датасетами, то полно :) Качество может действительно быть неидеальным. Ну и набора объектов конкретно для вашей задачи может не найтись, это нормально — почти все неакадемические задачи в итоге требуют собственную разметку.
Спасибо, крутой гайд!
Добавлю дата поинт насчет onnx-runtime: с простыми сетями из коробки завелось на серверном CPU и на CUDA, все хорошо; быстрее, чем traced модель из Pytorch, а процедура выкатывания в прод аналогичная, все очень просто.
Смотря какой data science. Какие-нибудь терабайты логов парсить на скале со спарком явно удобнее, чем питоном.
Вы изобретаете велосипед. Для поиска похожих изображений не нужно руками считать статистики цветов, нужно использовать или pHash, или representations из специально обученных нейросетей. Для эффективного поиска по векторам — всякие Annoy и Faiss.

Более того, алгоритмы сразу с инфраструктурой доступны, например, в github.com/jina-ai/jina
А какие лоссы используются для инпейнтинга границ?
Модели, обученные на imagenet, выдают удивительно хорошие вектора для большинства задач. Конечно, можно делать свой feature extractor и добиться лучшего качества, но если ваша задача не слишком специфическая, я бы не заморачивался. Заниматься этим стоит только если у вас есть действительно много данных для обучения, а метрики итоговой модели вас не устраивают.
Как его продать? Там наверняка используется куча внутренних гугловских технологий, и оторвать продукт от инфраструктуры, не переписав все заново, будет невозможно.

Информация

В рейтинге
Не участвует
Откуда
Польша
Работает в
Дата рождения
Зарегистрирован
Активность