October 25, 2023
учим clip правильно - Sigmoid Loss for Language Image PT
Классический CLIP учиться по очень простой схеме - берем картиночную бошку(VIT,RN) не очень важно, инитим LM и учим все это с Contrastive loss
- contrastive означает примерно следущее - давайте стягивать положительные между собой, остальное считать плохим. Для Обучением с таким лоссом нужен ОЧЕНЬ большой батч(32к+) и получить его для больших моделей крайне не тривиально(
если у вас не 32к карт), а еще всякие zero3, tp и прочие плохо работают(чаще всего нет) и надо патчить. сейчас вышел open clip и там решены common проблемы, но там свои баги. Интеграция с hf до сих пор очень сомнительная, хотя казалось бы. - Triplet loss - тут возбудились любители vector search - если у нас есть hard negative то чо бы не использовать? Оно конечно правда и без проблем можно использовать triplet на обучени, но вам нужна хотя бы минимальная разметка. Нет - нельзя брать random как негатив - будет хуйня(нужен умный сэмплинг по источникам, а это в контексте мультимодалки не тривиально)
Sigmoid Loss
LLM RL щики должны возбудиться были еще в начале статье, ведь это литерали он
Ладно, на самом деле в модификации для t_i есть нормализация и есть обучаемый bias и температура(это очень умно)
Собственно эта хитрая модификация позволяет делать так(цитирую)
- модель учиться с нуля на основе VIT B на 4tpu(~2a100) до точности 79.4%. Open ai до нее учили две недели на 500+gpu
ПРИ ЭТОМ sigmoid loss менее требователен к batch size, те мы можем учить с меншьшим батчем, получая лучший результат(!)
А еще мы меньше жрем памяти. Очевидно почему.
Результаты прям хорошие, модель на 400m лучше чем 2B и 5B модели! Thats huuuuge
Если вам очень хочется поддержать блог и выход длинно-постов, то можно донатить сюда Для русских карт: 5536913977088695 Для не русских карт: 5269880013404165 Для крипто котиков bnb usdt: 0x4DBd65ec0C0E91755e02170fC1C8f85FB4D6F4f9