# 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, алгоритм вычисления на одной видеокарте будет следующим:

*Highlight: считаем сумму своих 1 млн на видюхе и синхронайзим между видюхами только суммы*
### 2. Нам не нужные все негативы при подсчете софтмакса
Для подсчета софтмакса можно в сумме внизу брать не обязательно все негативы. Они говорят, что 10% хватит за глаза, при чем думать особо не надо - берем рандомом, главное - взять позитив. Они это называют PPRN - Positive Plus Random Negatives.
Их экперименты показывают, что разница не особо есть:

*Каждый график показывает вероятность взять негатив - 10%, 50% и 100%, по оси Y - положительный косинус*
### 3. Презентовали датасет
Они продолжают вычищать MS1MV2, теперь их датасет называется glint360k - 18 миллионов картинок и 360к id