Команда Computer Vision Mail.ru предоставляет решения для нескольких продуктов Mail.ru: Облако, Vision (b2b-продукт), Почта. Спектр проектов достаточно широкий и включает в себя такие задачи (но не ограничивается ими), как Face Recognition, OCR и реставрация фотографий. За несколько лет работы мы споткнулись обо всевозможные грабли и встречаем одни и те же челленжи:
* Какие архитектуры нейросеток, подходы, хаки работают на большом спектре задач ?
* Как организовать инфраструктуру для удобного обучения моделей ?
* Каким образом катить и сервить модели в проде, чтобы это было удобно для всех?
В своем докладе расскажу о полном жизненном цикле проектов в Computer Vision: от постановки задачи до запуска в production.
Video: https://www.youtube.com/watch?v=oOtBt2jqXgw&feature=youtu.be&list=PLH-XmS0lSi_yY4rQCIZyx5Np57zc77OyE&t=21658
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...Newprolab
Юрий Макаров, Data Scientist, E-Contenta. Если вы хотите получить доступ к видео выступления, заполните форму здесь: http://dswknd2017.datascienceweek.com/
Data Science Weekend 2017. E-Contenta. Классификация текстов: в поисках сереб...Newprolab
Юрий Макаров, Data Scientist, E-Contenta. Если вы хотите получить доступ к видео выступления, заполните форму здесь: http://dswknd2017.datascienceweek.com/
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...Alexander Pozdneev
В докладе будет дан обзор второго поколения алгоритмов BFS, с помощью которых были получены результаты для систем IBM Blue Gene/Q Mira и Sequoia, отраженные в редакциях рейтинга Graph500 за 2012-2013 годы. Будут описаны структура для хранения графа, схема декомпозиции данных, принципы балансировки нагрузки и методы, позволяющие в ряде случаев на порядок сократить число ребер, которые необходимо рассмотреть в процессе обхода. Вторая часть доклада будет посвящена новому параллельному алгоритму решения задачи SSSP. Алгоритм характеризуется существенно меньшим по сравнению с известными алгоритмами объемом межпроцессорных коммуникаций. Будут рассмотрены классы оптимизаций, направленные на решение проблемы балансировки нагрузки для больших графов, а также вопросы уменьшения количества итераций алгоритма и числа релаксаций ребер. В докладе будет показано влияние отдельных приемов оптимизации на производительность алгоритмов BFS и SSSP на системах архитектуры IBM Blue Gene/Q. Материалы для доклада любезно предоставлены доктором Fabrizio Petrini (IBM Research) и будут опубликованы в трудах конференции IPDPS-2014.
Литература
* Traversing Trillions of Edges in Real-time: Graph Exploration on Large-scale Parallel Machines
Fabio Checconi, Fabrizio Petrini
http://www.odbms.org/wp-content/uploads/2014/05/g500-ipdps14.pdf
* Scalable Single Source Shortest Path Algorithms for Massively Parallel Systems
Venkatesan T. Chakaravarthy, Fabio Checconi, Fabrizio Petrini, Yogish Sabharwal
http://www.odbms.org/wp-content/uploads/2014/05/sssp-ipdps2014.pdf
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиковMskDotNet Community
2017-12-16 MskDotNet Субботник
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. Мы расскажем, как.NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на.NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Слайды доклада "Машинное обучение на платформе .NET" с Global IT Meetup. Запись доклада доступна по ссылке:
https://www.youtube.com/watch?v=rmkbb2MutOo
Когда говорят о машинном обучении, обычно рассматривают его в контексте создания спам-фильтров, рекомендательных систем, распознавания текста, лиц и голоса. В данном докладе машинное обучение будет рассмотрено применительно к фармацевтике, а именно drug discovery. Доклад условно разделён на 3 части. В первой части Андрей на реальном примере рассмотрит реализацию и основные стадии пайплайна, который используется в drug discovery. Во второй части доклада применительно к C++ будут рассмотрены возможности, которые можно использовать для организации параллельных вычислений. В третьей части Андрей расскажет, как можно использовать распределённые вычисления для масштабирования существующего решения, когда нежелательно или невозможно поменять существующую кодовую базу.
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Машинное обучение - это не только веб-сервисы на сверхпроизводительных TPU. В реальных условиях может потребоваться возможность применять ML-модели на конечных устройствах.
Например, мобильное приложение, которое должно работать в оффлайн, или Enterprise-сервис, который работает в закрытом контуре.
При этом не всегда есть возможность вместе с моделью внедрить специализированное оборудование и приходится запускаться на чем есть.
В этом докладе на примере одной конкретной модели машинного зрения я покажу, как её запустить:
- в облаке на GPU;
- в браузере клиента;
- на мобильном устройстве;
- на ноутбуке без видеокарты;
- на микросхеме за $10.
Покажу, какой trade-off требуется в каждом случае и что происходит с производительностью и качеством.
Мы в Почте Mail.ru повсеместно используем machine learning для решения бизнес-задач. Основные направления – сделать Почту умнее (помочь пользователю ориентироваться в нарастающем потоке информации и эффективно решать его задачи) и защитить от спама.
Чтобы достичь этих целей, мы создаем и поддерживаем десятки систем машинного обучения. При таком количестве моделей их регулярная поддержка: набор выборки, дообучение и выкатка в бой — может отнимать почти все время команды. Особенно остро эта проблема стоит в антиспаме, где спамеры адаптируются к системе защиты днем и ночью. Очевидно, что поддержку нужно автоматизировать, однако по ходу процесса возникает много вопросов:
* как быть уверенным, что обученная на выборке модель будет хороша на продакшне и не сломается на выходных;
* как поддерживать ансамбли и каскады моделей;
* как выстроить эффективный feedback loop без участия асессоров.
Как мы решаем эти и другие проблемы, а также какие общие подходы мы выработали, я расскажу в своем докладе.
Video: https://www.youtube.com/watch?v=GMsa9FhuoIw
Саморазвитие: как я не усидел на двух стульях и нашел третийEduard Tyantov
Когда я спрашиваю на собеседованиях соискателей "Чего вы ожидаете от руководителя", то почти каждый раз получаю инста-ответ "должен быть экспертом". А ведь по мере увеличения команды или вертикального роста у нас, руководителей, все меньше и меньше времени на то, чтобы просто оставаться на том же уровне в условиях постоянно меняющегося окружения. Как в таких реалиях еще и успевать двигаться вперед ? Вопрос сложный.
Сотрудники любят, чтобы их технологически развивали и всячески наставляли, и многие думают, что это можно получить только от руководителя с развитыми hard skills, но так ли это? Часто у руководителей в определенный момент встает ребром вопрос выбора между развитием технической экспертизы и софт скиллами. Как его сделать? Нужно ли его делать ?
Я нашел этот ответ для себя и среди прочего расскажу:
* Как развивать себя, коллег и всех, кто движется вокруг? Как сделать так, чтобы коллеги мотивировали тебя достигать большего? Почему важны разноплановые уровни взаимодействия в команде?
* Почему надо выкинуть цели, написанные во время вдохновляющих новогодних каникул, и на что их заменить ?
* Что развивать, зачем и почему ? Как развивать хард-скиллы, если ты более не contributor проекта?
Разумеется, для всего этого нужны время, мотивация, энергия, и я не обойду стороной важнейший вопрос личной эффективности и максимизации своего output'а. Я отношусь к себе как к био-роботу и программирую свое окружение и процессы таким образом, чтобы развитие, да и просто хорошие, правильные вещи происходили сами собой без мук выбора и силы воли, например, этот доклад ;)
Video: https://youtu.be/dPnrsUG3ADs?list=PL_L_HiHe5k_0jRIGM2lgsO3Pn2r9UBKnG&t=14403
More Related Content
Similar to Опыт моделеварения от команды ComputerVision Mail.ru
Параллельные алгоритмы IBM Research для решения задач обхода и построения кра...Alexander Pozdneev
В докладе будет дан обзор второго поколения алгоритмов BFS, с помощью которых были получены результаты для систем IBM Blue Gene/Q Mira и Sequoia, отраженные в редакциях рейтинга Graph500 за 2012-2013 годы. Будут описаны структура для хранения графа, схема декомпозиции данных, принципы балансировки нагрузки и методы, позволяющие в ряде случаев на порядок сократить число ребер, которые необходимо рассмотреть в процессе обхода. Вторая часть доклада будет посвящена новому параллельному алгоритму решения задачи SSSP. Алгоритм характеризуется существенно меньшим по сравнению с известными алгоритмами объемом межпроцессорных коммуникаций. Будут рассмотрены классы оптимизаций, направленные на решение проблемы балансировки нагрузки для больших графов, а также вопросы уменьшения количества итераций алгоритма и числа релаксаций ребер. В докладе будет показано влияние отдельных приемов оптимизации на производительность алгоритмов BFS и SSSP на системах архитектуры IBM Blue Gene/Q. Материалы для доклада любезно предоставлены доктором Fabrizio Petrini (IBM Research) и будут опубликованы в трудах конференции IPDPS-2014.
Литература
* Traversing Trillions of Edges in Real-time: Graph Exploration on Large-scale Parallel Machines
Fabio Checconi, Fabrizio Petrini
http://www.odbms.org/wp-content/uploads/2014/05/g500-ipdps14.pdf
* Scalable Single Source Shortest Path Algorithms for Massively Parallel Systems
Venkatesan T. Chakaravarthy, Fabio Checconi, Fabrizio Petrini, Yogish Sabharwal
http://www.odbms.org/wp-content/uploads/2014/05/sssp-ipdps2014.pdf
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиковMskDotNet Community
2017-12-16 MskDotNet Субботник
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. Мы расскажем, как.NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на.NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Слайды доклада "Машинное обучение на платформе .NET" с Global IT Meetup. Запись доклада доступна по ссылке:
https://www.youtube.com/watch?v=rmkbb2MutOo
Когда говорят о машинном обучении, обычно рассматривают его в контексте создания спам-фильтров, рекомендательных систем, распознавания текста, лиц и голоса. В данном докладе машинное обучение будет рассмотрено применительно к фармацевтике, а именно drug discovery. Доклад условно разделён на 3 части. В первой части Андрей на реальном примере рассмотрит реализацию и основные стадии пайплайна, который используется в drug discovery. Во второй части доклада применительно к C++ будут рассмотрены возможности, которые можно использовать для организации параллельных вычислений. В третьей части Андрей расскажет, как можно использовать распределённые вычисления для масштабирования существующего решения, когда нежелательно или невозможно поменять существующую кодовую базу.
Машинное обучение в электронной коммерции - практика использования и подводны...Ontico
РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Машинное обучение - это не только веб-сервисы на сверхпроизводительных TPU. В реальных условиях может потребоваться возможность применять ML-модели на конечных устройствах.
Например, мобильное приложение, которое должно работать в оффлайн, или Enterprise-сервис, который работает в закрытом контуре.
При этом не всегда есть возможность вместе с моделью внедрить специализированное оборудование и приходится запускаться на чем есть.
В этом докладе на примере одной конкретной модели машинного зрения я покажу, как её запустить:
- в облаке на GPU;
- в браузере клиента;
- на мобильном устройстве;
- на ноутбуке без видеокарты;
- на микросхеме за $10.
Покажу, какой trade-off требуется в каждом случае и что происходит с производительностью и качеством.
Similar to Опыт моделеварения от команды ComputerVision Mail.ru (20)
Мы в Почте Mail.ru повсеместно используем machine learning для решения бизнес-задач. Основные направления – сделать Почту умнее (помочь пользователю ориентироваться в нарастающем потоке информации и эффективно решать его задачи) и защитить от спама.
Чтобы достичь этих целей, мы создаем и поддерживаем десятки систем машинного обучения. При таком количестве моделей их регулярная поддержка: набор выборки, дообучение и выкатка в бой — может отнимать почти все время команды. Особенно остро эта проблема стоит в антиспаме, где спамеры адаптируются к системе защиты днем и ночью. Очевидно, что поддержку нужно автоматизировать, однако по ходу процесса возникает много вопросов:
* как быть уверенным, что обученная на выборке модель будет хороша на продакшне и не сломается на выходных;
* как поддерживать ансамбли и каскады моделей;
* как выстроить эффективный feedback loop без участия асессоров.
Как мы решаем эти и другие проблемы, а также какие общие подходы мы выработали, я расскажу в своем докладе.
Video: https://www.youtube.com/watch?v=GMsa9FhuoIw
Саморазвитие: как я не усидел на двух стульях и нашел третийEduard Tyantov
Когда я спрашиваю на собеседованиях соискателей "Чего вы ожидаете от руководителя", то почти каждый раз получаю инста-ответ "должен быть экспертом". А ведь по мере увеличения команды или вертикального роста у нас, руководителей, все меньше и меньше времени на то, чтобы просто оставаться на том же уровне в условиях постоянно меняющегося окружения. Как в таких реалиях еще и успевать двигаться вперед ? Вопрос сложный.
Сотрудники любят, чтобы их технологически развивали и всячески наставляли, и многие думают, что это можно получить только от руководителя с развитыми hard skills, но так ли это? Часто у руководителей в определенный момент встает ребром вопрос выбора между развитием технической экспертизы и софт скиллами. Как его сделать? Нужно ли его делать ?
Я нашел этот ответ для себя и среди прочего расскажу:
* Как развивать себя, коллег и всех, кто движется вокруг? Как сделать так, чтобы коллеги мотивировали тебя достигать большего? Почему важны разноплановые уровни взаимодействия в команде?
* Почему надо выкинуть цели, написанные во время вдохновляющих новогодних каникул, и на что их заменить ?
* Что развивать, зачем и почему ? Как развивать хард-скиллы, если ты более не contributor проекта?
Разумеется, для всего этого нужны время, мотивация, энергия, и я не обойду стороной важнейший вопрос личной эффективности и максимизации своего output'а. Я отношусь к себе как к био-роботу и программирую свое окружение и процессы таким образом, чтобы развитие, да и просто хорошие, правильные вещи происходили сами собой без мук выбора и силы воли, например, этот доклад ;)
Video: https://youtu.be/dPnrsUG3ADs?list=PL_L_HiHe5k_0jRIGM2lgsO3Pn2r9UBKnG&t=14403
Машинное обучение проникает во все сферы нашей жизни со все нарастающей скоростью, что меняет наши привычные паттерны взаимодействия с продуктами и отношение к ним. Пользователи уже привыкают к тому, что магические алгоритмы делают всю работу за них и часто лучше их: выбирают новости или книги, подбирают фильтр для улучшения фотографии и даже заказывают столик в ресторане по телефону.
Чтобы обеспечить всю эту магию, со стороны разработки происходит так называемый переход от Software 1.0 к 2.0: теперь не нужно четко описывать алгоритм принятия решения, нейросети смогут вывести его на данных лучше нас. Это в корне меняет традиционные подходы, а компетенция ML становится все более востребованной в стеке технологий разработчика.
Аналогичный переход надо совершить и в подходах к ведению проектов и продуктов. С добавлением ML в продукт знакомые техники и правила перестают работать. Постановка задачи с точными требованиями и привычные методы контроля с большой вероятностью не приведут к успеху. Ведение продукта, в основе которого лежит технология машинного обучения, принципиально отличается.
За последние пару лет мы в Mail.ru запустили десятки продуктов и фич на основе ML, и я расскажу о:
* выработанных практиках ведения проекта с ML в основе;
* многочисленных шишках, которые мы набили;
* адаптации софтверной разработки;
* и многом другом.
Доклад будет полезен всем, кто так или иначе участвует в разработке AI-продуктов.
Video: https://youtu.be/t0Sop2WeoiU?list=PLH-XmS0lSi_xEcn9meOmrPVPxajSh2PRA&t=8779
This document summarizes a Kaggle competition on landmark recognition. It provides details on the dataset, evaluation metrics, and the top approaches used. The dataset contains over 1 million training images across nearly 15,000 landmark classes. Models like ResNet and DenseNet were trained using metric learning and data balancing. Inference involved finding the closest centroids for each landmark class. Ensembling multiple models and test-time augmentation improved results. The top solution used ArcFace metric learning, balanced sampling, and kNN to achieve 10th place on the private leaderboard.
Kaggle reviewPlanet: Understanding the Amazon from SpaceEduard Tyantov
This document summarizes a Kaggle competition to detect deforestation in the Amazon rainforest using satellite images. It describes:
1. The competition involved classifying over 150,000 image chips into 17 land cover classes to detect deforestation.
2. The baseline model was a ResNet-18 pretrained on ImageNet with fine-tuning, which achieved a score of 90.06%. Several techniques like optimal class thresholds and hyperparameter tuning improved the score to 92.53%.
3. The top models combined RGB satellite images with a near-infrared channel and indexes, training separate branches on JPG and TIF data. The best single model scored 93.071% by ensembling different model
This document summarizes a Kaggle competition on ultrasound nerve segmentation. It describes the data provided, which includes over 5000 training images and masks of the Brachial Plexus nerve. Several baselines are presented, with the top method being a U-Net model achieving a score of 0.62. The document then analyzes aspects of the winning solution in detail, which was based on a modified U-Net architecture with techniques like dropout, data augmentation, and an ensemble of models to achieve a final score of 0.70399. Other approaches tried like FCNs and Inception networks are also discussed.
15. – Общаться с продактом на данных
• в идеале – тест-сет
– Постановка – совместная работа ML + Product
• Иначе => куча итераций переделок
Постановка AI-продукта
16. Постановка задачи – ваша ответственность,
пока вы не научите продакта
AI-продукты
47. Результаты
– Сеть учит семантический embedding
– Не забывает классы OpenImages
Model mAP
Arcface 92.8
+Knowledge Distil 93.8
(+1%)
Transfer with Knowledge distillation
68. – Кастомная сборка Pytorch с Apex
– Использовать Automatic Mixed Precision
• FP16_Optimizer – больше контроля, гемора и только Adam
…
FP16 Training
69. 0 100 200 300 400 500 600
Inference
Training
Tesla T4, Resnet50, 64 batch
FP16+Apex FP16 FP32
Результаты
– Качество обучения не страдает
– Ускорение: 2x
– 20% от Apex на обучении
ms
FP16 Training
77. – Постановка
– На данных, тест-сет, работаем вместе с продактом
Recap
78. – Постановка
– На данных, тест-сет, работаем вместе с продактом
– Данные
– Чистим кластеризацией (CLink)
Recap
79. – Постановка
– На данных, тест-сет, работаем вместе с продактом
– Данные
– Чистим кластеризацией (CLink)
– Обучение
– Metric learning: Arcface
– Knowledge distillation for Transfer learning
– Multi-head
– FP16 Apex
Recap
80. – Постановка
– На данных, тест-сет, работаем вместе с продактом
– Данные
– Чистим кластеризацией (CLink)
– Обучение
– Metric learning: Arcface
– Knowledge distillation for Transfer learning
– Multi-head
– FP16 Apex
– Inference
– Pytorch C++
Recap
сократить t2m & улучшить качество (interchangeable)
когда я думал
основа всего
я хочу чтобы было красиво
не привыкли, нет навыка такого
получили интересную задачу, вы радуетесь, звоните маме
либо сразу проясните все тонкости, либо в конце и будете переделывать
сделать задачи, а потом выясниться
фолз: лицо маладенца vs локоть
inclusive
в тест-сет может заложить все то что нужно продакту
в процессе работы задача уточняется на edge cases
наша с вами задача обучать, если не мы, то кто
чтобы они не учились на вас
а датасеты шумные
их можно почистить
то же самое можно делать для объединения похожих кластеров
TODO: оч мелкие картинки. Надо рассмотреть эти картинки. Возможно спилить слайд
порог один
какая из этих картинок авто-сгенерирована ?
пила не хватит, если не приглядитесь то не поймете, что это не реальные данные
3d моделирование
Про блендер:
1) OpenSource
2) Отличное PythonAPI, доступ почти до всего
3) Два встроенных рендера (движка):
1. встройнный - говно качество, очень быстрый, не работает с популярными форматами моделей (fbx)
2. Cycles - рейтрейс, работает с fbx, довольно медленно, но на нескольких GPU за несколько дней можно нарендерить датасет
4) Скоро будет апдейт - будет новый рендер Eevee, который будет работать качественно, быстро и без рейтрейса, при этом работать с fbx
Модели
1) Есть халявные - как правило валяются везде по отельности (типа, там кто-то сделал бутылку с колой, тут на другом сайте кто-то коробку с печеньем, все в разных форматах собирать заколебешься)
2) Есть дорогие - часто поставляются целыми паками (куча объектов в одном паке). Качество моделей намного выше
3) Еще, модели могут требовать ручную обработку, чтобы их использовать для синтетической даты
Ручная обработка моделей
1) Модели могу неправильно импортиться, например была проблема, что все прозрачные материалы были тупо черными
2) Несколько объектов могут быть склеены в один, приходится их расклеивать. Автоматически это сделать тяжеловато
на примере распознавания достопримечательностей
То что заходит лучше. На примере FR
-В обычном софтмаксе у нас точки разделены плоскостью, в случае двух классов - на основе двух векторов весов.
-Если сделать норму ембеддингов 1 то мы получим картинку справа. Точки лягут на окружность (т.е. на сферу в n-мерном случае).
Тут мы видим, что за разделение векторов отвечает угол между векторами. И будем оптимизировать угол между.
Если мы просто перейдем к оптимизации угла, то задача по факту не изменится, т.к. мы ее просто переформулировали в других терминах. Наша цель сделать кластера более компактными.
-чтобы достичь этого нужно дополнительно потребовать большего угла между классами.
-Это достигается за счет введение параметра m который управляет разницей косинусов углов.
вместо линейного слоя
Мы делали поиск похожих картинок
притрейн с OI
Catastrophic forgetting: семантически верно, но расово неверно
не забывай свои корни
доминируют выдачу
crowd human – часто в датасетах есть и связанная разметка ( голова)
помимо тушки
byte pair encoding - compression algorithm (that iteratively replaces the most frequent pair of characters in a sequence with a single, unused byte.)
База -> потом хотим учесть слова, это можно сделать если предсказывать доп голову с ними
градиент сильнее от bpe через l, гораздо сильнее чем от одной буквы!
С инференсом все понятно, В пайторче half + scale loss в районе нуля
FP_optimizer работает только с Adam, да и то только с тем Adam, который есть в Apex (да, у них свой Adam в репозитории, который имеет совершенно другой интерфейс, чем пайторчевый)
FP16_opt – больше контроля, но сложнее (just scale loss 128 and you have to use .half()). AMP работает через black/whitelist, которые он проверяет на каждый call и принимает решение есть ли профит от cast в fp16. Реализовано через monkey_patch всех операторов.
У нас куча фреймворков, но в деплое, но для обучения используем пайторч, самый насущный вопрос
переучивать модели, заменять слои
docker_image под модель чтобы отконвертить
мы потестили
но сука быстрый
ex: лонг инты не поддерживаются, reshape, transpose
не хватает документации: надо смотреть доку питона и .h файлы
resnet50 в 2 раза медленее чем на питоне – issue (проблема с линковой cudnn) сабмитили чинтале issue
если один раз это пройти, то все ок
внутри jit по сути питон
финалочка: надеюсь попробуете эти трюки и это улучшит ваше прод. результаты и скорость