Forwarded from Tensor Banana
Лора для русского текста на картинке для Flux
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
"А": "A", "Б": "ß", "В": "B", "Г": "Î", "Д": "ă", "Е": "E", "Ё": "É", "Ж": "ş",
"З": "3", "И": "ù", "Й": "ü", "К": "K", "Л": "â", "М": "M", "Н": "H", "О": "O",
"П": "á", "Р": "P", "С": "C", "Т": "T", "У": "Y", "Ф": "ö", "Х": "X", "Ц": "Ü",
"Ч": "4", "Ш": "##", "Щ": "!!!", "Ъ": "ț", "Ы": "ä", "Ь": "ţ", "Э": "ó",
"Ю": "ô", "Я": "®"
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Forwarded from Инженерообязанный🫡 | Блог Дата Инженера
Чет затянул я однако с 5 частью, но вот и она.
Тут рассматриваются достаточно простые вопросы, поэтому не затягивал. Ну в общем и целом по SQL вышло 5 частей, теперь вы знаете большинство возможных вопросов собеседований. У вас обязательно всё получится.
До Нового года у меня в планах выпустить, коротенькое видео о том, как я из военного стал IT-специалистом и что именно сподвигло меня это сделать. И если я к концу года наберу 500 подписчиков то проведу стрим, где отвечу на ваши вопросы и расскажу, как я совмещал работу, учебу и семью, почему я решил завести блог и многое другое.
После Нового года я выпущу подобные циклы видео по вопросам связанные с внутрянкой баз данных и с архитектурой хранилищ данных. Так что не теряйтесь. Все будет четко и все пройдут собеседования!
Не забывайте и про другие части
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Топ вопросов на собеседовании по SQL - WHERE, HAVING, QUALIFY; подзапросы и CTE; Сочетания запросов
Данное видео позволит вам понять какие вопросы задаются на собеседовании и то что его нечего бояться. Я сам лично прошел уже более 30 собеседований на вакансию "Инженер данных" и знаю о чём говорю. Если хочешь обсудить цикл прохождения собеседований залетай…
Forwarded from Love. Death. Transformers.
This media is not supported in your browser
VIEW IN TELEGRAM
Самый красивый блог чтобы разобраться с nD parallelism, a ещё внутри интерактивное демо!
И это первая доходчивая визуализация на моей памяти
main-horse.github.io/posts/visualizing-6d/
И это первая доходчивая визуализация на моей памяти
main-horse.github.io/posts/visualizing-6d/
Forwarded from Love. Death. Transformers.
This media is not supported in your browser
VIEW IN TELEGRAM
Новая гугловская veo2 первая модель прошедшая тест на гимнастику. Выглядит очень сильно, сильно лучше всего открытого и закрытого.
Работает с американского VPN.
Работает с американского VPN.
Forwarded from Записки из горящего дома (Anastasia Abrashitova)
А НУ ОТДАЙ
Волею судеб в последнее время часто рассказываю про смену тимлида в команде. То на Тимлидконфе (ждете запись? я тоже!!), то своим ребятам.
Недавно уходящий вдаль тимлид спросил у меня чек-лист, что передавать при уходе. Поделюсь им и с вами:
Про каждого из людей в команде
◻️Что человек регулярно делает в проекте, какие задачи решал, что умеет делать хорошо
◻️Какие задачи нравятся, а каких хотелось бы избежать
◻️Темперамент, мотивация, подходящий стиль управления
◻️Планы на развитие и карьеру, предыдущие договоренности
◻️Известные слабые места и сложности
Про проект
◻️Что проект делает и как он устроен (обзорно)
◻️Кто стейкхолдеры проекта и чего они от него ждут
◻️Формальные обязательства: цели, роадмап, KPI, метрики, показатели
◻️Обещания стейкхолдерам и пользователям
◻️Какие есть известные проблемы и риски
◻️Текущее видение краткосрочного и долгосрочного развития продукта
Про себя
◻️Что ты делал в проекте с разной регулярностью
◻️Какими уникальными знаниями по проекту ты обладаешь
◻️Доски, тикеты и прочая бухгалтерия, желательно приведенная в порядок
◻️Будешь ли ты готов отвечать на вопросы по проекту после ухода, как долго и в каком формате
Еще раз про обещания
◻️Публичные
◻️Внутри команды
◻️Смежникам
◻️Руководителям
◻️Стейкхолдерам
Можно дополнять!
#тимлид
Волею судеб в последнее время часто рассказываю про смену тимлида в команде. То на Тимлидконфе (ждете запись? я тоже!!), то своим ребятам.
Недавно уходящий вдаль тимлид спросил у меня чек-лист, что передавать при уходе. Поделюсь им и с вами:
Про каждого из людей в команде
◻️Что человек регулярно делает в проекте, какие задачи решал, что умеет делать хорошо
◻️Какие задачи нравятся, а каких хотелось бы избежать
◻️Темперамент, мотивация, подходящий стиль управления
◻️Планы на развитие и карьеру, предыдущие договоренности
◻️Известные слабые места и сложности
Про проект
◻️Что проект делает и как он устроен (обзорно)
◻️Кто стейкхолдеры проекта и чего они от него ждут
◻️Формальные обязательства: цели, роадмап, KPI, метрики, показатели
◻️Обещания стейкхолдерам и пользователям
◻️Какие есть известные проблемы и риски
◻️Текущее видение краткосрочного и долгосрочного развития продукта
Про себя
◻️Что ты делал в проекте с разной регулярностью
◻️Какими уникальными знаниями по проекту ты обладаешь
◻️Доски, тикеты и прочая бухгалтерия, желательно приведенная в порядок
◻️Будешь ли ты готов отвечать на вопросы по проекту после ухода, как долго и в каком формате
Еще раз про обещания
◻️Публичные
◻️Внутри команды
◻️Смежникам
◻️Руководителям
◻️Стейкхолдерам
Можно дополнять!
#тимлид
Forwarded from Concise Research (Sergey Kastryulin)
Давайте поговорим про GAN.
В последнее время принято друг за другом повторять: GAN — парадигма прошлого, диффузия и авторегрессия рулят. Тем не менее, даже сейчас, не смотря на доминирование диффузии в text-to-image, GAN находят применение в Super Resolution и обучениях VAE, а также используются в методах дистилляции (ADD) и альтернативных архитектурах диффузии (PaGoDa). При этом, GAN имеют очевидные проблемы. Работы ниже конректизируют проблемы и предлагают способы их решения.
Towards a Better Global Loss Landscape of GANs
[NeurIPS 2020, код/веса]
Авторы выделяют две основные проблемы при обучении GAN:
1. Mode collapse —падение разнообразия генераций)
2. Divergence — расхождение процесса обучения
Для этого проводят анализ поверхности лоссов наиболее популярных вариантов GAN.
Предлагается поделить все GAN на два семейства по типу используемых лосс функций:
1. Separable-GAN — почти все популярные GAN, где
2. Relativistic-GAN — модели, в которых
Авторы показывают, что эта разница принципиальна. Separable-GAN работает в предположении, что все real и fake данные можно разделить одной границей. Тогда задачей
The GAN is dead; long live the GAN!
A Modern Baseline GAN
[NeurIPS 2024, код]
Всё сказанное выше правда, все минимумы - глобальные, вот только никто не сказал, что градиентный спуск может легко найти их. На практике, RpGAN без доп регуляризаций не всегда сходится.
Вклад этой работы в том что авторы:
1️⃣ Анализируют то какие именно регуляризации полезны для RpGAN, получается, что это комбинация R1 + R2 (gradient penalty для
2️⃣ Обнуляют все трюки из StyleGAN2, после чего заново подбирают и аблейтят архитектуру
На выходе получают модель с ResNeXt-ify архитектурой для
Итог
Очень нравятся работы про раздебаг и упрощение систем, когда вместо yet another заплатки находят и устраняют проблему. Переносимость результатов на смежные задачи и бОльшие масштабы требует доп. проверки.
В последнее время принято друг за другом повторять: GAN — парадигма прошлого, диффузия и авторегрессия рулят. Тем не менее, даже сейчас, не смотря на доминирование диффузии в text-to-image, GAN находят применение в Super Resolution и обучениях VAE, а также используются в методах дистилляции (ADD) и альтернативных архитектурах диффузии (PaGoDa). При этом, GAN имеют очевидные проблемы. Работы ниже конректизируют проблемы и предлагают способы их решения.
Towards a Better Global Loss Landscape of GANs
[NeurIPS 2020, код/веса]
Авторы выделяют две основные проблемы при обучении GAN:
1. Mode collapse —падение разнообразия генераций)
2. Divergence — расхождение процесса обучения
Для этого проводят анализ поверхности лоссов наиболее популярных вариантов GAN.
Предлагается поделить все GAN на два семейства по типу используемых лосс функций:
1. Separable-GAN — почти все популярные GAN, где
D независимо оценивает правильность real/fake примеров. Сюда относят классические JS-GAN, W-GAN2. Relativistic-GAN — модели, в которых
D оценивает реальность fake примера относительно соответствующего ему real примера. Основной пример - RpGAN.Авторы показывают, что эта разница принципиальна. Separable-GAN работает в предположении, что все real и fake данные можно разделить одной границей. Тогда задачей
G становится минимальный перенос fake примеров за эту границу. Таких решений экспоненциально много, многие из них вырождены, что и приводит к проблемам. В то же время, авторы показывают, что обучение Relativistic-GAN такой проблемой не обладает, а каждый минимум является глобальным.The GAN is dead; long live the GAN!
A Modern Baseline GAN
[NeurIPS 2024, код]
Всё сказанное выше правда, все минимумы - глобальные, вот только никто не сказал, что градиентный спуск может легко найти их. На практике, RpGAN без доп регуляризаций не всегда сходится.
Вклад этой работы в том что авторы:
1️⃣ Анализируют то какие именно регуляризации полезны для RpGAN, получается, что это комбинация R1 + R2 (gradient penalty для
D и G), называют модель R3GAN2️⃣ Обнуляют все трюки из StyleGAN2, после чего заново подбирают и аблейтят архитектуру
На выходе получают модель с ResNeXt-ify архитектурой для
G и D и отстутствием каких-либо трюков кроме RpGAN + R1 + R2 лосса. Финальная версия улучшает FID на FFHQ 256 c 7.52 до 7.05 при сохранении размеров G и D.Итог
Очень нравятся работы про раздебаг и упрощение систем, когда вместо yet another заплатки находят и устраняют проблему. Переносимость результатов на смежные задачи и бОльшие масштабы требует доп. проверки.
Forwarded from КиберОлег 🦄🤖🙌
Офигеть, мой друг и бывший коллега Саша Джумурат выложил топовый курс <создание ML продуктов>
🤯
https://m.youtube.com/playlist?list=PLkMuRSRMaoRv6Vv6DNrb8Gt1yJT96YGfS
🤯
https://m.youtube.com/playlist?list=PLkMuRSRMaoRv6Vv6DNrb8Gt1yJT96YGfS
Forwarded from Заскуль питона (Data Science)
Подглядывание в 🆎 тестах. Я ошибся, я могу один раз ошибиться?
Всем привет! В этом посте я хочу затронуть одну из базовых проблем, с которыми сталкивалось большинство людей - это проблема подглядывания.
В чем основная суть?
Предположим, мы запустили эксперимент, который должен идти 14 дней (так мы определили по дизайну). Возьмем для примера базовый t-test для двух выборок.
Вдруг мы решили посмотреть на результаты, видим значимое изменение. По сути (если мы знаем формулу для t-test'а или другого статистического критерия), накопительно на каждый день можем посчитать статистику и увидеть, что, например, в 4 день (ладно-ладно, в 7), мы увидели значимое изменение. Пришла в головугениальная мысль отрубить тест и экстраполировать выводы, но так, очевидно делать нельзя, и вот почему:
1. Мы рассчитывали сроки эксперимента в зависимости от трафика. Чем меньше пользователей, тем сильнее шум.
2. Доверительный интервал получается весьма широким, мы можем не до конца быть уверенными в эффекте (та же история может случиться и в обратную сторону, p-value от статистики (например, разницы средних) может "отскочить" от промежутка (0, alpha). Если бы мы подсмотрели, мы сделали неправильное решение.
3. На симуляциях мы повышаем ошибку первого рода (FPR) достаточно сильно. Подглядывание даже может имитировать подбрасывание монетки (по факту, мы проверяем несколько гипотез, что за 1, 2, 3, ... n день средние различаются, тем самым мы рискуем ошибиться. Подробнее можно посмотреть тут
Что можно посмотреть по этому поводу?
1. Статья от GoPractice..
2. Видео от Анатолия Карпова.
3. Пост от ProductSense на Facebook
Про это очень много есть статей + давно было интересно покопаться в проблеме подглядывания, например, ребята из Spotify использовали методы последовательного тестирования для досрочного принятия решения (чтобы не держать эксперимент какое-то время). История может быть актуальна, если мы хотим принимать правильные решения как можно чаще, а неправильные - сразу отрубать, чтобы не терять деньги во время теста. Также читал, что советуют обращаться к байесовскому тестированию, но давайте ко всему последовательно).
🐳 🐳 🐳 100 реакций на пост и разгоняем дальше 🐳 🐳 🐳
Всем привет! В этом посте я хочу затронуть одну из базовых проблем, с которыми сталкивалось большинство людей - это проблема подглядывания.
В чем основная суть?
Предположим, мы запустили эксперимент, который должен идти 14 дней (так мы определили по дизайну). Возьмем для примера базовый t-test для двух выборок.
Вдруг мы решили посмотреть на результаты, видим значимое изменение. По сути (если мы знаем формулу для t-test'а или другого статистического критерия), накопительно на каждый день можем посчитать статистику и увидеть, что, например, в 4 день (ладно-ладно, в 7), мы увидели значимое изменение. Пришла в голову
1. Мы рассчитывали сроки эксперимента в зависимости от трафика. Чем меньше пользователей, тем сильнее шум.
2. Доверительный интервал получается весьма широким, мы можем не до конца быть уверенными в эффекте (та же история может случиться и в обратную сторону, p-value от статистики (например, разницы средних) может "отскочить" от промежутка (0, alpha). Если бы мы подсмотрели, мы сделали неправильное решение.
3. На симуляциях мы повышаем ошибку первого рода (FPR) достаточно сильно. Подглядывание даже может имитировать подбрасывание монетки (по факту, мы проверяем несколько гипотез, что за 1, 2, 3, ... n день средние различаются, тем самым мы рискуем ошибиться. Подробнее можно посмотреть тут
Что можно посмотреть по этому поводу?
1. Статья от GoPractice..
2. Видео от Анатолия Карпова.
3. Пост от ProductSense на Facebook
Про это очень много есть статей + давно было интересно покопаться в проблеме подглядывания, например, ребята из Spotify использовали методы последовательного тестирования для досрочного принятия решения (чтобы не держать эксперимент какое-то время). История может быть актуальна, если мы хотим принимать правильные решения как можно чаще, а неправильные - сразу отрубать, чтобы не терять деньги во время теста. Также читал, что советуют обращаться к байесовскому тестированию, но давайте ко всему последовательно).
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 5 minutes of data
База для Data Engineer
Сегодня поговорим о том, какие скиллы нужно развивать DE. 🚀
В Data Engineering обычно приходят двумя путями:
- ▫️ Backend разработчики с опытом
- ▫️ Аналитики данных и специалисты смежных областей
Если для первых переход относительно простой, то вторым придется серьезно подтянуть техническую часть.
🎯 Вот топ-5 ресурсов, которые помогут вам освоить необходимые навыки:
1️⃣ Основы Linux
Курс "Введение в Linux" - must have для работы с терминалом
2️⃣ Базы данных
Fundamentals of Database Engineering - лучший курс для понимания СУБД
3️⃣ Python
Два отличных курса от Сергея Балакирева:
• Базовый Python
• Python ООP
4️⃣ Оркестрация
Выбирайте, что больше нравится:
• Airflow Academy
• Dagster University
5️⃣ Практика
DE Zoomcamp - бесплатный курс с реальными проектами
Я лично прошел все перечисленные курсы.
Это не просто список рекомендаций - это проверенный путь, который помог мне стать Data Engineer'ом.
Путь Data Engineer - это увлекательное путешествие, которое требует постоянного обучения и практики.
Начните с основ, постепенно наращивайте свои навыки, и не забывайте практиковаться на реальных проектах.
Помните, что технологии постоянно развиваются, поэтому важно следить за новыми инструментами и подходами в области Data Engineering.
Сегодня поговорим о том, какие скиллы нужно развивать DE. 🚀
В Data Engineering обычно приходят двумя путями:
- ▫️ Backend разработчики с опытом
- ▫️ Аналитики данных и специалисты смежных областей
Если для первых переход относительно простой, то вторым придется серьезно подтянуть техническую часть.
🎯 Вот топ-5 ресурсов, которые помогут вам освоить необходимые навыки:
1️⃣ Основы Linux
Курс "Введение в Linux" - must have для работы с терминалом
2️⃣ Базы данных
Fundamentals of Database Engineering - лучший курс для понимания СУБД
3️⃣ Python
Два отличных курса от Сергея Балакирева:
• Базовый Python
• Python ООP
4️⃣ Оркестрация
Выбирайте, что больше нравится:
• Airflow Academy
• Dagster University
5️⃣ Практика
DE Zoomcamp - бесплатный курс с реальными проектами
Я лично прошел все перечисленные курсы.
Это не просто список рекомендаций - это проверенный путь, который помог мне стать Data Engineer'ом.
Путь Data Engineer - это увлекательное путешествие, которое требует постоянного обучения и практики.
Начните с основ, постепенно наращивайте свои навыки, и не забывайте практиковаться на реальных проектах.
Помните, что технологии постоянно развиваются, поэтому важно следить за новыми инструментами и подходами в области Data Engineering.
Stepik: online education
Введение в Linux
Курс знакомит слушателей с операционной системой Linux и основами её использования. В рамках курса мы покажем как установить Linux на ваш компьютер, расскажем о программах в нем, поработаем в терминале, зайдем на удаленный сервер и рассмотрим еще несколько…