# Partial FC: Training 10 Million Identities on a Single Machine Статья от insight face, скорее про оптимизацию обучения больших данных (up to 10 millions ids) Вклад статьи разбит на 3 составляющие: ### 1. Оптимизация обучения в случае MultiGPU Например, у нас есть 10 видеокарт и 10 миллионов ID, самый bottleneck - голова, которая имеет огромный размер `10kk X facen_size`, они предлагают ее равно разделить на количество видеокарт: то есть на каждой будет по 1 миллиону id, алгоритм вычисления на одной видеокарте будет следующим: ![](https://i.imgur.com/pCMWRVT.png) *Highlight: считаем сумму своих 1 млн на видюхе и синхронайзим между видюхами только суммы* ### 2. Нам не нужные все негативы при подсчете софтмакса Для подсчета софтмакса можно в сумме внизу брать не обязательно все негативы. Они говорят, что 10% хватит за глаза, при чем думать особо не надо - берем рандомом, главное - взять позитив. Они это называют PPRN - Positive Plus Random Negatives. Их экперименты показывают, что разница не особо есть: ![](https://i.imgur.com/uNykZTy.png) *Каждый график показывает вероятность взять негатив - 10%, 50% и 100%, по оси Y - положительный косинус* ### 3. Презентовали датасет Они продолжают вычищать MS1MV2, теперь их датасет называется glint360k - 18 миллионов картинок и 360к id