Как ускорить распознавание объектов нейросетями среди множества классов, не жертвуя памятью и точностью
Эксперты российской ИТ-компании «Криптонит» Никита Габдуллин и Илья Андросов разработали принципиально новый метод организации скрытого пространства нейросетей. В ряде сценариев он позволяет снизить требования к памяти GPU и существенно ускорить классификацию объектов нейронными сетями. Вместо того, чтобы мириться с ростом вычислительных затрат и требований к памяти по мере увеличения числа классов, авторы призывают отказаться от классификационного слоя и случайного распределения классов в скрытом пространстве нейросети.
Ограничения классификаторов на примере компьютерного зрения
Системы компьютерного зрения (CVS) помогают нам найти товар по фото, обнаружить пропавшего человека, идентифицировать растения и минералы, определять производственный брак прямо на конвейере, использовать интеллектуальное видеонаблюдение и создавать автономных роботов. Сценариев их использования становится всё больше, и во многих из них требуется глубокий анализ. То есть, помимо класса объекта (животное, транспортное средство и т.д.) всё чаще требуется определять подклассы и конкретные метки в них. В зависимости от оборудования, задержки становятся заметными уже на десятках и сотнях тысячах классов. При нескольких миллионах классов нейросеть может просто не помещаться в память одного графического ускорителя (GPU) — приходится покупать кластер, или отправлять запросы в облако, что дорого, долго и не всегда возможно.
Ранее предпринимались попытки оптимизировать задачу классификации. В качестве альтернативы простому классификационному слою был разработан подход, основанный на принципе подобия с предопределёнными прототипами.
Вместо того, чтобы хранить отдельные веса для каждого класса, нейросеть обучается выдавать его векторное представление (эмбеддинг) таким образом, чтобы объекты одного класса образовывали компактные группы — кластеры. Класс объекта определяется по ближайшему прототипу — эталонному вектору в центре кластера. Для этого вычисляется расстояние между векторным представлением распознаваемого объекта (эмбеддингом запроса) и прототипами всех классов. Обычно эта задача решается через вычисление косинусного сходства (cossim). Однако сложность поиска ближайшего прототипа по-прежнему оказывается пропорциональна числу классов.
Пространство всех возможных эмбеддингов называется скрытым пространством (latent space, LS). Как правило, в процессе обучения нейросети обычными методами эмбеддинги распределяются в LS случайным образом, и геометрическая структура LS не зафиксирована. Именно эту проблему и решают авторы исследования.
Предопределённость вместо хаоса
В предложенном подходе скрытое пространство нейросети (latent space) конфигурируется специальным образом — с помощью описанного ранее метода latent space configuration (LSC). В качестве целей конфигурации берутся векторные системы Vnmk, где каждый вектор состоит ровно из m единиц, k минус-единиц и дополнен нулями.
Когда скрытое пространство заполнено такими векторами, поиск ближайшего центра класса сводится к нахождению индексов m наибольших и k наименьших значений в эмбеддинге запроса. Более того, сложность поиска ближайшего центра становится постоянной величиной, больше не зависящей от числа классов! Она определяется как O(ndim), где ndim — размерность скрытого пространства. Так как ndim является константной при инференсе, сложность поиска в данном случае О(1).
Сохранение исходной точности
В других методах ускорение работы и уменьшение объёма нейросети достигается за счёт вынужденных огрублений — квантизации, сжатия с потерями, приближённого поиска соседей. Здесь же ничем не приходится жертвовать. Авторы математически доказывают, что для корректно обученной модели предсказание ближайшего центра по предложенному алгоритму идентично предсказанию по максимуму косинусного сходства. Экспериментально это также подтверждено на различных наборах данных. Новый метод не предлагает компромисс, а просто конфигурирует структуру скрытого пространства нейросети более эффективно.
Преимущества становятся очевидными именно при большом числе классов. В статье приводятся замеры на GPU с 40 ГБ памяти (NVIDIA A100):
-
при 5 миллионах классов и фиксированном размере батча ускорение самой операции поиска (только классификации) достигает 76 крат, однако общее преимущество в таком масштабе оказывается невелико (4%), так как большую часть времени занимает препроцессинг и выгрузка данных.
-
при 20 млн классов ситуация кардинально меняется и общий выигрыш по времени составляет 2,64 раза.
-
при 30 миллионах классов обычный метод вообще не может работать с большим батчем, так как в память GPU невозможно поместить одновременно и модель и огромный классификационный слой. В этих условиях предложенный метод обеспечивает ускорение общего времени логического вывода (inference) до 11,57 раза по сравнению с оценкой косинусного сходства.
-
при 100 миллионах классов традиционный подход (с косинусным сходством или полносвязным слоем) на одном GPU просто не применим. Новый метод продолжает работать, делая возможным использование экстремально большого числа классов.
Обнаружение новых классов
Ещё один практический эффект предложенного метода — способность сообщать о ранее неизвестных классах. Классическая система компьютерного зрения всегда выдаёт степень соответствия одному из известных классов, даже если объект не принадлежит ни одному из них.
В предложенной системе распознавание происходит иначе. В ней не обязательно использовать все векторы как центры существующих классов. Если множество различных запросов устойчиво попадает в один и тот же немаркированный центр — это сильный признак того, что модель столкнулась с новым классом, с которым не сталкивалась в процессе обучения.
Такое поведение открывает перспективы для непрерывного обучения (lifelong learning) и обучения с малым числом примеров (few-shot learning).
Сценарии внедрения
Предложенный метод не только сокращает расходы на инференс, но и позволяет реализовать недостижимые ранее сценарии внедрения систем компьютерного зрения.
Например, в рекомендательных системах маркетплейсов и музыкальных сервисах. Когда каталог насчитывает десятки миллионов позиций, классификация предпочтений пользователя в реальном времени становится медленной и затратной. Новый метод позволяет ускорить подбор релевантных объектов без закупки дополнительных мощностей.
Аналогичная проблема возникает при поиске товаров по каталогам. Если у маркетплейса десятки миллионов товаров, то обычная нейросеть с классификационным слоем или полным перебором прототипов просто не помещается в памяти одного ускорителя и тогда обходится слишком дорого. Новый метод решает эту проблему.
Другой важный аспект — интеллектуальное видеонаблюдение в многолюдных местах (стадионах, вокзалах, аэропортах). Распознавание лиц и номеров автомобилей в мегаполисах — это та задача, где ограничения по памяти и времени обработки возникают очень быстро. Предложенный подход позволяет работать с любыми объёмами при существенно меньших требованиях к оборудованию.
Способность системы сообщать о неизвестных классах может быть востребована в биометрической идентификации (банки, системы доступа). Здесь важна не только скорость, но и возможность корректно отклонить неизвестного человека (не приписывая ему ложный известный идентификатор). Теоретически, немаркированные центры кластеров как раз дают такую возможность.
Детерминированные преимущества
Научная работа Никиты Габдуллина и Ильи Андросова предлагает математически строгий способ превратить классификацию с миллионами классов из ресурсоёмкой задачи в операцию с фиксированной сложностью. Продемонстрировано ускорение более чем в 11 раз и возможность продолжать работу там, где обычные методы упираются в лимиты памяти. Встроенный механизм обнаружения новых классов ещё больше расширяет потенциальные сферы применения. Помимо ускорения задачи классификации, новый метод открывают новые возможности для создания интеллектуальных систем, способных работать в реальном времени с каталогами любого размера.
Подробнее читайте в научной статье (PDF) «Использование предопределённых систем векторов для ускорения операций классификации в нейронных сетях с миллионами классов» на нашем сайте kryptonite.ru.
Источник: habr.com

Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.