ИТТ делимся советами, лайфхаками, наблюдениями, результатами обучения, обсуждаем внутреннее устройство диффузионных моделей, собираем датасеты, решаем проблемы и экспериментируемТред общенаправленныей, тренировка дедов, лупоглазых и фуррей приветствуются
Существующую модель можно обучить симулировать определенный стиль или рисовать конкретного персонажа.
✱ LoRA – "Low Rank Adaptation" – подойдет для любых задач. Отличается малыми требованиями к VRAM (6 Гб+) и быстрым обучением. https://github.com/cloneofsimo/lora - изначальная имплементация алгоритма, пришедшая из мира архитектуры transformers, тренирует лишь attention слои, гайды по тренировкам: https://rentry.co/waavd - гайд по подготовке датасета и обучению LoRA для неофитов https://rentry.org/2chAI_hard_LoRA_guide - ещё один гайд по использованию и обучению LoRA https://rentry.org/59xed3 - более углубленный гайд по лорам, содержит много инфы для уже разбирающихся (англ.)
✱ LyCORIS (Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion) - проект по созданию алгоритмов для обучения дополнительных частей модели. Ранее имел название LoCon и предлагал лишь тренировку дополнительных conv слоёв. В настоящий момент включает в себя алгоритмы LoCon, LoHa, LoKr, DyLoRA, IA3, а так же на последних dev ветках возможность тренировки всех (или не всех, в зависимости от конфига) частей сети на выбранном ранге: https://github.com/KohakuBlueleaf/LyCORIS
✱ Текстуальная инверсия (Textual inversion), или же просто Embedding, может подойти, если сеть уже умеет рисовать что-то похожее, этот способ тренирует лишь текстовый энкодер модели, не затрагивая UNet: https://rentry.org/textard (англ.)
➤ Тренировка YOLO-моделей для ADetailer: YOLO-модели (You Only Look Once) могут быть обучены для поиска определённых объектов на изображении. В паре с ADetailer они могут быть использованы для автоматического инпеинта по найденной области.
>>1118239 → >>1118244 → проверил кароче с 0.99, и оно действительно работает на достаточно агрессивном 0.0005 лр по юнету и те, терять связи текста с изображением начинает примерно с 7-13 эпохи в зависимости от промта на моих настройках с жесткой регуляризацией
но общее качество сохраняется на нужном уровне отличном даже спустя 50 эпох, просто чтобы обратно возвращались умения давать написанное нужно понижать клип или юнет или оба сразу
в отличие от 2-3 эпохи где все летит в жопу ранее на 0.9 бете
обощает мое почтение теперь, практически ноль артефактов с жесткими дропаутами на всем чем можно
>>1119000 понизил beta2 до 0.9 (ну то есть ранее б1б2 было 0.9-0.999, теперь 0.99-0.9) - и вроде как перестало косоебить текстовый енкодер при соотношении 1 к 1, магия
>При beta2=0.999 вес новых градиентов минимален (1 - 0.999 = 0.001), и второй момент почти полностью зависит от прошлых данных. Это замедляет адаптацию к вашему датасету. Text encoder "застревает" в предобученном состоянии, а небольшие изменения накапливаются медленно и хаотично.
>Высокое beta2 усиливает эффект шума в градиентах, особенно при малом датасете или высоком LR. Это может привести к "разрушению" эмбеддингов, так как модель не успевает стабильно адаптироваться.
>Обновления весов становятся слишком "гладкими" и инерционными. Вместо тонкой настройки специфичных токенов модель начинает переписывать базовые знания CLIP, теряя способность интерпретировать сложные или редкие запросы.
>Почему beta2=0.999 хуже: Слишком долгая память и медленное обновление второго момента приводят к переобучению или "разрушению" предобученных знаний text encoder.
Кто ж знал что для TE лучше низкий beta2 и высокий beta1 (судя по всему), нигде об этом не написано, ток анон что писал про beta1 вскольз упомянул. То есть дефолтные значения оптимизаторов полностью в жопе и годятся только для полноценной тренировки на гигадатасетах или с дебильным занижением lr у te относительно юнета (что все и делают, а меня это вкорне не устраивало).
>>1121545 > что все и делают Ну не совсем, на совсем уж мелких датасетах я хз зачем тебе вообще энкодер впёрлось размораживать, тем более если тренировка идёт на что то одно, без каких то разделений в лоре
>>1122464 >Ну не совсем Я имею в виду, что на цивите, гхабе, реддитах если читать обсуждения и смотреть чужие конфиги там постоянно уже 3 года просто занижают te, что математически неверно для нейрокала так-то. Просто коя однажды перданул что тип "ну нирикамендую тренить те вообще, терпите, треньте только юнет, клип легко поломать", а многие не согласились и начали занижать те просто втупую.
>на совсем уж мелких датасетах я хз зачем тебе вообще энкодер впёрлось размораживать Потому что изначально мне в жопе сверлило что нужна приближенная симуляция полной тренировки с полноценным влиянием на все веса модели, но силами лор, а не полумера в виде тренинга юнета через вижн клипа с выкл те или триггер ворд класса датасета чтобы по токену вызывать неуправляемые приколы. То есть как тренируется фул чекпоинт - там нет никаких лоу рангов, альф хуяльф, разделения unet/te, просто выбирается эффективная скорость, шедулер, оптим и оно дрочит, потом из такого чекпоинта можно высчитать дифренс в виде лоры если сильно те не отпердолен и оно будет работать даже если обратно применять. Следовательно что? Теоретически то же самое по эффекту можно добиться залезая в трубу с другой стороны - изначально подготовить тренинг лоры под эффект постпроцесса тренировки чекпоинта.
Желаемого результата именно тренировки (запоминание, воспроизведение, стабильность) я достиг это достигается пачкой регуляризаций и мокрописек, очень долго описывать, овер 150 моделей выдрочил и главная проблема была только в разрушении te спустя несколько эпох, что оказалось фиксится бетами оптимайзера (несколько недель искал как супрессить влияние на TE, гнев отчаяние - потом спросил в итт треде, пришел чел и дал верное направление с шикарным видосом по оптимайзерам; не факт кстати что оно с стандартным пйплайном тренировки лоры будет также работать, я ток давно тыкал беты и не остался доволен и больше не тыкал поэтому) и согласно моим тестам теперь работает безупречно с гигантской точностью, влияя на модель полноценно как будто бы я фул чекпоинт тренил. Да и настраивается оно проще по итогу, соотношения не нужно подбирать вот это всё, размер датасета тоже значения не имеет по итогу. Справляется как с общими концептами, так и с объект субъектами, при этом настройки вообще не меняются по сути, то есть изначальная подготовка не меняется как если бы она не менялась при тренировке фул чекпоинта, думаю после еще некоторых тестов выкатить статейку со всем ресерчем, там есть че почитать и обсудить, например квадрат дименшена через rs_lora, которая давным давно внедрена в ликорис, но в инете большинство обсуждений вообще не касается это фичи, которая по факту супрессит альфу и позволяет выставлять гигадименшены и убирает еблю с нахождением соотношения нетворка с конволюшеными (мало того, если дименшен конв меньше дименшена нетворка с рслорой то ты просто наблюдаешь деградацию точности, а при равных значениях оно работает как часики).
>>1122921 >если дименшен конв меньше дименшена нетворка с рслорой то ты просто наблюдаешь деградацию точности Это кстати косвенное подтверждение того, что занижение конволюшенов в стандартных лорах исходя из того что конв слоев меньше в 4 раза чем основных модулей это костыль и архитектурно неверно. Ну конвы в принципе изначально в лоре то и не теребили никогда, это с ликорисом пришло, а там при стандартном тренинге при равных дименшенах конвы начинаются доминировать и ломают модель, что как-то вообще нелогично, потом выяснилось что проблема в самом значении дименшенов и чем ближе натуральное значение дименшена к полным парметрам тем влияние конволюшенов стабилизируется.
>>1122921 > Просто коя однажды перданул что тип "ну нирикамендую тренить те вообще, терпите, треньте только юнет, клип легко поломать" Это произошло не из за кохьи, а потому что ранвей и новелы перданули моделями, в которых они не тренили клип, грубо говоря на примере показали что базового было достаточно (нет, не было, но тренить мелкий клип не поломав всё, продолжительное время они видимо не могли) > То есть как тренируется фул чекпоинт - там нет никаких лоу рангов, альф хуяльф, разделения unet/te И именно поэтому там даже разделение TE лров у XL чекпоинтов видимо есть? > можно высчитать дифренс в виде лоры Эта хуйня ужасно работает, когда ты ужимаешь в ранги ниже 32, даже в нём уже пиздец виден может быть, оно типо заедет, только если пережарить к хуям будкой и извлечь в мелкий ранг, в котором потеряется столько информации, что сгладит прожарку. Лучше тренить сразу в низком ранге со всеми свистоперделками, да > думаю после еще некоторых тестов выкатить статейку со всем ресерчем, там есть че почитать и обсудить, например квадрат дименшена через rs_lora, которая давным давно внедрена в ликорис, но в инете большинство обсуждений вообще не касается это фичи, которая по факту супрессит альфу и позволяет выставлять гигадименшены и убирает еблю с нахождением соотношения нетворка с конволюшеными А когда то была такая ебля? Эта rs lora в кохье и у кохака ничего практически не делает, просто скейлит не от альфы а от её квадратного корня, хз зачем вообще она существует, когда можно тоже самое самому поставить
>>1124309 >Это произошло не из за кохьи Я про то что для энтузиастов скрипты принес коя, а один из ранних туторов кои прям содержит фразы уровня "не рекомендую тренировать клип". >И именно поэтому там даже разделение TE лров у XL чекпоинтов видимо есть? Есть =/= требуется. Вообще не про то речь. Я к тому что если нужен эффект обучения с нуля нужно не файнтюнить на низкой скорости предобученную часть, а делать жесткую связь между новыми знаниями и новыми текстовыми описаниями, чтоб без токенликинга. Сюда же синтетические тесты, где глобальный лр один на всё для тестирования эффективности. >А когда то была такая ебля? Да, постоянно. Шаг влево шаг вправо - рестарт тренировки. >Эта хуйня ужасно работает, когда ты ужимаешь в ранги ниже 32, даже в нём уже пиздец виден может быть, оно типо заедет, только если пережарить к хуям будкой и извлечь в мелкий ранг, в котором потеряется столько информации, что сгладит прожарку. Лучше тренить сразу в низком ранге со всеми свистоперделками, да Ну я не согласен с этими утверждениями особо, но ты не туда разговор повел. Я именно про концепцию отделения натренированной части полновесной модели в лору, она рабочая практически на любой модели, кроме условной пони где уничтожен клип. То есть мысль такая: если данные в целом в большей степени пакуются в низкий ранг из полновесной модели и восстанавливаются обратно практически полностью с тем же эффектом и незначительными потерями (очевидно потому что данные содержатся на более широком пространстве и ужимаются с сохранением части данных на всем пространстве), то обратное тоже верно - можно развертывать лору в модель не с узким ренжем по дельте магнитуды и дельте дирекшена (как делает стандартная лора: либо большая величина + большое направление, либо малая величина + малое направление), а с широким ренжем, получая эффект полноценной всенаправленной тренировки, а для этого надо большее число параметров и дора в качестве симуляции файнтюна. > Эта rs lora в кохье и у кохака ничего практически не делает, просто скейлит не от альфы а от её квадратного корня, хз зачем вообще она существует, когда можно тоже самое самому поставить Вопервых не от альфы, а корень нетворк дименшена, т.е. альфа делится на корень из дименшенов. Вовторых ну ты скорее всего не тестировал рс вообще, а я тестировал:
Cупер эффективно работает с большим дименшеном и позволяет тренировать большее число параметров не влияя на используемые ресурсы особо. Итого если при стандартных вычислениях у меня могла тренироваться лора в 64 дим макс без ООМ на карту, то теперь спокойно влезает 100 дим, из которого квадрат 10, а это ебический буст качества как я уже писал. Ниже 64 смысла юзать с рс нет, а буст от большего дименшена виден невооруженным взглядом если сравнивать каждое повышение, при этом на стандарт лоре наоборот высокий дименшен руинит тренировку (я так и не понял почему).
Плюс роль альфы в параметрах супрессируется вслед за дименшеном и гораздо проще становится выбрать громкость лоры в модели через альфу нужную, хоть 1 ставь - все равно будет эффективно обучаться от квадрата, а это на секундочку 1/10, то есть 0.1 коэффициент обновления. Хоть 20 по альфе ставь если есть юзкейс полного переписывая весов экстремального (что не достигается на стандартных лорах, т.к. фактически тебе надо указывать условно 32 дим к 64 альфа, что руинит тренировку сразу, т.к. альфа это супрессирующий коэффициент, а тут получается что параметрически у тебя 100 нетворкдим, а альфа 20 - что удовлетворяет базовой лора логике, но такой хуйни в большинстве случаев не требуется).
Плюс коэф обновления в стандартной лоре сорт оф геометрический, там типа сила применения не линейной получается - то есть 0.5 это на самом деле далеко не 0.5 а гораздо меньше, итого получается ты и так на мелком дименшене сидишь, так еще и это мелкое кол-во параметров обновляется недостаточно сильно, а с большим коэфом слишком сильно, а еще лернинг трогать опасно т.к. зависимость менее линейна и ренж безопасного лернинга сужается еще сильнее, баланс трудно подобрать короче.
В стандартных лорах с 32 по дименшену коэфф 0.1 это 32 к примерно 3, что уже медленно и неэффективно, а выставить 32 к 1 это равносильно вечной тренировке с влиянием 0.03, держим в уме что 0.03 эффективность это не натуральная величина.
Опять же повторюсь что рс позволяет выставить тот же дименшен/альфу на конв слоях, что более нативно для архитектуры (т.к. ранг это лоу ранк прикол, а полнопараметрическая модель работает с полными параметрами и просто если логически подумать то конволюшены это просто блок модулей отвечающий за текстурки и локал данные, уменьшать их относительно нет дим просто потому что их меньше во столько то раз нелогично, с какой стати вообще ранг у конволюшенов обязан быть меньше, если рангов не существует), что на стандартной лоре поломает всё, а тут эффект получается противоположным - емкость параметров выше в разы получается и эффективность конв возрастает, поэтому получается ебическая четкость, которую на стандартной лоре я не могу подобрать, т.к. без квадрата лора почему-то стабильно тренируется только исходя из соотношения того что количество основных слоев в 4 раза выше чем конв слоев. То есть минус дополнительная мозгоебка с конв слоями. Ну можно конечно выставить 2-4 раза меньше оносительно дименшена основного также с рс лорой, но эффективность конв трагически падает, растет нестабильность, четкость улетучивается, как будто емкости нехватает кароче.
Кароче данный параметр очень крутой на самом деле, убирает пару костылей, математически стабилизирует, приближая лору к поведению тренировки на полных параметрах без усиленного влияния ранга.
Бля, как сила лор работает? Тренирую лоры, на весе 1.0 немного уже пидорасить начинает, на 0.9 самый норм. Ну я взял и в конце тренировки начал веса на 0.9 умножать. Теперь поломка около 1.6. Какого хуя? Альфа у меня равна рангу, т.е. веса на 1 домножаются. Откуда такая разница? Разве сила лоры не просто множитель весов?
Кто то пробовал тренить dreambooth на noobai? У меня почему то первые же шаги сжигают модель, после тренировки только шум получается, до этого успешно получилось на epsilon-pred тренировать, но если те же параметры выставить + --v_parameterization --zero_terminal_snr, то не выходит, уменьшение lr или увеличение min snr gamma тоже не помогли
Сила лор при применении имеешь в виду? Ну там математика простая, допустим у тебя тренилась лора с альфой, которая дает 0.5 громкость лоры (альфу делить на дименшены), тогда фактическая громкость при весе применения 1 (полное) будет 0.5. Но если ты понижаешь само применение до 0.9, то это 0.9 умножить на 0.5 и итоговая громкость лоры при инференсе будет 0.45, то есть потенциальная сила уменьшена на 5%, а не на 10%, как если бы был коэффициент alpha/dim равный 1.
В твоем примере у тебя альфа равна рангу, значит обновления весов были полными, тогда зависимость линейная - 0.9 веса лоры будет равняться 10% убавлению громкости лоры, ты как бы говоришь модели бери 10% данных от изначальной модели по используемым весам. Так как веса изначальной модели чище и стабильнее изначально, а ты тренировал с полной перезаписью, то этот 10% вклад в твои кривые новые веса достаточен и они выправляют финальные векторы в латентспейсе и картинка стабилизируется.
Коэфф 1 это еще не перезапись весов, но очень сильное влияние на них по формуле W' = W + ΔW, где 0.9 применения веса гасит избыточность весов лоры.
Если ты хотел добиться эффекта перезаписи то коэффициент должен быть в разы больше, 50, 100, 1000, т.к. лора модуль не замещает собой веса, а добавляет к ним дельту, таким образом нужно сделать дельту настолько огромной чтобы веса изначальной модели не были значительными в этой формуле.
>Ну я взял и в конце тренировки начал веса на 0.9 умножать. Теперь поломка около 1.6. Какого хуя? Не понял что ты сделал. Получил alpha/dim=0.9?
>Альфа у меня равна рангу, т.е. веса на 1 домножаются. Откуда такая разница? Разве сила лоры не просто множитель весов? Сила лоры в инференсе это дополнительный ползунок громкости просто. Если у тебя на единичке плохо генерит то это переобучение => гиперпараметры соснуле (не заморачивайся, на консумерской технике с грубыми гиперпараметрами для быстрой тренировки все равно идеальных настроек и градиентов следуемых из них не получить).
По факту тренируя с коэфф 1 от alpha/dim ты сильно влияешь на исходные веса в каждый момент обучения (громкость, равная масштабу обновлений, которые ты вносишь во время тренировки; это значит, что лора вносит изменения, сопоставимые по величине с весами модели (W), и при каждом шаге обучения сильно их модифицирует, но не перезаписывает), а учитывая что твои параметры с вероятностью 99% не идеальны, то полный вес просто уничтожает натуральные связи модели (там много зависимостей от текст енкодера и величины градиентов, с которыми основная модель не понимает как корректно работать).
>>1126418 >У меня почему то первые же шаги сжигают модель, после тренировки только шум получается тут 2 варианта я вижу без бОльших данных 1. если это не просто чорный экран, то лосс неправильно интерпретируется моделью при тренировке или градиенты чем-то обнуляются/разрушаются, я бы отклчил zsnr и вообще любые влияния на шум и занизил скорость в 10 раз и прогнал мелкий датасет для теста, вместо оптимайзера с шедулером я бы взял шедулерфри любой чтобы исключить подсирание шедулера вообще, взял бы loss type l1 т.к. он штрафует вообще всё отваливающееся 2. возможно ты сидишь на какойто ветке кои с багом, где впред не работает, на чем сидишь? ЩАс вроде самая актуальная ветка это sd3 на кое
>до этого успешно получилось на epsilon-pred тренировать, но если те же параметры выставить ну впред от епс отличается, настройки от епс не подходят к настройкам впред
>увеличение min snr gamma мин снр просто снижает влияние ранних таймстепов из которых впред умеет доставать годные данные, если не нужен низкий таймстеп тогда его проще отрезать просто, а не занижать
>>1126524 Сейчас просто на main сижу, сделаю датасет на 1 концепт, отключю zero_terminal_snr, и сменю ветку на sd3, ну и ещё какой нибудь шедулерфри оптимизатор выберу, ранее не юзал таких, надеюсь сработает
>>1126604 Прорыв чего? Всратый вае прямиком из Дали на месте. В стили умеет так себе. То что Дали в 2025 научили контролнету - это пиздец достижение, да. Всё что я вижу из жпт - дженерик нейромусор, хуже Флюкса Про. Что-то на уровне гугловского инмагена.
>>1126604 Главный прорыв - возможность позиционирования некоторых объектов описанием. Для текста, схем и некоторых это йоба киллерфича, для композиций и прочего - хуйта. Следующим идет простота использования, чтобы что-то получить нужно быть не совсем дауном и просто это описать. В остальном - знания оче вялые, на выходе только одобренное корпорацией (не)добра, огромная предвзятость по многим вопросам, отсутствие инструментов нормального контроля, посредственное качество. Если ты нормис, для которого весь интернет в телефоне, это ебать прорыв, потому что спустя 2.5 года у тебя появилась возможность прикоснуться к генеративному ии картиночек. Если уже был в теме - подметишь для чего это можно применить и проблюешься с обилия недостатков.
>>1126604 >Насколько стейбл дифюжин хуже чем топовые модели от open ai? Сравнивать некорректно, с одной стороны мощность гигакорпорации, которая душит фильтрами и требованием грошей, с другой полная свобода, требующая скиллов и пердолинга с фиксами незначительных упущений. Это как сравнивать фотошпский нейродвижок за подписку и то же самое функционально сделанное через криту в связке с комфи и любой моделью. Я думаю очевидно, что второй вариант более предпочтителен. >Выглядит как прорыв Выглядит как дженерик так-то. Весь цвитай забит подобным что на ветке сдхл, что на флюхе, что на понях.
Оказывается проверить переобучение на стабильной неартефачащей модели можно просто базовым промтом уровня "cat photo, hypercube" или "a cat riding a bicycle in a forest", не относящимся к датасету. Даже гриды гридить нинужно, сразу видно и токенликинг и обосранные эпохи.
>>1126429 Да я уже сам разобрался, разница потому что при инференсе умножаются смерженные тензоры, а не отдельно lara_a и lora_b, как у меня. >>1127151 > weight decay он сделал Нет, я именно умножил веса перед сохранением, пикрил.
https://www.youtube.com/watch?v=A6dqIJsGwwQ Пришла такая мысль, что из-за слопохудожников типа видрила, которые не прорисовывают детали, в наших моделях, обученных в большинстве своем на РИСУНКАХ, возникают артефакты. Модель это копирует, но не понимает где ей можно так "халтурить", а где нельзя. Диффузионки слишком маленькие и тупые для таких обобщений. Поэтому какие-то годные результаты получаются только когда датасет состоит из плоского маняме или тем более поней на флеш анимации, либо ирл.
>>1126418 Попробуй без минснр, дебиаседа и прочего, остальные ещё параметры хз какие. Там был серьёзный баг с энкодерами с какого то из коммитов на дев ветке кстати, с лорами прямо видно было как всего ~90модулей заместо ~230 тренилось, аффектит ли это как то файнтюн только хз >>1126604 Тупее по энкодеру, красивее по визуальной составляющей, все модели нового поколения намного "умнее" XL, но даже в твоих примерах желтая блевотина, а у того же наи артефачная хуйня по итогу. Не то чтобы сам XL не страдал желтизной, та же пони, но тут прямо гигатреш попёр какой то, некоторые картинки литералли от 1.5 или пони не отличишь по визуалу >>1127760 Таких много, wslop, ciloranko, quasarcake. Последний кстати, добавленный в негатив на базовой 0.1 люстре ахуеть как бустил картинку, лол
>>1124505 > Я про то что для энтузиастов скрипты принес коя, а один из ранних туторов кои прям содержит фразы уровня "не рекомендую тренировать клип". Ну типо того, но ведь ноги растут не оттуда всё равно, кохья и остальные тогда ориентировались именно на основных типов, кто уже сделал чекпоинты. Кстати из единственной открытой инфы про хл, что я знаю, не рекомендовал тренить энкодер только создатель люстры в своём рекламном пейпере, но с ремаркой, что только с мелким датасетом, с большим якобы ок. Новелы тактично умолчали про часть с энкодером, написав ровным счётом нихуя > если данные в целом в большей степени пакуются в низкий ранг из полновесной модели и восстанавливаются обратно практически полностью с тем же эффектом и незначительными потерями Сомневаюсь, что полноценный файнтюн типо нуба можно будет так извлечь, запихнув в дору, потом развернуть назад, не потеряв мелкие детали или редкие концепты, а вообще в дору разве есть ли экстракт? > Вовторых ну ты скорее всего не тестировал рс вообще, а я тестировал: Ну как > Ниже 64 смысла юзать с рс нет Просто делать такие лоры на хл стало дурным тоном в один момент из за мемных размеров на выхлопе, при равной/лучшей производительности в меньших рангах, и я стал делать всё сразу в лоурангах, не больше 32, в основном вообще 16, так что впринципе можно сказать что не тестил, но интересно почему оно зааффектило врам как минимум > при этом на стандарт лоре наоборот высокий дименшен руинит тренировку Да всё просто, лр с повышением числа параметров надо снижать, и наоборот, по крайней мере по одному из старых убеждений, начавшемуся тоже вместе с эпохой лор в репе кохьи, когда дефолт 1е-6/5 у файнтюна превратился в 1е-4/3 с 128 рангом у 1.5 лор, можешь попробовать если не лень > Кароче данный параметр очень крутой на самом деле, убирает пару костылей, математически стабилизирует, приближая лору к поведению тренировки на полных параметрах без усиленного влияния ранга. А какая именно реализация, кохака или кохьи? И что в итоге на выходе, опять гигабайтный файл от 100 ранга получается?
Я наверное задам глупый вопрос, но для чего нужны регуляризационные изображения? Для лоры я так понял их лучше не использовать, а для dreambooth? Где то видел что их нужно генерировать с помощью модели на которой будет тренировка, по какому принципу нужно их генерировать? >>1126549 Попробовал разные оптимизаторы, получилось на адам шедулер фри натренировать, и на DAdaptation, во 2 варианте больше понравилось, но вероятно не оптимальные параметры для адама подобрал, попробовал полный датасет с 3 рисоваками, узнаются но в целом если на 1 тренировать то получается лучше, есть ли способ как то улучшить результат? Может больше эпох выставить? Или дальше сгорит? Добавил конфиг с параметрами https://litter.catbox.moe/4n6lqb.txt, изображений 359+821+2361 без учета повторений
>>1131150 > попробовал полный датасет с 3 рисоваками Без проблем тренятся хоть 10 стилей, если ты нормально отделил капшенами их. > изображений 359+821+2361 без учета повторений Слишком мнего и слишком мелкий батчсайз чтобы все эти зумерские schedule-free нормально работали, он тебе lr слишком низкий будет ставить. И если тренишь с батчсазом 1, то шагов надо 20к хотя бы на таком датасете. 2-3 эпохи только с нормальным батчсайзом будут работать. И я надеюсь ранг лоры у тебя выше 32. Так же ты наверное треншь только аттеншен, попробуй конволюшены и ff тоже тренить, если хочешь результат сильнее, для стабилизации тренировки можно первые слои не тренить.
>>1131150 >но для чего нужны регуляризационные изображения? >Для лоры я так понял их лучше не использовать, а для dreambooth? Для сопоставления предсказания с ними, типа гайденс для сети дополнительный. Дают плюсик при тренировке фул чекпоинта, для лоры смысла нет так как лора уже опирается на данные из основного чекпоинта. >Где то видел что их нужно генерировать с помощью модели на которой будет тренировка, по какому принципу нужно их генерировать? Вообще не обязательно, у рег картинок нет описания, они просто клипвижном рассматриваются и сопоставляются, то есть можно взять готовые регуляризационные архивы и забить хуй. Но можно и нагенерить, обычно просто общими классами типа woman. >Может больше эпох выставить? Количество эпох не влияет так что больше=лучше, хоть миллион можешь выставить, но с нормальными настройками свитспот можно хоть к пятой эпохе получить, а все остальное это выдрочка и усложнение модели вплоть до перетренировки. >есть ли способ как то улучшить результат? Да их тонны. Из очевидных это обрезка шумных таймстепов ниже 100-300, то есть ты инишл нойз оставляешь от модели основной, а работаешь только с читаемыми данными выше 300 таймстепа с 70% зашумленностью и ниже. Сюда же debiased_estimation_loss который еще сильнее будет форсить расшумленные таймстепы при обновлении весов. Можешь поиграться с типом ошибки, мне нравится как работает l1, l2 слишком сенсетивный. Можно форсить все дропауты (для кепшенов и самих модулей сети), практически это дает лучшее обобщение, а не заучивание паттернов к токенам. Можно выставить нестандартные беты для оптимайзера типа 0.99 по бете1 и 0.01 по бете2, таким образом у тебя будет максимальная память о прошлых градиентах, но максимальная реакция обновления => быстрое схождение. С лорами мокрописек больше, но ты как я понял дрибутишь целую модель.
>>1131664 >Слишком мнего и слишком мелкий батчсайз Я бы скозал что наоборот слишком мало, комплексные задачи требуют больших датасетов даже для лорок, что при малом количестве данных бустится репитишнами и письками для увеличения разнообразия. А батчсайз дело десятое, два конечно лучше чем один будет, но только из-за того что будет большая стабильность градиентов и меньшее время для эпохи, в основном бетами можно скорректировать как учитывать данные с датасета. >чтобы все эти зумерские schedule-free нормально работали, он тебе lr слишком низкий будет ставить. Так шедфри усредняет и интерполирует значения и таким образом достигается стабилизация и быстрая сходимость, сам лр не трогается и всегда одинаковых как задал, если не адаптивный оптим. Поэтому в шедфри можно сувать огромные лры и оно даже не ломается. Адаптацией лра в минимум (не встречал такого в своих прогонах кстати) будут заниматься ток шедфри оптимы которые и так адаптивные ну продижи и дадапт там, если им флур не задать нормально. >Так же ты наверное треншь только аттеншен, попробуй конволюшены и ff тоже тренить, если хочешь результат сильнее, для стабилизации тренировки можно первые слои не тренить. Он же фул модель тренит
>>1132864 > комплексные задачи Стиль рисоваки - это не комплексная задача. Это простейшая задача для датасета из 10 пиков, 50 если надо прям совсем точно скопировать. > фул модель тренит Даже если будку тренишь, не для всех параметров градиенты считаются по умолчанию. У кохи точно не все.
>>1127910 >Сомневаюсь, что полноценный файнтюн типо нуба можно будет так извлечь, запихнув в дору, потом развернуть назад, не потеряв мелкие детали или редкие концепты, Ну у нуба выдроченный клип с "редкими концептами" и связанные с ними данные, примерно как у пони. Вся загвоздка в несоответствии оригинального клипа сдхл с клипом нуба. Есть сложности, но в целом решаемо. На моделях основной ветки сдхл с большими датасетами все извлекается и возвращается обратно с генами уровня погрешности сида, это я точно пробовал еще в прошлом году, т.к. экстракт из моделек отлично свдшился с моими лорами. >а вообще в дору разве есть ли экстракт? Дора это про декомпоз который учитывает нестандартное поведение дельт, ты можешь сам порезать экстракт из модели на наиболее важные части/слои, потом снизить ранг полученной комбинации и получить дора эффект. Можно еще на моменте снижения ранга применить свд с основным экстрактом чтобы еще более точно симулировать. >Ну как Ну, желания возвращаться на стандартные лора настроечки нет желания. >но интересно почему оно зааффектило врам как минимум Потому что более оптимизированные вычисления и нормализация. Более компактное представление, меньше избыточность матриц оригинальной лоры где ранк умножается на A и B "прямо", избегает дополнительные вычисления нестабильных градиентов и накопление ошибок. >лр с повышением числа параметров надо снижать, и наоборот Это понятно, но дело в том что даже с низким лр большой дименшен на обычной лоре всирает тренировку. На глоре допустим это пофикшено и там наоборот чем выше дименшен тем более круто, но жрет врама она также дохера без рс. Я так понимаю это проблема масштабирования оригинального алго. >А какая именно реализация, кохака или кохьи? Кохака >И что в итоге на выходе, опять гигабайтный файл от 100 ранга получается? 762 мб в ранге 100. Но еще зависит от лагоритма, в локре факторизацией можно снизить не особо потеряв в обобщаемой способности.
>>1131664 тренировал dreambooth, не лору, все в промтах отделил, оказывается тот конфиг что скинул был для маленького датасета, на котором тестировал, вот корректный https://litter.catbox.moe/g78ztf.json, на полном добавил --gradient_checkpointing и батч сайз 8, на 3 эпохи вышло ~2500 шагов, тренировал и unet и текстовую модель, правда текстовую часть 0.5 lr поставил Пробовал 2 раза, 1 раз получилось нормально, но концепты почти не изучились, только стиль, 2 раз- добавил повторений на концепты, где то *7~15, некоторые концепты все ещё не изучились, но некоторые стали намного лучше >>1131664 Пробовал с шедулер фри на полном датасете с батчем 12, но там лосс вырос до 0.4, и сильно не снижался, как я понял там на первых шагах все сожгло, хотя я довольно низкий lr поставил, где то 0.000001, сейчас не найду наверное конфиг с тренировкой На DAdaptation loss доходит до 0.1 и до конца тренировки где то на нем и держался По стилю ещё далеко до чекпоинтов натренированных на датасете который состоит только из изображений для 1 рисоваки, вот даже на sd1.5 больше похоже выходит если чистый датасет юзать или через лору, но хотелось бы были все и что бы было лучше, и в 1 месте, очень вероятно что проблема в скил ишью и проблемы балансировки датасета, ну или вероятно это просто невозможно сделать из за обобщения и будет работать только в моделях побольше >>1132864 >обрезка шумных таймстепов ниже 100-300 Лучше пропускать начальные шаги? Это не скажется на концептах? Просто они и так далеко не идеальны, а ранние шаги как я понимаю нужны как раз для того что бы сформировать позу, или другие штуки которые составляют основу для будущей картинки >debiased_estimation_loss debiased_estimation_loss я так и не понял что это, и не стал включать >мне нравится как работает l1, l2 слишком сенсетивный loss l1 попробую вместо l2 в следующий раз, >Можно выставить нестандартные беты для оптимайзера типа 0.99 по бете1 и 0.01 по бете2 ставил betas=0.9,0.99
>>1133125 Выкинь будку и трень нормально лору. Либо трень саму модель, будка это кал. > концепты почти не изучились Больше шагов делай или бери нормальный оптимизатор в высоким lr. > только стиль Да и стили как-то слабо натренились у тебя. ogipote вообще не похож.
>>1133125 > хотелось бы были все и что бы было лучше, и в 1 месте Так ты и делай как делал одну лору, только всё кучей. Разбиваешь датасет на категории по стилю/концепту, промптишь триггер-вордом каждую категорию и всё в кучу в одну лору. Работает безотказно. И у тебя может насрано в капшенах и надо их пердолить, а не дрочить параметры.
>>1133167 Тренить саму модель, в смысле finetune использовать, я почти инфы не нашел на счет этого способа тренировки в отличии от dreambooth, и параметры тренировки у них вроде как одинаковые. Лоры я пробовал тренировать, правда для пони давно, гараздо лучше работают и для стиля и для концепта, оно и понятно на ней можно что то определенное натренировать не думаю о балансировке и используя изображения только для того что тренируешь, но как ранее написал хочется несколько вещей сразу иметь в 1 месте, и возможно даже лучше, но пока результат выходит печальный
>>1133125 >Лучше пропускать начальные шаги? Статистически в них данных мало, а подосрать в тренировку они могут. >Это не скажется на концептах? Нет >а ранние шаги как я понимаю нужны как раз для того что бы сформировать позу, или другие штуки которые составляют основу для будущей картинки Не, не так работает. На полном шуме полезных данных нет, это буквально ничто, на шуме от 50 до 100 там ну максимум общие формы можно разглядеть и то если получены данные о высоком контрасте с градиента. Тренировка с учетом низких таймстепов это скорее дампер от переобучения, сеть рандомно равномерно распределенно не понимает что происходит и корректирует вычисления чтобы доджить подобное в будущем, то есть будет пытаться не вносить никаких значимых изменений на раннем шуме. Ради интереса попробуй обратный эффект - ограничь обучение на шагах от 0 до 100, сеть ничему не обучится, но стабильно будет неуправляемо видеть всякое в них все лучше и лучше. Это как если бы ты учил модель исключительно на "белом шуме" — она просто не поймет, что делать, но будет выдавать тебе рандомный говняк. >debiased_estimation_loss я так и не понял что это, и не стал включать Это мощный усилитель таймстепов на которых содержатся полезные данные и понижение таймстепов где шум. Пикрел красный графек. >ставил betas=0.9,0.99 Ну это базовое значение для гигадатасетов корпораций с тысячными батчами и миллиардными датасетами, достаточное стабильная (но не прям супер стабильная, просто плавное затухание) память о прошлых градиентов (первое число) и низкая реакция инерции адаптации (второе число).
>>1133330 > На полном шуме полезных данных нет Полного шума не существует при тренировке, т.к. шум плюсуется к оригинальной пикче и он всё равно виден. Для полного уничтожение низкочастотных данных придумали noise offset - рандомить шум дополнительно по оси каналов. > Тренировка с учетом низких таймстепов это скорее дампер от переобучения Как минимум для стабильности очень помогает прогрев весов на низких шагах. Я пикрил делаю, постепенно увеличивая верхний порог по ходу тренировки. Убирает все внезапные поломки, отклонение генераций плавное идёт, можно lr поднимать до упора.
>>1133378 >Полного шума не существует при тренировке, т.к. шум плюсуется к оригинальной пикче и он всё равно виден. Модель обучается не на картинке с шумом, а на полученном градиенте с нее. Если конкретно не задано, то в 10% от всех шагов у тебя будет получен градиент с 90-100% зашумленной картинки, что нулевая и околонулевая эффективность. >придумали noise offset - рандомить шум дополнительно по оси каналов. Офсет просто скалярное значение, добавляемое ко всему шуму, а не рандомизация по каналам, используется для изменения начального шума, чтобы повлиять на генерацию, добавить разнообразия или улучшить детали (что спорно). Это не инструмент для уничтожения низкочастотных данных. Уничтожение низкочастотных данных вообще происходит естественным образом в процессе добавления шума на высоких таймстепах, и для этого не нужен дополнительный параметр. Если бы целью было полное уничтожение низкочастотных данных, то это уже достигается стандартным процессом диффузии, где шум добавляется постепенно, разрушая сначала мелкие детали (высокие частоты), а затем и крупные структуры (низкие частоты) на поздних стадиях. Этот параметр вообще появился как опция из вебуя, а коя адаптировал его для своих скриптов. Его задача практическая: улучшить генерацию, а не решать теоретическую проблему частотного спектра кароче.
>Как минимум для стабильности очень помогает прогрев весов на низких шагах. Троллейбус из хлеба как будто.
>>1133443 > Офсет просто скалярное значение Нет, это именно рандомизация каналов, генерится шум (1, 4, 1, 1), а не скаляр. Делает то что и должно делать - убирает остатки низкочастотных данных с оригинальной пикчи. Читай: https://www.crosslabs.org//blog/diffusion-with-offset-noise > коя Я не пользуюсь говнокодом кохи, реализацию оффсета брал его как автор написал. > Троллейбус из хлеба как будто. Работает лучше чем все эти пердольные попытки проскейлить loss, вместо того чтобы градиенты изначально ровнее получать.
>>1133125 > lr поставил, где то 0.000001 Это очень мало для schedule free. Но мне он очень не понравился, на 1е-3 модель ломается, если ставлю 3е-4 как на Адаме - схождение ультрамедленное. Твои 1е-6 вообще удивительно что хоть что-то натренить могут.
>>1133663 >Это очень мало для schedule free. Я от 0.00025-0.0005 гонял, все прекрасно. Можно выше, но изменения слишком резкие, дефолт скорость у лицокнижных вообще 0.0025. >Но мне он очень не понравился, на 1е-3 модель ломается, если ставлю 3е-4 как на Адаме - схождение ультрамедленное. Так что вероятно другие гиперпараметры настроены всрато у тебя.
>>1133721 Алсо если не лицокнижный продижи брать https://github.com/LoganBooker/prodigy-plus-schedule-free то там тоже все прекрасно, я на нем преимущественно сижу т.к. результаты достигаются еще быстрее чем на обычных шедфри оптимах притом что скорость обсчета шага дольше, d0 тоже указан как 0.00025
>>1133721 > другие гиперпараметры А причём они, если я меняю только оптимизатор, который и даёт снижение скорости обучения. Понятное дело можно напердолить до уровня Адама и получить кучу проблем, например лоры пожирнее сделать, но зачем. На Адаме я могу за 1000 шагов натренить, а с schedule free надо повышать до 2-3к. А сгладить градиенты всегда можно с EMA как деды делали 5 лет назад. >>1133738 > продижи Да, он получше. Но всё нивелируется тем что он сам по себе очень медленный, примерно в х1.6 шаг дольше делает. Это вообще никуда не годится. > результаты Возможно ещё у нас разные понимания результатов. Для меня результат - это возможность генерить копии пиков из датасета чисто по промпту. А дальше уже весом регулировать всё это. Я в основном реалистиком упарываюсь, там без этого никуда.
>>1133857 >А причём они, Потому что я понятия не имею что ты используешь и в какой конфигурации. В моей конфигурации и шедфри обычные и продиги обучают моментально относительно друг друга, я по привычке выставляю тренировку на ночь на 100 эпох, но с утра проверка раз за разом показывает что юзабельный результ достигается чуть ли не начиная со второй по пятую эпохи, а дальше уже накрутка излишняя, требующая снижения влияния TE в модели ибо повторяет датасет больше, чем обобщает, ну у меня и агрессивные настройки такто так что это нормально. >На Адаме я могу за 1000 шагов натренить, а с schedule free надо повышать до 2-3к. Ты пишешь как будто вычисления не зависят от твоих настроек а только от факта используемого оптима, что не так в реальности. То что у тебя схождение (если ты это подразумеваешь под натренить) требует 3к шагов это явно проеб по остальным параметрам. К тому же ты сам пишешь "на 1е-3 модель ломается, если ставлю 3е-4 как на Адаме - схождение ультрамедленное", что не нормальное состояние шедфри. > Но всё нивелируется тем что он сам по себе очень медленный, примерно в х1.6 шаг дольше делает. Это вообще никуда не годится. Да какая разница какая скорость просчета, если он эффективно достигает схождения. Вот у меня датасет 100 картинок и батч 2, юзабельная модель с продижи со второй эпохи начинается буквально, а это 20 минут тренировки вместе с ТЕ. Для сравнения адам со скоростью в 1.6 раз ниже достигает примерного эффекта двух эпох продиж к 4-5 эпохе, что около 30 минут. Теплое с мягким кароче сравниваешь, не на то внимание акцентируешь. >Для меня результат - это возможность генерить копии пиков из датасета чисто по промпту. А дальше уже весом регулировать всё это. Я в основном реалистиком упарываюсь, там без этого никуда. Так у меня тоже реалистики, в основном докрутка концептов исходной модели, субъекты и стилевой пиздинг, но я упарываюсь по обобщению, чтобы моделька не просто говно с датасета генерила и не требовала влиять на вес лоры при генерации. Но твои приколы тоже легко достигаются скоростью одинаковой на те и юнете и увеличенной громкостью через альфу.
>>1133954 В одинаковых условиях schedule free тренит медленнее, чем Адам, на остальное мне похуй. Он собственно это и должен делать, потому что демпингует автоматически тренировку на основе градиентов. > вычисления не зависят от твоих настроек а только от факта используемого оптима Градиенты не зависят, зато то насколько сильно веса обновятся на основе этих градиентов зависит только от оптимизатора и ничего другого. Об этом и речь, а не об результатах в вакууме. Я ведь для теста беру 10 пиков и смотрю визуально по типу пикрила насколько быстро к датасету оно приедет и куда скачет при тренировке. Перетренить 2000 шагов - это 15 минут, я на каждое изменение обычно делаю тесты на дженерик дасатетах. Высматривание каких-то обобщений - это субъективщина, не имеющая никакого отношения к оптимизатору, оптимизатор тебе ничего не обобщает, он просто вычисляет момент/вес с которым градиенты применить к весам. Исключение - только регуляризации типа weight decay или встроенного EMA. > датасет 100 картинок и батч 2, юзабельная модель с продижи со второй эпохи Звучит как будто у тебя за 100 шагов тренится всё. На продиджи warmup только шагов 300.
>>1133663 Я прекратил тренировку как только увидел loss, маловероятно что там вообще что то осталось >>1133738 В чем прикол шедулер фри продиджи? В нем же наоборот автоматически регулируется lr, и нужно просто constant шедулер ставить, хотел его попробовать но не разобрался как отделить lr текстовой части от unet
>>1134043 > Я прекратил тренировку как только увидел loss Мимо, но нет смысла никакого смотреть на лосс, если он не летит стабильно вверх всё время тренировки. Сток впред/флоу предикшены впринципе тебе страшные значения покажут в виде 0.25 на плоских датасетах смещённых в 2д с вайт беками и до 0.4 на детейлед хуйне, если всякие вмешательства в таймстепы начнёшь сувать, то минснр покажет с впредом такой же как на эпислоне, дебиасед уже не помню, но он такое себе конечно решение, если прямо надо пиздец как доебаться до таймстепов лучше юзать edm2, лосс с ним кстати всегда стабильно летит вниз > В нем же наоборот автоматически регулируется lr, и нужно просто constant шедулер ставить Если ты имеешь ввиду в целом про продиджи, то он на самом деле только повышать его умеет, никогда не снижая, чем поджигает лоры и пердаки тех, кто не заглядывал в тензорборд, поэтому его в основном юзают в косином всё равно, шедулер фри убирает косин > отел его попробовать но не разобрался как отделить lr текстовой части от unet https://github.com/LoganBooker/prodigy-plus-schedule-free?tab=readme-ov-file#training-multiple-networks вот это по идее split_groups_mean=False split_groups=True а лры как обычно в этой версии должны указываться через кохьевские арги
>>1134027 >В одинаковых условиях schedule free тренит медленнее, чем Адам Шедфри логика неприменима обратно к классическому адаму, как логика классик адама неприменима к шедфри. Если тренить на шедфри как положено - он быстрее. >на остальное мне похуй По-моему ты просто не разобрался, ну имхо. >зато то насколько сильно веса обновятся на основе этих градиентов зависит только от оптимизатора и ничего другого В вакууме да, но еще есть величина мазка в виде лра и коэффициент масштабирования, тонна мокрописек и само качество датасета. Нельзя просто взять оптимайзер новый, заменить им другой в готовой структуре и потом бугуртить что чет хуева работает говно кал, надо понять работу и подстроить конфигурацию под оптим. >Я ведь для теста беру 10 пиков и смотрю визуально по типу пикрила насколько быстро к датасету оно приедет и куда скачет при тренировке. Ты ведь в курсе что визуализация бекпропагейшена (на твоем пике) не показывает явное обучение/обобщение и отследить по генам эталон нереально, а оптимайзер может кругами ходить просто вводя в заблуждение на генах где ты как хуман можешь разглядеть "прогресс" которого на самом деле нет? Ты к датасету можешь за одну эпоху прийти вообще, ток у тебя обобщение наебнется просто. >Высматривание каких-то обобщений - это субъективщина Обобщение это просто отсутствие потери знаний о том, что не касается натренированной части. Ты можешь сделать быстро топ модель которая будет пердеть по кд датасетом даже без токенов, но базовый токен уровня pink background просто перестанет работать, это не субъективщина. >оптимизатор тебе ничего не обобщает А я этого не утверждал, я про сохранение функции обобщения самой нейросетью. Какой прок от того что я обучаю сеть генерировать датасет, если у нее будет низкая диффузионная лабильность? Не, юзкейс твой имеет место быть - генерировать датасет хуйню по токену - но как бы базово нейросети нужно уметь оставлять умения, а не просто ее отуплять заучиванием, а то прикинь стабилити бы обучило базу на конкретный класс и потом ебись как хочешь, это не базовая модель была бы а какаято хуйня. >Звучит как будто у тебя за 100 шагов тренится всё. На продиджи warmup только шагов 300. Вармап в шедфри продижи упразднен давно (с того момента как бесконечное увеличение лра во времени пофиксили), а самой шедфри логике он не требуется т.к. нормализация и аверейджинг сразу все делают как надо и не надрываются от первичных градиентов.
>>1134043 >Я прекратил тренировку как только увидел loss Ну такто зря, я в прошлом треде писал псто >>1110934 → и как пример тебе мои два лосс графика, которые с виду проебанный лосс, а в реальности там просто хорошие стабильные модели >В чем прикол шедулер фри продиджи? В шедулефри логике. Вместо расписания через какойнибудь косинус/константу/линейный графек они используют комбинацию из интерполяции между текущими весами и "ведущей" точкой, где вычисляется градиент + усреднения итераций, чтобы стабилизировать процесс и улучшить сходимость. Это позволяет оптимизатору автоматически адаптироваться к обучению без необходимости указывать, когда и как уменьшать скорость обучения.
>В нем же наоборот автоматически регулируется lr В ориг продижи лр то регулирется автоматом, а расписание все равно требуется.
>и нужно просто constant шедулер ставить, Ну да, это его стандартное состояние, но зависит от типа данных, константа не везде прокатывает, шедфри покрывает в принципе любую задачу на которой лицокнига тестила - от линейной регрессии до трансформеров, убирает в общем боль выбора расписания. Но шедфри будет еще лучше, т.к. усиливает фичу адаптивности продигов (ну то есть шедфри сам по себе сорт оф адаптивная технология, адаптивность добавляешь к адаптивности) и ускоряет сходимость через логику шедфри. Синергия кароче получается. Плюс он меньше жрет ресурсов, что тоже немаловажно. >хотел его попробовать но не разобрался как отделить lr текстовой части от unet А ты и не сможешь отделить в оригинальном продижи юнет от ТЕ, там эту фичу еще не ввели и не факт что введут. Зато эта фича имеется в шедфри.
>>1134583 >Ну и естественно у продиджи они будут 1.0 на юнет и 0.33 на энкодер или типо того Небольшая ремарка: эти соотношения если ты беты базовые не трогаешь (которые по дефолту (0.9, 0.99) как везде), а если реакцию беты2 в 0.01 укатать допустим, то можно и юнет и те на одинаковых скоростях (или если включено гармоническое среднее) тренить, оно перестает ужаривать т.к. реакция моментальная на изменения.
Аноны, есть ли какой-то способ понять каких персонажей поддерживает чекпоинт, кроме метода тыка? Может есть какие-нибудь расширения, чтобы посмотреть теги заложенные в него?
>>1134666 >Может есть какие-нибудь расширения, чтобы посмотреть теги заложенные в него? Если в метадату не запихали инфу, то никак из латент спейса не вытащить никаких растокенизированных нечисловых данных.
>>1134606 > как положено Как положено - это всё в дефолтных значениях, кроме lr. > базовый токен уровня pink background просто перестанет работать Так для этого визуальная валидация и нужна, чтоб не по маняграфикам смотреть, а видеть что в реальности происходит с тегами. Непонятно откуда ты взял что умение генерить по промпту пики из датасета как-то ломает остальное.
>>1134573 ты про этот edm2 пишешь? https://github.com/NVlabs/edm2 тоже какая то оптимизация рассчитанная по timesteps, вместо debiased_estimation_loss? >>1134634 Если заведу продиджи шедулер фри попробую беты 0.9, 0.01 с l1 loss, если не получится попробую дальше с DAdaptation, пока без разделения lr для энкодера и unet >>1133167 Я так и не понял, лучше юзать лору которая full-finetune ? Или ты имел ввиду finetune который fine_tune.py? С капшенами всё норм, я все ручками проверил
>>1134696 >Как положено - это всё в дефолтных значениях, кроме lr. Это если ты сэм альтман и у тебя скачан весь интернет в качестве датасета и батчи размером с юпитер. Дефолт значения не эталон. >Непонятно откуда ты взял что умение генерить по промпту пики из датасета как-то ломает остальное. Это проверяется за минуту: берешь какие-либо базовые токены не относящиеся к датасету лоры и гонишь их с применением лоры. Рано или поздно наступает момент эпохи когда модель теряет обобщающие знания, смешивает несмешиваемое и генерирует в конечном итоге датасет вместо этих базовых знаний. Самый простой пример: a cat riding a bicycle in a forest, сеть обучалась на уточненный концепт. Слева какая-то эпоха до 10, справа 11, сеть разучилась делать котов, и данный эффект не ревертится, дальше будет пропадать лес, велосипед, будут рисоваться франкенштейны уровня фурри баб (т.к. тренировка на людей) где кошачьи лапы вместо конечностей и ебало кошки, и в итоге придет к тому что будет генерировать по любому запросу не относящемуся к датасету все лукс лайк датасет.
>>1134696 >Непонятно откуда ты взял что умение генерить по промпту пики из датасета как-то ломает остальное. А да, небольшое уточнение, это >>1134731 не касается того когда ты на триггер ворд/класс тренишь на заучивание паттернов, я именно про нормальное описание датасета с полномасштабным обучением ТЕ для форс обобщения. С триггером описанное тоже случается но кратно реже.
>>1134731 >Самый простой пример: a cat riding a bicycle in a forest А вообще я про pink background не просто так сначала сказал, указание любого конкретного фона раньше всего ломается обычно, т.к. это знание не высокого порядка в луковичном юнете. Outdoor туда же.
>>1134731 Это у тебя как раз что-то сломано. Я всегда делаю валидацию на тегах, которых нет в датасете. Поломки фонов - это вообще что-то на грани фантастики.
>>1134840 А зачем добровольно ломать теги в ТЕ? Ты любишь унижения? На ванильном ТЕ даже на рандомные символы без проблем концепты тренятся. И я треню ТЕ, но максимально осторожно с демпингом, чтоб как у тебя теги не пропадали. А сломать что-то в унете - это надо знатно проебаться с кривым датасетом чтоб даже специально сделать так.
>>1134851 >А зачем добровольно ломать теги в ТЕ? Ты любишь унижения? Я вот думаю стоит ли развернуто отвечать на данный вопрос пчеловеку, который использует нейрокал как генератор референсов или не стоит >И я треню ТЕ, но максимально осторожно с демпингом Да я уже понял, что ты пытаешься выдрочить юнет преимущественно, еще альфу поди занижаешь экстремально чтобы веса АСТАРОЖНА обновлялись и поэтому выше по нити тысячами шагов слоу бейкингом занимаешься. >чтоб как у тебя теги не пропадали. Ну мы ж за тренировку трем, сломанное обобщение это маркер что надо потюнить настроечки и всё придет в норму.
>>1134872 Чел, ты ведь понимаешь что можно тренировать только ТЕ и оно даже будет выдаватькакой-то результат. Но ТЕ нужен для энкодинга текста, а для генерации UNET используется. Ты задвигаешь очень странные вещи, предлагая делать даже то что Стабилити не делали, литералли никто не тренит ТЕ для изменения генераций. Во всех SD ванильный клип, во всех DiT ванильный T5. Единственный смысл тюнить ТЕ - это когда капшены слишком отличаются от ванилы и надо под свой формат подогнать энкодер, например как в аниме приходилось под стиль бур тюнить его. А потом ты рассказываешь как у тебя что-то ломается там где оно просто не может сломаться, лол. > альфу поди занижаешь экстремально Всегда треню с альфой как ранг.
>>1134888 >Но ТЕ нужен для энкодинга текста, а для генерации UNET используется. Да ежу понятно, но паттерны связываются с токенами. Мне важно тренировать более менее нативно, а не с допущениями тип и так сойдет если че сидом вырулим или там вес покрутим туда сюда, полагаясь не дофолт. >Ты задвигаешь очень странные вещи, предлагая делать даже то что Стабилити не делали Ну если так рассуждать то тебе дорога в train unet only, сразу хуй 30 см вырастет и лидером митол группы станешь. >литералли никто не тренит ТЕ для изменения генераций. Там это, пони, нуб, люстра, бигасп и сотни лор к ним (а иногда еще и фрагментарный файнтюнинг) с отпердоленным по самые гланды те. >Во всех SD ванильный клип, во всех DiT ванильный T5. Потому что это базовые модели преимущественно, унификация. Это не значит что ты обязан не тюнить те под свои особые задачи. >Единственный смысл тюнить ТЕ - это когда капшены слишком отличаются от ванилы и надо под свой формат подогнать энкодер, например как в аниме приходилось под стиль бур тюнить его. Забей, далеко не единственное. >А потом ты рассказываешь как у тебя что-то ломается там где оно просто не может сломаться, лол. Легко говорить про "просто не может сломаться", когда сам тренишь дефолт для референсов. >Всегда треню с альфой как ранг. Ну вот, а есть те кто тренит x8 по альфе без ТЕ типа этого пчелика https://civitai.com/models/688932?modelVersionId=771052 , и что сделаешь? Наверно возмутишься ведь нужно по гайдлайну ивана залупина из 2022 не выше 1:1 настроечки, м? Незачем быть таким ультимативным и фанатичным, если что-то работает и выполняет задачи не так как ты привык.
А вообще взял бы да с адамом просто лору на дефолте для начала натренил, чем ударяться в эксперименты с бетами, едмом или файнтюном, всё это посложнее будет в исполнении, и надо уже от чего то отталкиваться, хотя бы в сравнениях
Вашу нить всю еще не прочел, очень уж забористая и странная. Но бля >>1134969 > базовый токен уровня pink background > с токенами > токены За такое использование этого термина, что постоянно мелькает, хочется взять и уебать. Используй слова: теги, фразы, капшны, сдвиг латентного пространства энкодера, что угодно. Но не обозначай словосочетание токеном, это совсем разные вещи.
А энкодер тренить нужно, если добавляется что-то новое, а не просто подчеркивается уже известное или применяется какая-то общая стилизация.
>>1135074 Сорян что тоже влезаю, но ты похоже знаешь. Как прикинуть, сколько CLIP токенов в тексте? Гуглил, нашел только ноду-счетчик для Комфи, но у меня нет Комфи, генерю в инете.
>>1134969 > пони, нуб, люстра Там и батчсайз был нормальный. И как я уже писал - это делали из-за сильно специфических капшенов. Зачем тебе при тренировке на мелком датасете тренить ТЕ, когда он уже знает как энкодить твой текст - загадка. > с отпердоленным по самые гланды те Да, знаем. Весь порнушный реалистик с натрененым клипом как раз как ты и описываешь поломанный, настолько что порой тянку одетую невозможно сгенерить. Бигасп как раз такой. Ничего кроме таблеток авторам такого не могу посоветовать. Собственно это и есть путь к генерациям только того что было в датасете. > типа этого пчелика Так там ранг 4. С ним можно любое извращение делать, даже нужно, а иначе трудно трениться будет. Тем более на флюксе. Если слои резать как в b-lora, то можно и не такое вытворять, т.к. там даже усравшись ничего не сможешь сломать. Ты опять пытаешься передёргивать, но выглядит это глупо.
>>1135090 Экспрессом оценить - анон уже скинул самый простой вариант. Но учитывай что он не покажет как идет разбиение по чанкам, за этим следить самому. Если собираешься в каком-то софте юзать - ticktoken легковесный и быстрый.
Пользуясь случаем и сам спрошу, в комфи сд3 идет стакинг чанков клипа для длинных промтов, или как в популярных примерах кода просто все срезается после лимита и дальше только т5 работает?
>>1135103 > Весь порнушный реалистик с натрененым клипом Там проблема не в тренировке клипа а в уровне тренировки в целом. Вместо того, чтобы научить сопоставлять промт - генерацию, наоборот связи нарушаются из-за натягивания порнухи на глобус. Такое можно получить что с тренировкой те, что без нее, разве что без его тренировки попытка обучить незнакомому все поломает в разы сильнее.
>>1135074 >За такое использование этого термина, что постоянно мелькает, хочется взять и уебать. Используй слова: теги, фразы, капшны, сдвиг латентного пространства энкодера, что угодно. Но не обозначай словосочетание токеном, это совсем разные вещи. Буду называть ВХОДНЫЕ ТЕКСТОВЫЕ ЕДИНИЦЫ токенами, потому что 1. Входные текстовые единицы - токены, лексемы, теги, фразы 2. Выходные представления энкодера - эмбединги, векторы, латентные представления, сдвиги в латентном пространстве
>А энкодер тренить нужно, если добавляется что-то новое, а не просто подчеркивается уже известное или применяется какая-то общая стилизация. Заебали своими догмами, ну честно.
>>1135090 > Как прикинуть, сколько CLIP токенов в тексте? >Комфи Есть экстеншенов несколько на подсчет, я точно названия не помню но легко гуглятся точно
>>1135103 >Там и батчсайз был нормальный. Так у нас и параметрически меньший разлет данных. >И как я уже писал - это делали из-за сильно специфических капшенов. Зачем тебе при тренировке на мелком датасете тренить ТЕ, когда он уже знает как энкодить твой текст - загадка. А откуда ты знаешь может ли енкодить дефолт мой текст? Да и выходной результат с неспецифичными описаниями тоже лучше получается. >Весь порнушный реалистик с натрененым клипом как раз как ты и описываешь поломанный, настолько что порой тянку одетую невозможно сгенерить >порнушный >одетую Смишно-смишно. Может ты еще в онемекале генерируешь текст? >Весь порнушный реалистик с натрененым клипом как раз как ты и описываешь поломанный, настолько что порой тянку одетую невозможно сгенерить >Бигасп как раз такой. Ничего кроме таблеток авторам такого не могу посоветовать. Собственно это и есть путь к генерациям только того что было в датасете. Ну тут явная гиперболизация ради раскручивания срача. >Так там ранг 4. Там ранг 2. >С ним можно любое извращение делать, даже нужно, а иначе трудно трениться будет. Тем более на флюксе. >Если слои резать как в b-lora, то можно и не такое вытворять, т.к. там даже усравшись ничего не сможешь сломать. >Ты опять пытаешься передёргивать, но выглядит это глупо. То есть тут тебе уже всё ок, хотя и то и другое вообще далеко от т.н. "стандартов" иванов "1:3 TE:UNET 0.5-1:1 a:d <32 nigger word 0.9-0.99 adam8bit 1e-4 amen" залупиных. Ну, и смысл всего диалога тогда, или просто нехуй делать?
>>1135203 Не кривляйся, учитывая важность токенизации, это всеравно что теги называть лорами. Просто говори по-человечески и вопросов не будет. > догмами Хуегмами, это очевидная база. Без устойчивой реакции и соответствующего изменения состояний, которые идут в кондишны, нормального обучения невозможно. В некоторых кейсах хватит стандартного клипа, по скольку на самом деле он знает оче много. В других же будет или ноль эффекта, или полный разъеб, потому знания преимущественно общие без конкретики и в 224 разрешении многое вообще невозможно полноценно воспринять. Сюда еще наложатся нюансы оче узкой и мелкой тренировки в попытке добавить что-то.
>>1135241 > Не кривляйся, учитывая важность токенизации, это всеравно что теги называть лорами. Просто говори по-человечески и вопросов не будет. Буду писать как считаю нужным. Смотри: токены, токены, токены. Терпи.
> Хуегмами, это очевидная база Крутяк, братан, держи в курсе, очень интересно твое базированное мнение по данному вопросу, не могу представить как можно жить без настолько очевидной базы. Базированный базовичок базанул базово, да еще и очевидно. Респект таким как ты в этом итт коммьюнити, низкий поклон чилловому парню на базе.
>>1135049 Что то сложно с edm2, в нем нужно указать все параметры оптимизатора который выбрал? с debiased_estimation_loss полегче, просто галочку поставить, но я пробовал с ним тренировать, loss почему то постоянно рос, до 6 дошел, график не сохранился потому что электричество моргнуло и не завершил тренировку, но лора по итогу нормально работает, не сжигает ничего, так и должно быть с лосом? Тренировал с --scale_v_pred_loss_like_noise_pred, так как в гайде это написано. Такая проблема и с шедулер фри адамом и с адафактором, так что проблема не с оптимизатором
>>1136780 > в нем нужно указать все параметры оптимизатора который выбрал? Да, ведь я уже расписал, что это мелкий параллельно тренеруемый нетворк, можешь в логах, если настроил глянуть, как он делает пикрил хуйню > так и должно быть с лосом? Вот примерно так вообще со всеми датасетами, белая кривая >>1036186 → > Тренировал с --scale_v_pred_loss_like_noise_pred Не надо, это вроде онли для дебиаседа актуально и вообще костыль был раньше
>>1135203 > Заебали своими догмами, ну честно. А в чём он кстати конкретно не прав? Его же реально есть смысл тренить только для новых словосочетаний, либо, редкий случай, если ты хочешь немного натрененных параметров другого типа в получившемся нетворке, что усиливает иногда даже стили
>>1136954 >Его же реально есть смысл тренить только для новых словосочетаний, либо, редкий случай, если ты хочешь немного натрененных параметров другого типа в получившемся нетворке, что усиливает иногда даже стили Нейрокал ищет и запоминает паттерны, согласуя их с текстовым енкодером, не важно знает ли он о концепте заранее или нет - в обоих случаях такая конструкция эффективнее тренирует. Без те клипвижн смотрит на картинку опираясь на кепшен и никак не трогает структуру дефолтного те, единственное что буде задействовано это кроссатеншен в части класса датасета, но это очень слабое влияние. Если у тебя проблемы с пыняманием как тренить те, то ты всегда можешь снизить влияние те при генах, т.к. на него альфа никак не влияет - просто тренишь с такой же скоростью как юнет и потом процентик подбираешь, при желании можно будет перетренить согласно новому проценту влияния, это линейная зависимость.
>>1137233 >то ты всегда можешь снизить влияние те при генах В том числе отключив влияние те полностью, получив более точный результат тренировки юнета, т.к. модули будут отпердолены согласно твоим кепшенам и настройкам к ним, а не согласно дефолту.
>>1137233 Ты похоже совсем тупой, если пытаешься тренить ТЕ на визуальном таргете. ТЕ должен трениться на тексте, UNET на визуале. Так же как в самой тренировке клипа визуальный энкодер тренят на визуале, а ТЕ на тексте. Поэтому ТЕ так сильно и забывает теги у тебя. Поэтому при претрейне любой диффузии никто никогда его не тренит. > снизить влияние те при генах Пошли ахуительные истории. Наличие ТЕ в графе влияет на распространение градиентов в UNET тоже. Даже если ты не обновляешь веса ТЕ. Это не работает так что ты натренил его и потом выкинул, думая что в результате получил как будто его не было при тренировке.
>>1136936 Нашел причину, full bf16 почему то показывает постоянный рост loss, на первых же шагах больше 1, и далее только растет, даже если результат получается нормальный, не уверен почему так происходит, попробую edm2, конфиг нашел который на гитхабе валялся, хочу сначала на каком то обычном оптимизаторе попробовать типа адама, а потом уже на каких нибудь продиджи запущу
>>1137233 > Нейрокал ищет и запоминает паттерны, согласуя их с текстовым енкодером В целом верно, юнет прослеживает закономерности между выдернутыми скрытыми состояниями текстового энкодера и картинкой. > не важно знает ли он о концепте заранее или нет А вот это бредятина. Если текстовый энкодер не имеет хорошего понимания того, что указано в ромте, то эту часть он проигнорирует или воспримет некорректно, не дав соответствующее явное изменение в кондишн. Юнету будет неоткуда взять условие, и он или начнет фалломорфироваться, подстраивая базовое поведение под то что в датасете, не зависимо от кондишнов, или просто ничему нормально не научится. > Без те клипвижн смотрит на картинку Какой клипвижн, он никак не участвует в работе sd и в тренировке. Там даже проекционный слой текстового энкодера не нужен и его можно смело занулить или ампутировать. > Если у тебя проблемы с пыняманием С этим явные проблемы у тебя. Неуместный спам терминами, отсутствие базовых знаний, а из опыта - 2.5 кривых лоры на еот, зато по "новым технологиям", которые дипсик посоветовал. >>1137321 > ТЕ должен трениться на тексте, UNET на визуале Не совсем удачное описание, но в целом так. При тренировке те юнет по сути заменяет визуальный энкодер клипа. Также, никто не мешает сначала натренить отдельно клип на нужном датасете пар текст-изображение, потом выдернуть его и использовать с юнетом, тренируя только последний. Но здесь есть ряд своих проблем: во-первых, визуальный энкодер клипа ужасно слепошарый из-за разрешения, во-вторых, он сам очень легко ломается и вертеть мелкие датасеты как с диффузией целиком не выйдет, в третьих - при наличии длинных капшнов полезет проблема дробления промта на чанки. Можно делать аугментацию и брать рандомный - но это снизит стабильность тренировки, можно усреднять стейты перед проекцией - прокатывает 50-50, можно усреднять эмбеддинги - и получить залупу. > Поэтому ТЕ так сильно и забывает теги у тебя. Он забывает у него потому что тренит какую-то ерунду с неоптимальными параметрами. > Наличие ТЕ в графе влияет на распространение градиентов в UNET тоже. Даже если ты не обновляешь веса ТЕ. Именно, и эффект "забывания" легко получить даже не трогая те.
Хз есть ли смысл с этим шизом что-то обсуждать, он уже сам понимает что слился и начинает сочинять что-то далеко за гранью своего понимания, пытаясь тихонько слиться.
>>1137364 > При тренировке те юнет по сути заменяет визуальный энкодер клипа. Не бредь. В клипе loss - это расстояние между парами правильных и неправильных пар эибедингов, в нём градиенты не идут из визуального энкодера, ТЕ клипа ничего не знает об визуальной части. А сам визуальный энкодер - это уже претрен ViT. В случае с SD у тебя градиенты идут из UNET, т.е. ты тренишь ТЕ на визуале, чего в принципе не должно быть. Или ты думал что в клипе текст энкодится ТЕ, а потом эмбединг пропускается через визуальный энкодер как в UNET, лол?
>>1137349 > full bf16 почему то показывает постоянный рост loss Не надо, ты пытаешься засейвить память, но получишь ворох проблем от градиентов в низкой точности, не зря ведь существуют оптимайзеры для сглаживания проблем https://github.com/lodestone-rock/torchastic по типу такого обычного адама, но для бф16
>>1137364 >Если текстовый энкодер не имеет хорошего понимания того, что указано в ромте, то эту часть он проигнорирует или воспримет некорректно, не дав соответствующее явное изменение в кондишн. Юнету будет неоткуда взять условие, и он или начнет фалломорфироваться, подстраивая базовое поведение под то что в датасете, не зависимо от кондишнов, или просто ничему нормально не научится. Поехали: 1. Юнет в сд не просто слепо следует кондишнам от текстового энкодера. Он обучается на парах "текст-изображение" и может догадываться о связях между латентными представлениями и визуальными данными, даже если кондишн от текстового энкодера не идеален, следовательно юнет не зависит полностью от кондишнов и может частично компенсировать их недостатки, особенно если lr для юнет выше, а датасет репрезентативен, а ты не еблан который боится тренить те потому что иван залупин так скозал. 2. Даже если текстовый энкодер игнорирует часть промпта или выдает шумный кондишн, это не приводит к фалломорфированию или полной потере обучения. Юнет может интерпретировать шумный сигнал как обобщенное направление в латентном пространстве и все равно учиться на данных, следовательно некорректный кондишн не обнуляет обучение, а делает его менее точным. Юнет может подстроиться под базовое поведение датасета. 3. Переобучение юнет на датасет без сильной зависимости от кондишнов может быть плюсом, если задача стиль или обобщение, а не точная интерпретация текста. 4. Лора добавляет низкоранговые обновления к весам юнет и текстового энкодера, что позволяет им совместно адаптироваться к данным. Даже если текстовый энкодер выдает слабый кондишн, лора дотягивает генерацию к правильному результату, особенно при сбалансированном lr. 5. В сд есть механизм обработки безусловной генерации, где кондишн заменяется нулевым вектором. Юнет может учиться даже в таких условиях, опираясь только на данные. То есть юнет не "ничему не научится" а просто переключится на обобщение датасета. >Какой клипвижн, он никак не участвует в работе sd и в тренировке. Ладно, моя ошибка, неверно подобрал описательную часть к процессу определения паттернов. По дефолту у тебя есть класс датасета с помощью которого сеть "видит" картинку + вае. Без текстового энкодера суть дасета определяется либо через классы/латенты, либо через узкую специализацию датасета. Это похоже на то как работает клипвижн (клипвижн и юнетбез текстового энкодера понимают содержимое в том смысле, что ассоциируют входные сигналы с визуальными паттернами, выученными из данных и оба опираются на предобучение и латентное пространство), но клипвижном не является.
>Там даже проекционный слой текстового энкодера не нужен и его можно смело занулить или ампутировать. А если ты удалишь проекционный слой который обеспечивает совместимость между текстовым энкодером и юнет это просто нарушит работу модели, сломает архитектуру и сделает модель нефункциональной.
>Неуместный спам терминами, отсутствие базовых знаний, а из опыта - 2.5 кривых лоры на еот, зато по "новым технологиям", которые дипсик посоветовал. У тебя так пичот с того что я тренирую тонны качественных моделей с полновесным те, что ты выдумал соломенное чучело и побеждаешь его, прелестно. Контролируй свой батхурт.
>Он забывает у него потому что тренит какую-то ерунду с неоптимальными параметрами. Нет, это не так. Обиснять не буду, я и так много времени потратил на бессмысленный срач на дваче с фанатиком, прекрасно понимаю что у тебя синдром утенка и ты любое схождение с рельс "идиальных настроек яскозяль нильзя уииии хрюююю" воспринимаешь как личную угрозу почему-то. Зачилься, другалек, это не я тебе навязываю тренировку с те, а ты мне пытаешься доказать что УИИИИ НЕЛЬЗЯ ТРЕНИРОВАТЬ ТАК ХРЮЮЮ ЮНЕТА ХВАТИТ ВСЕМ, о чем тебя никто не просил. Ферштейн?
>Хз есть ли смысл с этим шизом что-то обсуждать, он уже сам понимает что слился и начинает сочинять что-то далеко за гранью своего понимания, пытаясь тихонько слиться. Ну все-все, не реви малютка, юнета хватит всем и каждому, те тренируют ток лохи, всё так всё так...
Срач уровня рок против репа. Вы ебанутые? Хочешь трень без те, хочешь с те, хочешь обмазаться классикой - мажься, хочешь блидинг едж оф текнолоджи и нестандарт - пожалуйста. Главное ведь результат, норм не существует. Нахуя вы сретесь чье ведерко лучше куличики из говна делает? Предлагаю вам всем завалить ебальники и не корректировать чужой процесс дрочки пениса согласно своим вкусовым предпочтениям. Или хотя бы прикладывать свой профиль на цивите с моделями, а то на словах все львы толстые, а на деле очередное аниме по триггеру хуярите.
>>1137424 Ну и нахер ты это высрал? В случае тренировки клипа осуществляется сравнение эмбеддингов и с этой разницы идет обратный проход. В случае тренировки клипа в составе сд, обратный проход осуществляется сначала по юнету, а потом по используемым слоям те. В обоих случаях т.е. подстраивается под изображение опираясь на вторую часть модели, или визуальный энкодер, или юнет. О чем и была речь, можно научить т.е. новому как в составе оригинальной модели, так и в диффузии, а потом пересаживать туда-обратно. Разумеется из-за отличий из коробки оно может хорошо не работать, но короткое дообучение с частичной заморозкой это быстро исправит. > ты тренишь ТЕ на визуале Не тренишь ты его на визуале ни там ни там. В одном случае у тебя оценивается ошибка перекрестной энтропей разницы позиций в латентном пространстве, и начинается ее распространение, в другом у тебя сразу же приходит ошибка скрытых состояний последнего (если не пропущено) слоя перед проекцией. Те же яйца, только с нюансами. > текст энкодится ТЕ Именно > а потом эмбединг пропускается через визуальный энкодер как в UNET, лол? А это уже ты высрал. Хотя тут как посмотреть, если визуальный энкодер не заморожен то через него как раз обратным проходом полетит именно сравнение с ним. >>1137476 > Он обучается на парах "текст-изображение" Тензор из те - изображение, юнет ничего не знает про текст > и может частично компенсировать их недостатки Все так. В том числе на этом основана возможность обрабатывать длинные промты не смотря на порой радикальные отличия в тензорах чанков. > а ты не еблан который боится тренить те потому что иван залупин так скозал Перечитай пост, ты не туда воюешь. Там как раз про то что те тренировать надо, если у тебя не странный кейс, и опровержения шиза, который боится его тронуть, утверждая что это все сломает. > Даже если текстовый энкодер игнорирует часть промпта или выдает шумный кондишн, это не приводит к фалломорфированию или полной потере обучения. Если он игнорирует именно ту часть, которую ты тренируешь - приводит. Простой пример - всякие названия поз в сексе, активностей и мемов, которые будут интерпретированы совершенно не так и приведут к разного рода побочкам. Или сленг и новые слова, "шум от которых", как ты выражаешься, не будет достаточно консистентным и регулярным чтобы юнет смог нормально ее интерпретировать. Удачный кейс, описанный тобой, может сработать только если клип способен это понимать в достаточной степени. > следовательно некорректный кондишн не обнуляет обучение, а делает его менее точным Все правильно, вопрос в амплитуде этой неточности, она достаточно высока. Наиболее наглядно проявляется попытками натренить на имена каких-то людей, знаменитостей легко без те ухватывает даже если диффузия не знала, зато других, или тем более придуманные последовательности - отвратительно. > Юнет может подстроиться под базовое поведение датасета. Это и есть фаломорфирование, когда обучаемое будет лезть из всех щелей без вызова. И опять, ровно то что я выше описал. > 3. Переобучение юнет на датасет без сильной зависимости от кондишнов может быть плюсом, если задача стиль или обобщение Ну вот, пошел мои же посты цитировать когда понял что все сфейлил, или нахуй тогда влезал? > Лора добавляет низкоранговые обновления к весам Которые выбраны для обучения и только к ним. Если выбран только юнет - будет только юнет, и то по дефолту даже не все его слои. Если только те - будет только те, есть и такие извращения. Если отдельные блоки - будут отдельные блоки. А не то что ты пишешь, это вообще неуместно по нити. > 5. В сд есть механизм обработки безусловной генерации Анкондишнал генерации и работа cfg, это здесь не при чем.
Нейронка, плиз.
> Ладно, моя ошибка Конечно ладно. Как только прижали - дождался лимита сетки побольше, которая не скормила как в прошлый раз тухляк из эпохи далли1 с классифаер-гайденсом, а уже подсказала что-то актуальное. Но рофел в том, что оно буквально повторяет мои утверждения и опровергает твои (или того типа, которому пояснял что он не прав). А если второе - то зачем в разговор лезешь без четкого и явного описания своих утверждений? > У тебя так пичот с того что я тренирую тонны качественных моделей Васян на десктопной карточке по ночному тарифу электричество жжет, но себя мнит, ай лол. Такой-то серьезный повод для зависти. Мелковата рыбешка и пользы не приносит. > бессмысленный срач на дваче с фанатиком Да уже сливаешься, потому что вместо выебонов в той нити расклеился и себя начал опровергать. А я ведь просто мимокрокодил, который завалил уточнить что есть ерунда и как нынче технотредик поживает и оценить уровень духоты. Трех постов хватило чтобы подорвать, забавно.
> юнета хватит всем и каждому, те тренируют ток лохи Опять не туда воюешь. Да что с вами не так?
>>1137570 Кому не лень будет - прочитают и поймут доминацию чистого разума над глупостью в разных проявлениях. А может что-то полезное для себя почерпнут.
>>1137577 >Кому не лень будет - прочитают и поймут доминацию чистого разума над глупостью в разных проявлениях. А может что-то полезное для себя почерпнут. Нихуя себе чсв шиза.
>>1137587 Апелляция к авторитету, это же читы. Широко известны в узких кругах и приложил руку к разным проектам в опенсорсе. >>1137605 Сорвалась рыбка.
>>1137607 >Апелляция к авторитету, это же читы. Вообще подобный твоему гонор обязан быть подкрепленным фактическими успехами и хайкволити продуктом, в противном случае это выебоны обычные
>Широко известны в узких кругах и приложил руку к разным проектам в опенсорсе. Ну так предъявите, или тебе незнакомо слово портфолио?
>>1137625 > гонор Где? Ведь нейтрально и по существу все описано, исключая последные абзацы где уже ответы на агрессию. Насмешка над > я тренирую тонны качественных моделей с полновесным те это типа гонор? Это рофлы над челом, который решил агрессивно доебаться, процитировав мои посты (или чуть сузив обсуждение к степени реакции энкодера) и повторив выводы из них. Ничего выше 24 десктопного врама и датасетов с папочками 3_хуйнянейм не нюхал, зато как сам выебывается. Или это такой повод для слива? > или тебе незнакомо слово портфолио Таки какие условия вы предлагаете?
>>1137364 > Хз есть ли смысл с этим шизом что-то обсуждать На это чтоли обиделись и подорвались, я не понял? Так это про поеха, который усирался за недопустимость трейна те и уже пошел окукливаться, а не двум постам что там указаны.
>>1137846 > Ррррряяяяя я не слился > Тащите пруфы, чур я не первый! Ай кринжатина. Перед следующим выступлением спроси у дипкока что такое проекционный слой чтобы не позориться, успешный полнотекстовый тренировщик лор на еот.
>>1137889 Все довольно просто, ты отчаянно хочешь свинтить, уже устыдившись тому что писал раньше и поняв что ввязался в бессмысленный спор в котором не выиграешь. Высказанное не позволяет вернуться к обсуждению, из-за характера и чсв не можешь просто отступить, или боишься потерять лицо на аиб, ай лол.
Вот и устраиваешь этот перфоманс, трясущимися губами выкрикивая какие-то требования. Мне не жалко, но сначала ты продемонстрируй свои > тонны качественных моделей с полновесным те Казалось что тех, кто здесь тренирует что-то стоящее, знаю и они более сдержаны в своих высказываниях.
>ви все гавно! слушайте меня - вот тонны буковок @ >ты свч @ >нет ето ты свч! я победитель по жизни! вумный! @ >о, так вы экспертный аи энтузиаст с корочкой, покажите модели пожалуйста @ >мням пук нет ето вы покажите свои сначала!
>>1137967 Похоже ты недостаточно усвоил жизненный урок, что в реальном мире могут спросить за кучерявый базар. Иди отдохни, завтра днем надеюсь поблагодаришь, что это произошло на двачах, потому что ирл пришлось бы извиняться на камеру.
>>1137563 > если визуальный энкодер не заморожен то через него как раз обратным проходом полетит именно сравнение с ним Ты реально даун. В клипе контрастный loss, там градиенты идут от пар эмбендингов, а не от изображения к тексту.
>>1137975 Урок в том, что обосравшийся чухан копротивляется до последнего и скатывает техническую ветку в филлиал /по? Это дефолт, долбоебы сразу свой уровень обозначают. > потому что ирл пришлось бы извиняться на камеру Обозначь себя, можно устроить >>1138215 > В клипе контрастный loss, там градиенты идут от пар эмбендингов > В случае тренировки клипа осуществляется сравнение эмбеддингов и с этой разницы идет обратный проход. У тебя все хорошо, бедолага? Прочитай еще раз.
>>1138570 > Прочитай еще раз. Это ты прочитай ещё раз и загугли что такое контрастный loss. Распространение градиентов идёт от эмбедингов в разные стороны параллельно в ТЕ и визуальный энкодер, в сторону текста и изображения соответственно. А не последовательно, как в SD, когда ты пытаешься тренить ТЕ.
>>1136936 Попробовал тренить лору с --scale_v_pred_loss_like_noise_pred и без, разница не большая, но заметил больше ошибок в лоре которая без --scale_v_pred_loss_like_noise_pred тренилась. 1 пикча сравнение, 2 что должно получится по промту. Там с --debiased_estimation_loss, думаю лучше с скейлом тренить. И ещё ранее модель на будке тренил с такими параметрами, вроде тоже тебе показывал https://files.catbox.moe/pq1l52.json "--v_parameterization --zero_terminal_snr --scale_v_pred_loss_like_noise_pred" вот ссылка на саму модель https://huggingface.co/MindB1ast/test5/resolve/main/abc/Watanabe_exper_4_consept_more.safetensors Она работает(txt2img на 4 пикче), но есть пролбема с img2img, почему то пикча всегда сжигается(пикча 3), причем на нубе или в вкладке img2img такой проблемы не наблюдается, не знаешь в чем может быть причина?
>>1142294 Так я и написал что разница не большая, но я пробовал больше и в варианте без --scale_v_pred_loss_like_noise_pred больше ошибок по анатомии и деталям одежды
>>1142245 > Там с --debiased_estimation_loss, думаю лучше с скейлом тренить Да, дебилосед нужно со скейлом юзать, где то у кохьи было большое обсасывание всей этой темы > не знаешь в чем может быть причина? Знаю, у тебя в state_dict'е нету ключей впреда и зтснр, где то был скрипт чтобы их вшивать, могу попробовать найти, либо адвансед сэмплинг включай в рефордже внизу страницы
>>1142371 Да как раз в рефордже и юзаю, но даже с ним при hires fix и adetailer выдает шум вместо картинки. Я думал это автоматически делается если vpred тренируешь
Аноны, как сейчас дела обстоят с лора-мерджами? Использую 3 лоры в комплекте для базового стиля, думаю их смерджить в одну, для оптимизации и экономии памяти. Но супермерджер для автоматика не работает, а кохьевские скрипты выдают что-то непонятное - в базовом режиме видимо dim не совпадает (неужели никак не пересчитать?), а в svd-вкладке (или как оно там называется) результат вообще не тот выходит, что от раздельного использования. Пытался вжарить лоры в модель, и потом сделать экстракт, но разница все равно довольно значительная.
>>1146039 >Нормального результата никогда не получишь. Ерунду говоришь. Пользовался лора-мерджами еще со времен первого NAI. Сходимость результата в районе 95% по сравнению с использованием лор по отдельности. Экстракты давали (и дают) значительно худшую точность.
Заодно мерджем лоры на саму себя можно было нормализацию по весу применения делать, если в лоре недожарка или пережарка была. Но это когда супермеджер нормально работал.
>Expected size for first two dimensions of batch2 tensor to be: [1920, 6] but got: [1920, 3]. Вот такую фигню показывает когда одну из лор супермеджером замерджить пытаюсь. (Пришлось копать код, чтоб починить ошибку cuda, но вроде справился). >weights shape mismatch merging v1 and v2, different dims? Вот такую - если кохьей мерджить.
И что-то понять не могу, как это победить. Вроде даже ресайз проблемной лоры через кохью сделал - не помогает, только цифры поменялись.
>>1146054 Наверное одна из лор просто натренена на нестандартном алгоритме, локр или что нибудь ещё новее, который супермерджер не осиливает, мерджи через комфи, может там получится
>>1146122 >мерджи через комфи, может там получится Из того, что видел, там только две можно было сливать. Мне надо больше. 3-4 за раз. В два этапа делать как-то ниоч, тут уже могут дополнительные потери пойти, которых я как раз и стараюсь избежать. Ну и не люблю я лапшу, если честно.
>>1146242 Скрин покажи я не помню че там в вебуе бмалтеса. А так полноценнвй свд с разными алго магнитудными есть в расширениях комфе. И нет, там не нормализация, а ортогональная выжимка, декомпозиция хуемое.
Алсо для соединения говно есть еще DARE, но там понять сложнее как на что что влияет и воркфлоу максимально перегружен будет, но зато он мощный, с помощью него смешивают несмешиваемое типа пони и реалистики.
>>1146576 Ничего там нет. Что в SVD вкладке, что в обычной. В обычной, разве что, даже ранги указать нельзя. На ресайзе больше настроек доступно.
Я покрутил SVD, выяснилось, что результирующая лора из SVD-мерджа выдает близкий к базовой комбинации результат на силе ~2.2. При этом базовые настройки лор из промпта - 0.6, 0.4, 0.4, 0.4, и именно с такими настройками я их запекал вместе. Немного подкрутил входные веса, для более скругленных значений, и ре-масштабировал результат под вес 1 в супермерджере.
Получилось в итоге довольно близко. Гораздо ближе чем с экстрактом. Но все-таки не 95% сходимости, как раньше (отличие буквально на уровне какого-нибудь _а сэмплера), а около 80-85. Тоже неплохо, но хотелось бы лучше.
Шалом посаны. Последний билд Onetrainer запускал кто-нибудь? У меня ругается на mgds, якобы модуля нет, pip install найти его характерно не может, а в ручное импортирование я нишмог. Есть гайды как запустить? Давний билд годичной давности наверное запускал (аккурат год назад), а последний - хуй.
Из значимого пофикшена ошибка логики байпаса, которая чето с декомпозом делает и ебет его несколько месяцев подряд, и кароч суть в том что теперь дора работает корректно как и должна на любом алго. Плюс калькуляция декомпоза на аут (последний мажорный апдейт) в состояние вкл на постоянку теперь и работает корректно.
Сделал прогон на фул параметрик с те и да действительно теперь мозги не ебет (а я думал че оно говно мне обучало, пиздец сколько часов проебал за джва месяца).
Мейн не обновился еще, так что чтобы юзать в кое надо в kohya.py ликориса поменять default_lr на learning_rate + добавить две переменные к self - unet и text_encoder в строках пикрел, тогда мисматча не будет при старте тренировки.
Влияют ли новые карточки от куртки на развитие нейросетей? Типа компании закупят железо мощнее и через год обучат на нем нейронки уже для плебса с 8гб врам
Не понял как связано одно с другим. Компаний которые владеют кластерами видях не то что бы много, а задачу по созданию моделек для нищеты выполнила только стабилити, причем дважды. Так или иначе стараются уложить фп16 в 24 гига, а это ну консумерский уровень так-то, а 8 гигов это дно дна на самом деле.
Подскажите плз. Есть папка с пикчами, хочу проапскейлить их с разными сидами. Иду в i2i, вкладку batch, указываю папку, ставлю Batch count = 10 и обычный sd-upscale. По итогу выдает для первой пикче 10 вариантов, а все последующие по 1. Ulitmate sd upscale вообще выдает всегда по 1. Пробовал и в A1111 и рефордже. Это косяк скриптов ?
>>1154100 Иди сразу в комфе. Ультимейт апскейл можешь заменить на любую другую реализацию, хоть чисто моделькой скейль в мультиплаер который в нее встроен (ну 4х там и так далее) или через Supir если времени не жалко.
Как правильно натренить лору на определенный объект? У меня все попытки оканчиваются тем что с лора просто пытается повторить картинку из датасета со всем окружением.
Аноны вот я наделал некоторых картинок маленького разрешения. Теперь мне надо сделать их в высоком разрешении. Я беру данные генерации, добавляю к ним настройки hires. Картинок дохуя. Встал вопрос как их все запихнуть в очередь? Всего за эти годы было создано джва расширения для этой задачи - agent-scheduler и SDAtom-WebUi-us. Оба нерабочее говно. В agent-scheduler не сохраняются настройки сэмплера, при запуске SDAtom-WebUi-us весь интерфейс покрывается ошибками - дальше не смотрел.
>>1155665 >Как правильно натренить лору на определенный объект? Сеть знает о концепте изначально или нет? >У меня все попытки оканчиваются тем что с лора просто пытается повторить картинку из датасета со всем окружением. Покажи настройки. Если сеть знает о концепте, то достаточен класс датасета (название папки с количеством повторов) или базовый капшн с токеном. Если сеть не знает о концепте или тебе нужна более глубокая адаптация, то нужно дескриптивное описание кепшенов. Помимо этого генерализация, параметрический охват и способность запоминать сложные паттерны зависит от лагоритма, типа ошибки и самой задачи. Ну и настройки в целом очень сильно влияют на результат, а твои настройки я не вижу.
Тут можно тонны советов начать раздавать, рассказывать про мокрописьки, поэтому постараюсь кратко пробежаться по общей инфе на основе своего опыта, т.к. я часто пизжу объекты.
Предполагаю что ты сидишь на дефолтном локоне в качестве алго. Я не люблю дефолтный локон, он не слишком гибок, плохо работает с большими и разнообразными датасетами, имеет маленькую емкость, короче узконаправленный и для тех кому достаточно, поэтому крайне редко его сам тренирую, когда надо настроечки проверить. Плюс не люблю понижать те относительно скорости тренировки весов.
Если тебе надо что-то быстро спиздить, то я бы выбрал loha с такер декомпозицией (раскладывает матрицы как свд), там думать не надо особо и 1 к 1 по дименшену и альфе тоже не требуется, очень легко пиздит всё - от стилей, до объектов, очень хорошо синергирует с TE на той же скорости что веса не вызывая его прожигания и соответственно не нужно симулировать early stop te для лоры (когда ты обучаешь TE первые несколько эпох пока те не начинает забывать данные, а веса берешь от более поздних эпох и соединяешь их вместе; если не знаешь как вырезать те из модели и вставлять в другую модель, то можно это делать в комфи просто двумя нодами где у одной клип только включен, а у другой включен только юнет). Из минусов наверно низкая емкость только вследствие чего как по мне недостаточная детализация периодически сквозит, но если подобрать дименшен и у тебя позволяет выставить побольше, то незаметно будет.
Если тебе нужна йобовая тренировка максимально похожая на файнтюн с гигантской емкостью и запоминанием сложных паттернов то это только BOFT и GLORA, но бофты работают щас только в а1111 и нигде больше, считаются долго и требуют врама, а глора ботает везде. Глора очень щадящая гибкая штука и позволяет силу лоры поднимать до небес, ее практически нереально перетренить в общем, только если 1:10 по дим:альфа выставить, да и то оно не сдохнет и можно наоборот понижать вес лоры при инференсе. Из минусов трудно подобрать оптимальный лернинг для эффективного обучения и принцип активаций-подсказок хрупкий и требующий стабильного обучения, для быстрого обучения не подходит.
Если нужна большая емкость и возможности LOHA, то есть LOKR, пиздит все точно также как лоха и даже лучше, но гораздо мощнее параметрически, но очень сенсетивный ко всем остальным настроечкам. Плюс есть удобная фича факторизации, когда ты конкретно к модели натренировываешь адаптеры и тем самым получаешь микроскопический вес лоры без лишнего говняка в пару мегабайт. Плюс можно не настривать альфу вообще, т.к. можно выставить выключение декомпозиции через указание 100000 дименшена.
Еще можно подключить к алгоритмам DORA, это симуляция поведения тренировки весов как на полноценном файнтюне вместо классического lora метода, ее как раз пофиксили в последнем дев билде ликориса >>1154054
Из того что я бы не выключал вообще никогда это стабилизацию рангов через rs_lora, особенно если тренируешь более 32 дименшенов, для огромных дименшенов это вообще база как по мне. Принцип ранг стабилизации простой - у тебя есть дименшен из которого вычисляется корень, то есть у тебя был ранг 64, но он масштабируется до ранга 8, следовательно к 64 дименшену не требуется 64 альфа, а требуется уже 8 для 1:1 зависимости. Доджит кучу проблем нормализаций и масштабирования.
По типу ошибки - ну я бы лично выбирал между huber и l1, хубер отлично работает с низкими таймстепами которые в основном портят обучение на домашнем обучении, но недостаточно мощно с высокими, поэтому к нему особенно рекомендуется усиление верних через debiased_estimation_loss. l1 прямой как палка и суперстабильный.
Что бы вы запустили на 4090 48GB? Я не шарю, типа, эээ, Flux? А как можно поиграться, 24 против 48 гигов вообще что-то даст? Будто бы ничего особо не навалить. Если есть что сказать — напишите. А то просто бахну 4096 на 4096 fp8 и все. Преимущественно Comfy.
>>1157485 Епт, че так сложно, я думал достаточно накидать картинок и описать что на них изображено, а Искусственный Интеллект дальше сам разберется, а тут пердолиться надо. Где вообще почитать о матчасти можно, что такое ликорисы, бофты, глоры, как настраивать kohya-ss. Как тренировать для Пони, для Люстры и прочих Нубов, я так понимаю что все они SDXL, но допустим я хочу реалистичную картинку получать, для тренировки тоже надо брать модель с реализмом, или надо на базовом SDXL тренить? Короче где про все это узнать, просто в гугле и ютубе рассказывают о совсем базовой херне которая и результат херовый даёт.
>>1158917 > Епт, че так сложно, я думал достаточно накидать картинок и описать что на них изображено, а Искусственный Интеллект дальше сам разберется, а тут пердолиться надо. Не ну в принципе и так можно, вообще ничего не подкидывать в конфиг кроме дименшена, оптимайзера с максимально сглаженными бетами и дефолтного l2, ток это надо понижать скорость сильно и ждать не условные пару часов, а пару дней. Это просто неэффективно. Поэтому если хочешь быстро надо понимать куда тыкать и че юзать.
>Как тренировать для Пони, для Люстры и прочих Нубов, С клипскипом 2, а так различий нет. Ну разве что есть впредикшен нуб, и там с ним дрочка по другому работает с другими настройками и доп аргументами. А и описание будет эффективнее именно так как были отпердолены клипы для этих моделей - буру лайк теги, а не дескриптивное описание как для стандартного клипа реализмомоделей.
>я так понимаю что все они SDXL, Архитектура одна да >но допустим я хочу реалистичную картинку получать, для тренировки тоже надо брать модель с реализмом, или надо на базовом SDXL тренить? Да, лучше брать реалистичный файнтюн с переобученным текстовым енкодером. У базовой просто нет требуемых тебе знаний (или тех которые облегчают адаптацию), которые будут в жирных тюнах. База это для полноценной тренировки, тренировки с нуля и для тренировки общих концепций с излишеством в виде кроссадаптивности между всеми файнтюнами разом. Начнет тренинга реала на онеме модели: практически так можно, что успешно делают для 2.5д эффекта, и для того чтобы найти грааль превратить 2д модель в реалистик (до сих пор все безуспешно, они все не стопроцентные), но это как бы не задача лор, а для полноценной тренировки. Если очень хочется экспериментов и безумных умений то пожалуйста вперёд аниме баб обмазывать реальными еблами, интересный опыт на самом деле, может ты единственный кто сможет совершить полноценный концептуальный перенос нарушающий математические законы.
>>1158953 Ммм кстати там в скрипты GGPO добавили, работает не только с флухом. Я по бырому на мелком датасете прогнал с дефолтными сигмабетами из примера и оно чет неприлично быстро схождение бустит. Надо углубиться в тестирование.
>>1159456 >>1159175 Странно вообще. Ну по pr видно что поменяли ток флюксоскрипт и трейн нетворк, но у меня значительно разные результаты с двумя этими аргументами. Щас прогоню еще раз с другими значениями экстремальными, если опять будет другое изображение, то там точно чето подтекает каким-то образом.
>>1159568 С одинаковыми настройками. Вот как раз изменение настроек GGPO и меняет рандомно результат. По твоим пикам разница на уровне изменения сида тренировки.
>>1159591 Так я специально левое слово для гена взял для чистоты, если генить тренированное там ебнешься разница. Значения передаются от сида, а от положения буковок в конфиге. Во вторых я вижу реальный квалити ап и более агрессивное схождение на то что тренировал. Я бы показал реальные картинки, но там порнуха. Так что нет, это не что-то уровня погрешности сида.
>>1159601 >>1159595 Кароче я поинтересовался у мл сеньора и он скозал что сдскрипты могут триггерить новую функцию с неизвестной полнотой т.к. кодовая база одна.
>>1158953 >rslora А в чем смысл, если можно ручками альфу нужную вписать? Или оно как-то влияет на разные размеры матриц модели? Так вроде не должно, там одна константа на все по формуле.
>>1160206 есть три базиса лор: 1. По дефолту лора (за исключением глоры, отключенной декомпозиции у локра и ортогоналок) не умеет эффективно и корректно работать с дменшеном выше 32, т.к. масштабирующий коэффициент альфы поделенной на ранг замедляет обучение при больших значениях ранга. 2. При этом у алгоритмов есть такое понятие как емкость, т.е. способность адаптера въебать по модели сложными преобразованиями, то насколько адаптер может менять поведение модели. У лоры/локона, лохи и низкорангового локра емкость маленькая. 3. Чем выше дименшен, тем больше параметров => больше возможность запомнить сложные паттерны.
Таким образом образуется бутылочное горлышко: увеличение дименшенов адаптеров выше 32 приводит к ухудшению обучения, а дименшены ниже 32 сосут писос по выразительности и запоминанию сложных паттернов. Рслора уничтожает это недоразу и дает лоре корректное масштабирование и нормальное управление большими дименшенами.
>>1160873 Так на вопрос это не отвечает, нахуя что-то ставить или включать когда можно скорректировать вручную коэффициент который ты и так выставляешь вручную?
>>1161539 Теперь читаешь еще раз >>1160873, потом понимаешь что альфа это супрессор и явно повышать ее выше финального коэффициента 1 можно без особых опасений только с глорой (на лохе для стабильности вообще около 1 всегда должна быть например) и удачи.
>>1159138 Я накидал побырому корректную вроде реализацию ггпо (шум к весам + шум к градиентам + бета коэф), но только для лоха и лайтовую https://pastebin.com/x2n7cwmZ (в ориге флуксолоры там квадраты норм perturbation_scale = (self.ggpo_sigma torch.sqrt(self.combined_weight_norms 2)) + (self.ggpo_beta (self.grad_norms 2)) но я не тестил пока это, только прямое вмешивание), аргументы в нетворк аргс "use_ggpo=True" "sigma=0.1" "beta=0.01", можете потыкать кому интересно, заменяете loha.py в пакедже ликориса
>>1161826 >Теперь читаешь еще раз Причем тут это если по формуле твоя рслора просто масштабирует альфу и больше ничего не делает? И глобально, а значит можно саму альфу взять другой и никакое лишнее говно не ставить. Ты формулу вообще смотрел как оно работает? Если я не прав ну принеси правильную тогда, потому что по тому что я вижу ты можешь просто взять альфу такую чтобы она правильно поделилась на r без корня и всё.
>>1161850 > Причем тут это если по формуле твоя рслора просто масштабирует альфу и больше ничего не делает? Она корень из дименшена считает. Альфа это костыль вообще придуманный как дампнер в лорах чтобы громкость влияния регулировать. Ты буквально предлагаешь громкость выше 100 процентов ставить когда у тебя и так качество обучения от количества параметров для лоу ранк матриц упало. > Ты формулу вообще смотрел как оно работает? Корень из дименшена. >И глобально, а значит можно саму альфу взять другой и никакое лишнее говно не ставить. > Если я не прав ну принеси правильную тогда, потому что по тому что я вижу ты можешь просто взять альфу такую чтобы она правильно поделилась на r без корня и всё. Ну ты не понимаешь просто базовых вещей. Вот допустим ты берешь 100 дименшен, локон и прочие не умеет эффективно работать с таким. Дальше что? Поставишь 100 по альфе что эквивалент полной громкости лоры? А оно не улучшит ограничения лоу ранк матриц. Плюс зависимость громкости будет нелинейная т.к. чем выше дименшен тем больше супрессия альфа. А с рс у тебя алгоритм будет работать с корнем сотки, но с количеством папаметров сотони дименшена и для полной громкости потребуется выставить 10 альфу.
>>1161856 >Она корень из дименшена считает. Ну да, я же писал что делится на r - ранг /корень из него же. В ссылке и статье пишут конкретно делится на корень ранга https://ar5iv.labs.arxiv.org/html/2312.03732 Плюс пикрил буквально пишут то же что я говорю.
>Альфа это костыль вообще придуманный как дампнер в лорах чтобы громкость влияния регулировать. Альфа это фактически масштаб весов при инициализации и тот же вес при интересе, не более, просто множитель весов.
Я как бы подумал что ты под дименшеном может быть имеешь ввиду не ранг лоры а ее внешний размер? Тогда это имело бы смысл. Но вроде ты дименшеном называешь ранг, так что не понимаю все еще с чем нахуй ты споришь и что пытаешься доказать. На мой вопрос ты не ответил, что по формуле выходит что можно просто альфу поднять. Как бы школьная математика начальных классов...
>>1161874 > Альфа это фактически масштаб весов при инициализации и тот же вес при интересе, не более, просто множитель весов. Альфа формально множитель, а фактически константный дельта супрессор. > Но вроде ты дименшеном называешь ранг, так что не понимаю все еще с чем нахуй ты споришь и что пытаешься доказать. Эээ слыш, это ты мне написал и начал гнать на нормализатор дименшена и пассивно агрессировать накидывая по кругу один и тот же вопрос полностью игнорируя механические нюансы. Мне совершенно все равно как ты тренируешь, для меня плюсы рс очевидны и не мои проблемы что у тебя в уме поднятие альфы позволяет заменить корень, что в реальности факап. > На мой вопрос ты не ответил, что по формуле выходит что можно просто альфу поднять. Как бы школьная математика начальных классов... Нельзя поднять, если тебе нужна адаптация, а не форсирование генерирования датасетов, и то там поломается все если с те тренировать. > Я как бы подумал что ты под дименшеном может быть имеешь ввиду не ранг лоры а ее внешний размер? Тогда это имело бы смысл. Дименшен это и есть ранк, от ранка зависит количество параметров и следовательно вес. Нельзя работать с большим количеством параметров в лорах не выставив высокий ранк, а лоры без учета исключений не приспособлены к конским величинам ранка, вот и вся проблема. Не доебывай меня хуйней с поднятием альфы.
>>1161889 >это ты мне написал и начал гнать на нормализатор дименшена Нет, я писал сразу:
1) Можно ли просто править альфу глобально? первым >>1160206 и вторым постом >>1160948 2) Далее и после что исходная формула делит a на r, когда рслора - a на корень из r>>1161539 Мое утверждение, которое я попросил доказательно опровергнуть, - что использование абстрактной рслоры математически эквивалентно правке альфы в соответствии с формулой, если r константно для всех слоев.
Ты же написал: >Как ты собираешься вручную корректировать фундаментальную проблему? И эту хуйню >Ну ты не понимаешь просто базовых вещей. Вот допустим ты берешь 100 дименшен, локон и прочие не умеет эффективно работать с таким. Дальше что? Поставишь 100 по альфе что эквивалент полной громкости лоры? А оно не улучшит ограничения лоу ранк матриц. Плюс зависимость громкости будет нелинейная т.к. чем выше дименшен тем больше супрессия альфа. А с рс у тебя алгоритм будет работать с корнем сотки, но с количеством папаметров сотони дименшена и для полной громкости потребуется выставить 10 альфу. Вероятно подразумевая, что мои предположения в корне неверны. При этом ты не привел доказательств, которые я просил.
Тем временем мой вывод подтверждает исходная ссылка из поста на метод https://huggingface.co/blog/damjan-k/rslora Где буквально пишут > Of course, for those in the know about this work, one can just substitute the scaling factor in LoRA by substituting the hyperparameter α α for each adapter appropriately with α′α ′set as: А также в обсуждениях https://github.com/kohya-ss/sd-scripts/pull/1870 Задаются тем же вопросом и отвечают что это так. Далее коммиты с рслорой https://github.com/KohakuBlueleaf/LyCORIS/pull/172 Там же пишут что код может быть не в каждом алгоритме активен и поэтому лучше было бы, чтобы ничего не напуталось, "наверху" конфигов править альфу под формулу и передавать ее дальше.
Что по итогу - можно ставить большие ранги, поднимая правильно альфу, и никакие мокрописьки в конфиг или код включать не надо. Если ты хочешь спорить с этим утверждением, то пожалуйста приведи хоть один пруф. Если ты все это время имел ввиду что-то другое, то скажи блядь что.
Я же сразу имел ввиду, что если бы вся эта хуйня применялась бы когда в модели есть лоры разных рангов, либо если расчет идет от относительных размеров, условно, (вход*выход) / ранг, то вот тогда имеет смысл добавлять такое в код. Больше скажу, у тебя в модели все матрички разных размеров, в тэ, в юнете, в самих слоях они разные.
Вот даже анализ от нейронки: 1280 × 1280(само‑внимание TE‑2 + большие блоки UNet) ≈ 250‑300 адаптеров (~30 % от всех)
640 × 5120(сужающая проекция FF‑сетей в малых блоках UNet) ≈ 20‑25 адаптеров (~3 %)
1280 × 10240(расширяющая проекция FF‑сетей в больших блоках UNet) ≈ 30‑40 адаптеров (~3‑4 %)
768 × 3072 и 3072 × 768(MLP TE‑1) по 12 адаптеров каждого вида (~1‑2 % на каждый)
1280 × 5120 и 5120 × 1280 (MLP TE‑2) – уже учтены выше, суммарно около 64 адаптеров.
При этом ранг у них будет один. Так что если считать относительно внешних размеров, можно получить идеальные нормы градиентов еще и по каждому слою отдельно, а не в целом. У тебя тут половина матриц в 2 раза по размеру отличаются, в 4 по площади.
Какой вывод из этого всего? - Мое общение с нейронкой примерно в 10 раз продуктивнее чем с местными лоботомитами. Хотя куда у там, скорее во все 100.
П.С. Один маленький факт о котором я подумал в самый последний момент - если ты включаешь рслору, фактическая альфа при тренировке меняется, но в файл будет записана заданная конфигом. И при последующем использовании лоры этот факт никак не учитывается. То есть твоя лора по итогу будет тише. Наверное... Но опять же это просто масштаб множителя веса.
>>1163139 >Нет. Охуенно, значит на доске уже двое таких ебанутых. >я щитаю так потому что хуй знает почему Может быть потому что ты читать не умеешь шизохуйло обосравшиеся? В последнем посте расписаны все пруфы но ты решил их проигнорировать и просто слиться. Начал искать как-то анимешников которые тебя проткнули. Причем в первом моем посте тоже всё написано понятно, а во втором ты сам начал срать вообще не относящиеся к теме хуйней.
Давай, без виляния жопой тогда ответь, ты типа по итогу дискуссии считаешь что включение рслоры НЕ математически эквивалентно ручной правке альфы? Это не /b/, с тобой блядь нормально разговаривали пока ты не начал хуйню нести.
>>1163193 >Охуенно, значит на доске уже двое таких ебанутых. Аниме, если тебя все вокруг ебут, то проблема в тебе. >В последнем посте расписаны все пруфы Я не буду вчитываться и тратить время на вдумчивый ответ, потому что я уже вижу что там контексты теряются и притягивание за уши. > Начал искать как-то анимешников которые тебя проткнули. Докажи что не анимеприпиздок тренирующий референсогенераторы вместо трушной адаптации. >а во втором ты сам начал срать вообще не относящиеся к теме хуйней. Если тебе непонятна взаимосвязь, то не мои проблемы. > ты типа по итогу дискуссии считаешь что включение рслоры НЕ математически эквивалентно ручной правке альфы? Конечно нет. И это проверяется буквально двумя короткими тренингами.
Видишь вот эту штуку / ? Это называется деление. Если чиселка справа уменьшается, то результат увеличивается, а если слева увеличивается, то результат тоже увеличивается, прикинь, да?
А почему результат на практике может быть различным, я написал в конце поста, и если не вилять жопой и не игнорировать пруфы, либо немножко подумать, то можно догадаться что при включении рслоры ты меняешь фактическую альфу, но в тензор (.safetensors) записываешь значение из конфига, и при инференсе модели эта поправка не учитывается.
>>1155665 Нужен разнообразный набор картинок с этим объектом и текстовые описания к ним, в остальном все стандартно. Если просто повторяет картинку - датасет оче плох, или оче неудачные гиперпараметры. >>1156270 Картинки одного промта или разных? В автоматике на вкладке img2img есть раздел batch process, собери пикчи в одну папку и укажи ее там. Можно задать единый промт для всех, можно поставить галочки чтобы оно дергало нужное из pnginfo. >>1158917 В целом, все именно так, я тоже ахуел с той простыни что тот чел набросал. Может там и по делу, но для первого результата хватит и простой лоры по любому из гайдов, а дальше уже оптимизации, не всегда окупающиеся. Скорее всего у тебя относительно примитивная проблема и не нужно глубоко нырять.
Что опять за тряска и почему >>1162918>>1163027>>1163139 и далее еще не обоссан или не в бане за щитпост? >>1163193 А ты зря тратишь время на биомусор , хотя полотно про альфу ничетак, почитал, если > но в файл будет записана заданная конфигом Вот это реально так то просто ор выше гор. >>1163597 > В треде то кроме шиза и ньюфагов хоть кто-то есть? Обсуждать особо нечего и альтернативно одаренные, сильной верой в себя и в свои чувства, создают плохую атмосферу.
>>1158917 > для тренировки тоже надо брать модель с реализмом Для начала, трень на той модели, на которой собираешься юзать. Если это какой-то мердж или вася-микс - можно поискать модель на которой он основан и тренить на ней, часто результат получается лучше. В остальном тебе верно сказали. >>1158953 > ничего не подкидывать в конфиг кроме дименшена, оптимайзера с максимально сглаженными бетами и дефолтного l2, ток это надо понижать скорость сильно и ждать не условные пару часов, а пару дней Пару дней на простую лору? А сколько всего навалил, это же неофит, ему самое простое и основное нужно, а не перечень всего что есть. Если там 2.5 картинки без описаний в датасете, то как не пляши, это не сделает лучше сделает, но нужна другая пляска. > С клипскипом 2 Клипскип - мем эпохи полторашки, про него давно нужно забыть. Если выбрана sdxl то значение 2 в интерфейсах игнорируется, специально сделали.
>>1163753 >Вот это реально так то просто ор выше гор. Я ща понял что не ту репу смотрел, в актуальной нашел фикс этого https://github.com/KohakuBlueleaf/LyCORIS/commit/170554c09b03fc32f38ec247436f73093eda34a0 - self.register_buffer("alpha", torch.tensor(alpha)) # 定数として扱える + self.register_buffer("alpha", torch.tensor(alpha * (lora_dim/r_factor))) Вот так оно сохраняется со скейлом, по идее.
>>1163365 > но в тензор (.safetensors) записываешь значение из конфига, и при инференсе модели эта поправка не учитывается Мимо, нету разницы что ты записываешь в мету лоры, хоть удали её полностью, она будет работать так же, важен только скейл весов во время тренировки
>>1163768 Не, конкретно альфа это единственный параметр помимо весов, который пишется непосредственно в тензоры. Он еще и для каждого адаптера отдельным полем продублирован, можешь веса слоев прямо в файле настраивать, по идее, если вдруг оно там дальше не импортируется как-то криво. Надо проверить, а то вдруг там поле берется для всех, в твоем интерфейсе который грузит лору.
>>1163776 А чем смотришь? Я только safetensors viewer для вскод с моего пикрила знаю, в нем только лист тензоров показывает. И еще есть https://netron.app/, там из полезного крайние значения, среднее, и т.п.
Почему kohya такой медленный? На 3090 и 128 лоре, только юнет, оптимизатор адам, получаю 1,2 итерации в сек. Адам 8 бит - дает чуть больше секунды на итерацию. Ставлю адафактор, вообще падает до 1,6 секунды на итерацию. Какого хуя? Это же легкий оптимайзер, хули оно тормозить начинает? Смотрю по статье https://www.pugetsystems.com/labs/articles/stable-diffusion-lora-training-consumer-gpu-analysis/ там у них результат намного лучше, но они на прыщах тестят, а у меня винда.
Попробовал onetrainer, настройки примерно те же, лучший результат 1,4 итерации на адаме, 1,5 сгд. Но переключение на адафактор тоже вызывает затыки и скорость падает до примерно тех же 1,6 секунд на итерацию. Может словил шизу, но кажется один запуск на адафакторе таки пошел на нормальной скорости.
В общем с дефолтным адамом видюха почти полностью нагружается, а все остальное как-то не так работает. Хваленый тут prodigyplus.ProdigyPlusScheduleFree вообще 1,9 сек/ит дает.
>>1165567 Мала, 0,2 секунды в кохье кто-то спиздил. Да и то что легкие по памяти оптимайзеры работают в ДВА а то и все три раза медленнее, это типа норма или где-то у меня проблема?
>>1166295 > 0,2 секунды в кохье кто-то спиздил Так там 146% было разрешение 512 и ранг не выше 32. Либо трень нормально с такой скоростью, либо шакаль до усрачки.
>>1165820 > Что за --fast режим Юзать аккум и фп8, если модель и торч соответствуют, не вместе естественно, аккум для хл, фп8 для чего то по типу флюкса > Прирост на 15% вижу по скорости, но не портит ли это картинку? Вроде больше должно быть, самая безобидная из бустилок, в теории должна, на практике просто будто сид чуть сдвинул, так что похуй и можно юзать постоянно
Аноны, хуй поймёшь у вас с чего начать. Я пришёл с llm тредов, локальных и обычных. Linux, код и прочий пердолинг мне знаком. С SD дело имел в последний раз несколько лет назад, тогда всего было меньше и модели хуже. По вашей шапке тяжело понять с чего начать, чтобы нормально разобраться во всём этом. Я долблюсь в глаза? Общее представление, как устроены диффузионки я имею, но где у вас почитать всю теории последовательно? Всё как-то разбросано, хуй поёмешь тем кто только вкатывается, даже если технические вещи его не пугают.
>>1170716 Ну шапка сборная солянка из актуального и не актуального, можешь все почитать хуже не будет. Общего гайда по всем вопросам не существует, надо собирать по крупицам в инторнете и гопоте, если вопросы появляются.
А что ты хочешь-то? Какая цель?
Если прямо упрощать вкат в тренинг кала 1. Качаешь сдскрипты, прикидываешь с чем твоя карта справится, изучаешь аргументы для скриптов под тот метод тренировки что выбираешь (полные параметры, лоры); если выбраны лоры то изучаешь ликорисовскую библу с алгоритмами расширенными 2. Изучаешь виды оптимайзеров (неадаптивные, адаптивные, шедулерфри), понимаешь что их дохера разных и все они дают разные результы и времязатраты, изучаешь как их настраивать, их аргументы, базовые щедулеры, кастомные шедулеры 3. Изучаешь как готовить датасет, ставишь весь софт и сопутствующие нейрокалы для тегирования согласно тому с какой моделью будешь работать и какая задача, изучаешь как работать с тензорбордой чтобы отслеживать тренинг процесс 4. Делаешь свой первый конфег, запускаешь, дико орешь что натренилось говно, повторить x100 до победного
Ссылками закидывать не буду, хотя могу если надо, будет тебе чето уровня "вся теория последовательно".
>>1170716 >где у вас почитать всю теории последовательно? Всё как-то разбросано, хуй поёмешь Посидев в треде несколько месяцев, начинаешь догадываться, что предположение о том что здесь кто-то имеет понимание - весьма притянуто за уши, а скорее всего изначально неверно.
Ну есть какой-то гайд с распиской аргументов скриптов и ссылками подробнее че оно делает и из какой статьи или обсуждений взялось. Это называется "сложный гайд", но я бы его назвал поверхностным обзором документации скриптов, приправленным немного каким-то опытом его писавшего.
Вся инфа разбросана по тредам. Хороших конфигов я не видел, каких-нибудь сложных датасетов, на которых можно ставить эксперименты - никто не выложил. Попытки делать подборщики параметров - чет было, но как-то слабо. Код особо никто не разбирал, кроме мелких вещей. (Протухшие обертки для запуска скриптов кодом не считаем).
Происходящее внутри сети никто не анализировал. Есть только бесполезный лосс, дальше никто не смотрит, как там внутри градиенты распределяются никого не ебет, и т.д.
Людей которые бы пытались мл учить и разбираться в физике процесса я тут тоже чет не заметил.
Это если тебя обучение моделек интересует. С генерацией там единственное в чем надо разбираться, это пердолинг в комфи и иметь некоторый опыт, который набирается довольно быстро. И да, ты не сказал, а чего ты хочешь то?
>>1170716 Кроме написанного на популярных ресурсах общего, так сходу не найдешь. Только курсы и лекции, где заходят очень-очень издалека. Познают все в основном из практики, желая достигнуть чего-то конкретного, а уже только потом начинают разбираться, далеко не всегда погружаясь, а просто набирая эмпирический опыт. Ты что вообще хочешь? >>1172385 В целом здесь есть более менее шарящие люди, но их мало. Тут основное общение происходит или когда кто-то задасет конкретный вопрос, остальное в дискордах, личных переписках и подобном. Причины для этого разные. Так что если у тебя есть что-то конкретное то пиши не стесняйся. > Код особо никто не разбирал, кроме мелких вещей. Правки, фиксы, улучшения и всякие вещи коммитятся, их делают по мере надобности себе. Или просто делают свой форк со специфичными изменениями. Что там разбирать то, уже 100 раз обсосали. > Происходящее внутри сети никто не анализировал. А вот это ты лихо дал, странная абстракция, и вокруг этого здесь все срачи и происходят. На самом деле все "тренера" как раз примерно это и пытаются анализировать пусть иногда косвенно/субъективно, вырабатывая для себя закономерности и трюки для лучшего результата. Учитывая что файнтюнами, где можно разгуляться, тут занимается 1.5 человека, а большинство пилящегося - лоры на что-то оче оче узкое, даже не мультиконцепт, это получается вообще отдельный раздел, где многое просто не может проявиться, или будет перебито каким-то другим фактором. Например, как в прошлых тредах обсуждали разные таймстеп шедулеры. Для мелколоры об этом никто не думает, но если попробовать делать что-то крупнее для sdxl vpred моделей и ставить целью сохранить возможности - становится важным. > как там внутри градиенты распределяются никого не ебет Было бы интересно узнать про полезность этой информации, исключая крайние точки когда они не начинают исчезать, или наоборот улетают в космос. > Людей которые бы пытались мл учить Пожалуйста, в универ. Пока отучишься несколько поколений нейронок и прочего сменятся. Если повезло иметь какие-то знания к началу этого то очень хорошо, но они далеко не всегда приближают к результату. Здесь даже четко сформировавшейся научной школы нет, буквально первый край, где обсираются самые лидеры, сливая кучу денег, ресурсов, человекочасов на треш типа жпт4.5. Можно вообще заявить что dataset is all you need, а с остальным справится adamw и дефолтные параметры. И действительно, при правильном формировании, аугментации, порядке для контрастного обучения и прочем, это даст результат гораздо лучше, чем шедьюл-фри турбо-гига-мега-пролежни с примитивным датасетом.
Кохак добавил lora+ в ликорис (в кое давно завезено). Кратко, лораплюс это допкоеф для соотношения обновлений между A и B матрицами адаптеров, практика показывает что одинаковая скорость обучения для обоих блоков неэффективна. Можно отдельные коэффициенты для TE и юнета юзать, можно общий на всё. Ознакомиться с папирой кому интересно https://arxiv.org/pdf/2402.12354
>>1172894 Нам такое явно не нужно. Б-матрица - это нули, т.е. множители для весов основной матрицы. Больше ставим lr для Б-матрицы - больше эффект от лоры. Смысла в этом нет в контексте SD. Авторы аж на 20 хуячат лоры для LLM, но в SD уже на 4 пизда как перетрен идёт.
>>1173407 >Нам такое явно не нужно. Нужно, работает отлично, рокербу из репо кои уже год с лораплюсом гоняет, я где-то с декабря. Прогнал сегодня с глорой пяток тестов с разбегом от 4 до 128, эффект шикарный. > Б-матрица - это нули, т.е. множители для весов основной матрицы. Щито? B матрица преобразует данные обратно в исходное пространство признаков после сжатия через A. >Больше ставим lr для Б-матрицы - больше эффект от лоры. Не, там сила эффекта лоры не меняется.
>>1173527 В лорах А-матрица инициализируется рандомным шумом, а Б - нулями. Именно поэтому у тебя начальная лора делает ничего, потому что А-матрица на нули умножается. Делаешь выше lr для Б-матрицы - получаешь более быстрое отклонение от 0. Собственно лора+ даёт эффект очень похожий на альфу.
>>1173675 Ну это инициализацию ты имеешь в виду, а у разных алго она разная.
А так суть лоры+ немного в другом:
Исследователи обнаружили, что первоначальный подход LoRA не так хорошо работает для моделей с большой «шириной» (т.е. большими размерами вложения). Это связано с тем, что LoRA обновляет две матрицы адаптеров, A и B, с одинаковой скоростью обучения во время тонкой настройки.
С помощью математического анализа авторы показывают, что использование одинаковой скорости обучения для A и B не позволяет модели эффективно обучаться признакам в сетях большой ширины.
Используя аргументы масштабирования для сетей большой ширины, авторы демонстрируют, что использование одной и той же скорости обучения для A и B не позволяет эффективно обучаться признакам. Интуитивно это объясняется тем, что масштабы обновлений для A и B должны быть сбалансированы определенным образом, чтобы охватить наиболее важные функции.
Чтобы устранить эту неоптимальность, авторы предлагают простую модификацию под названием LoRA+, которая использует различные скорости обучения для матриц адаптеров A и B с хорошо подобранным соотношением. Это позволяет модели более эффективно изучать признаки во время тонкой настройки.
>>1173734 Чел, ты сам читаешь что кидаешь? Тебе чётко написано что просто lr разный делают у А и Б матриц. У них классическая лора, с нулями в Б-матрице, в их коде они просто домножают lr у неё на коэффициент. В peft давным давно одной строчкой кода такое делали.
>>1173756 >Тебе чётко написано что просто lr разный делают у А и Б матриц. Так я и говорил изначально. >У них классическая лора, с нулями в Б-матрице Да какая разница, это другая мысоль >В peft давным давно одной строчкой кода такое делали. Круто, но в ликорис ток щас добавили
>>1172426 Ну например, я хочу получить ответ на вопрос - почему понь хорошо стабилизируется лорами? Должна же быть какая-то физика этого процесса.
Вот для клипскипа я объяснение нашел, в чем была причина, а была она в том что из за низкой точности проебалось обучение нормализации в последнем слое клипа. (Это еще к тому нахуя смотреть на градиенты внутри, если бы смотрели, это отлавливается с одного взгляда на графики. Ну ток их еще надо накодить чтобы собирались нужные метрики...) И отрезать портящий масштаб вложений слой оказалось лучше чем с ним. Не думаю даже, что это было сознательно сделано, ибо сознательно там скорее ручками можно было поправить и ничего не резать. Вот так непонятное шаманство было полностью объяснено. И таких вещей еще дохуя можно найти.
>>1172894 Рекомендуют для B ставить в 16 раз больше скорость. А я вам скажу что там еще и беты должны быть сильно другие скорее всего. Да и соотношение наверное должно определяться не константой, а зависеть от размеров матричек, как я уже предполагал в дискуссии выше...
>>1173407 В любом случае тут дело в соотношении, чтобы матрицы учились одинаково, и общий лр ты подбираешь отдельно всегда. Да и сам лр как бы не обязан всю матрицу в плюс тянуть, так что скорее всего это бред. Первая матрица это тоже множитель вообще то. А от перестановки множителей результат не меняется. Ну в матрицах это не так, но касательно амплитуд воздействия примерно так.
>>1173871 > тут дело в соотношении Только вот это применимо только к трансформерам, где блоки имеют одинаковый размер. В UNET все слои разного размера, от соотношений смысла мало, оно изначально очень неравномерно тренится.
>>1173871 > почему понь хорошо стабилизируется лорами Потому что в базе понь - отрыжка лошади, нужно буквально над сервером стоять и крутить хуем как Пистолетов, постукивая им по A100, чтобы такое получилось. Там "хорошо" все, от треша из очень разнородного датасета, проходя через кривые капшны к картинкам, заканчивая плохими гиперпараметрами и проблемами с планировщиком шума, из-за чего оно все желто-коричневое. Для понимания уровня модели - там по дефолту малый клип почти не работает, можно его вообще ампутировать или брать стейты с первого слоя - все равно какая-то картинка будет получаться. Всякие стилелоры и подобное сами по себе сужают выход и подстраивают его под определенную форму. В пони это тоже срабатывает, но из-за того, насколько оно страшное в базе, эффект наиболее нагляден.
> а была она в том что из за низкой точности проебалось обучение нормализации в последнем слое клипа По неподтвержденной инфе они это открыли, когда пытались оформить претрейн полного клипа. По дефолту с adamw и без постепенной разморозки он даже в fp32 норовит умереть, спасает плавная разморозка и тонкая подстройка гиперпараметров, или другие оптимайзеры. Врядли они с этим сильно разбирались, а просто сделали такое решение, которое вполне работает. Это уже потом стало ясно что те в составе sd без проблем тренится даже в режиме со смешанной точностью. > Не думаю даже, что это было сознательно сделано Смотря на новелов, относительный успех 1й модели, провал второй, вымученная 3я с затратами компьюта больше чем на оригинальную sdxl, противоречивая 4я - ну хуй знает насколько там светила собрались. К тому же когда задача - сделать, а не исследовать, вполне нормально выбирать какие-то рабочие решения.
>>1173871 > Вот для клипскипа я объяснение нашел, в чем была причина, а была она в том что из за низкой точности проебалось обучение нормализации в последнем слое клипа Но они его даже не тренили, выложенный чекпоинт с барского плеча от них, около года назад, не содержит ничего кроме их юнета и вае, которое они тоже тренили и обосрались с нанами https://huggingface.co/NovelAI/nai-anime-v1-full/tree/main
А есть какая-нибудь мелкая пиздатая диффузионка, любая в принципе, которую реально с нуля обучать? Можно конечно попытаться взять спидран nano-gpt и переделать его в диффузию, но кажется я немного охуею этим заниматься. Или стоит взять удачную по архитектуре и эффективности готовую диффузионку со всем кодом, и заскейлить ее раз в 100-10?
>>1177666 SD 1.5 на домашних машинах тюнили. И на единственной A100 тоже. Технически наверно можно и с нуля обучить, просто очень долго будет. И непонятно, зачем и кому это надо. Лучше чем есть вряд ли получится, а для большинства прикладных задач файнтюн все-таки дешевле, да и удобнее.
>>1177983 Мне не для картинок модель нужна. Вопрос наверное так правильнее задать: есть ли какая-нибудь крутая любая диффузионная модель, чтоб там оптимизированная архитектура, всякая такая хуйня типа MoE и был код для обучения? Может что-то вышло интересное для звука там, что стоит заценить, либо эффективные vae тоже интересны. Ее в любом случае придется переделывать под задачу, обучать с нуля, и даже обучать свой vae с нуля. Задача довольно сложная, и вероятно не получится взять совсем маленькую модель и попробовать. Не заведется. Примерно похожую задачу решали на примерно 0.5б диффузионке. Время на тренировку порядка недели-двух на нескольких условных 3090. Только самой модели нет и кода, так что подробности неизвестны. И это все без тестов, чисто время если ты все правильно настроил, 1 запуск фулл тренировки. Под мою задачу надо рассчитывать еще и х10-х1000 сверху, может потребоваться много проходов (а-ля RL или нагенерить синтетики). В принципе даже материалы по vae для диффузионок больше интересны, ибо диффузию то понятно как учить, а про vae я ничего не знаю, как их вообще учат и где посмотреть пайплайн от которого можно отталкиваться.
Я много раз топил за маски лосса (и всем похуй), но что если вы хотите закрыть маской 90% картинки, или вообще 99%? Есть подозрение, что когда лосс настолько порезан, то обучение будет идти плохо, и его качество будет намного ниже. В модели слои работают с разными уровнями семантики, и есть большая вероятность, что на самом деле мы хотели бы перекрыть маской доступ к информации для отдельных слоев, а не всей модели. Либо же для отдельных блоков и токенов. А остальные слои пускай продолжают учиться базовому денойзу. Есть метод, который позволяет пустить поток градиентов от любой ограниченной области изображения в любой отдельный слой, либо только в юнет/тэ, либо вообще загнать в отдельный токен, по пути назначая пропорции для каждого слоя, на которые выделенная область будет влиять (имеется ввиду, что можно использовать маску не как маску, а как разметку для сложных новых токенов/эмбеддингов, чтобы только в них загонялась инфа от маски). Этот метод требует дополнительного шага вычисления градиента (в обратном проходе) для каждой отдельной области маски. (1 маска = +1 шаг, 2 = +2). Это при условии, что влияние маски проходит сквозь модель. Например если маска затрагивает только последние слои, либо доходит до середины, а потом градиент либо сливается, либо остается только основной поток, то можно сэкономить на вычислениях. Если мы используем fused backward pass, то накладных расходов по памяти практически не возникает. Иначе - фактически генерируется удвоенный/утроенный... объем градиентов, то есть затраты примерно половинка от увеличения батча, так как активации у нас те же самые.
Ну и конечно же готовой реализации этого алгоритма нет, и вам придется сделать ее самостоятельно)) Выглядеть это будет как батч, только используются одни активации, вычисление градиента для первого элемента батча - лосс вокруг маски, для второго сама маска... Вычислили градиенты - и суммируем их с установленным коэффициентом для каждого слоя. Дальше обычный шаг обновления весов. Вроде ничего особенного.
>>1186076 Реальный ландшафт сети на выпуклые функции не похож и на пик 1 тоже, он намного сложнее. Более того, он постоянно меняется. Я не знаю, вводят ли в твоих пиках стохастику искусственно, но даже если вводят, это все равно не то. Надеюсь ты понимаешь чем отличается стохастический градиентный спуск от не стохастического, и что второй не лучше первого. Точнее, что есть некий трейд-офф между ними, и что он сильно склоняется в сторону первого даже если мы не берем в расчет вычислительную стоимость.