Я уже писал ранее, что в посоедний год большую часть моей работы составляет далеко не ресерч, то есть у меня нет необходимости постоянно мониторить каждую новую статью, ставить какие-то эксперименты и следить за лоссами. Все что я делаю, это заставляю модели работать в продакшене - и в конечном итоге зарабатывать деньги, желательно с высоким КПД.
В это входит и переписывание моделей на более быстрые фреймворки и профайлинг и прочее. И вот не так давно я реализовал для нашей системы стриминг для нашего TTS. То есть когда пользователь может получать кусочки сгенерированного аудио по ходу генерации, не дожидаясь генерации целой аудио дорожки.
Реализация просто конфетка, есть две модели, одна авторегрессивная и пораждает некоторые состояния, другая - декодер, который превращает эти состояния в аудио. Сам инференс разбит на потоки, в одном генерируются скрытые состояния, в другом декодер сидит и ждет пока заполнится буффер. Все аккуратно, красиво, синхронизация потоков работает четко не подкопаешься, но как всегда есть одно и очень важное "НО".
Помимо того, что этой системе нужно поддерживать realtime, то есть она должна генерировать аудио сегменты быстрее чем те длятся, чтобы у юзера небыло лагов-прерываний. С этим, к слову, у нас проблем нет.
Важна и вторая метрика TTFB - time to firs byte, по сути как быстро пользователь начнет получать ответ, сколько он должен ждать, чтобы получить первый чанк. В целом и обычный прогон сети можно назвать стримингом, просто чанк большой и ждать его долго, а хочется поменьше и побыстрее, желательно меньше секунды, а вообще хорошо за 300 мс.
Настраиваю систему, запускаю тесты и вижу - 4 секунды...
Ну это вообще никуда не годится, стриминг с ожиданием в 4 секунды это какой-то прикол.
Начал копать в чем дело. Копал я на самом деле долго, но вам разложу сразу все карты на стол.
Первое что я нашел -- warmup. Для декодера оказался кретически важен прогрев. То есть если вы прогоните какой-то тензор через декодер в первый раз у вас это займет 2.1s а в третий уже 700ms. Причем зависеть это будет от размера вашего тензора, для нового размера warmup придется делать еще раз, чтобы замер был честным. Честно говоря я не до конца понимаю с чем связан этот процесс, предполагаю что это либо подрузка либо компиляция специфичных размеров кернелов под ваши входные данные, но да, модельку надо прогревать, прямо как Ладу в зимнее утро.
Кстати для стриминга прогрев оказывается достаточно простым, ведь чанки стриминга всегда поступают одного размера.
Урок уяснили, прогрели модель перед тем как делать тест, смотрим снова на метрики а там... 1.4s
Опять первый чанк уходит медленно, а все остальные улетают за 700ms, в чем беда?
С этим багом я копался дольше всего ставя различные эксперименты. В итоге причина нашлась.
Оказалось, что поскольку и генератор и декодер, хоть сидели в разных тредах, но были приаттачены к одному куда стриму и одной гпушке. В итоге когда генератор сообщал декодеру, что вот пора, чанк готов. Декодер вот вот собирался слать свои инструции на карточку, как его тут же опережал генератор и спамил своими инструкциями. Декодеру приходилось ждать когда же там генератор изволит отдать ему ресурсы GPU, прежде чем он сможет обработать аудио и вернуть его пользователю.
Странным образом разделение моделей на разные CUDA Stream проблему не решили, это я еще выясняю с чем связано. Зато проблему решил магический sleep, а именно, когда генератор понимает, что у него готов первый чанк, он из благородных побуждений к декодеру решает немного вздремнуть и уступить ресурсы GPU декодеру, спит он не долго всего 500 ms, но этого хватает чтобы сбалансировать систему.
Как итог - TTFB = 700ms
Уменьшил lantency добавив sleep, вот за это мне и платят деньги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50🔥13❤🔥3
Потрясающе полезное видео вам на вечер субботы нашел.
Не благодарите
https://youtu.be/9EcexUTUrCQ?si=Md0omGJHziSbKN47
Не благодарите
https://youtu.be/9EcexUTUrCQ?si=Md0omGJHziSbKN47
YouTube
Добываю железо из реки, опираясь на знания из мода Terrafirmacraft
Я попробую выплавить железо из руды, найденной на дне русла реки! Как я искал руду, как строил сыродутный горн, и многое другое - смотрите в этом видео.
Основная цель этого эксперимента - определить, что за камни я обнаружил, и проверить технологию выплавки…
Основная цель этого эксперимента - определить, что за камни я обнаружил, и проверить технологию выплавки…
❤6👍1
STACK MORE LAYERS
Ну реально, я буквально на следующий день после этого поста нашел решение гораздо лучше чем просто вставить sleep, которое изначально являлось костылем. Потому что стоит вам сменить систему или GPU где задержка того или иного треда поменяется, как ваши sleep'ы летят в тар-тара-ры, так случилось и со мной на следующий день, когда я протестировал это решение не на A100, а на A10.
Пришлось все таки искать правильный подход.
И после некоторых поисков я таки откопал вот такую презентацию. Где буквально говорится, что не важно как много у вас стримов, в CUDA есть четкая установка: НИЧТО И НИКОГДА не может перекрывать Stream 0, то есть стандартный стрим. А это значит, что если у вас есть два потока, один идет на stream 0, а второй на custom stream, то они никогда не будут идти параллельно, такая уж условность заложена. То есть cuda 0 выступает как своеобразный GIL, который не даст вам сделать настоящий параллелизм.
Решение? Запускать обе модели в разных стримах, но чтобы ни один из них не был нулевым. И после этого все стало чики-пуки. То есть буквально как написано в презентации: CUDA operations must be in different, non-0, streams
А почему я лентяй? Да потому что не смотря, что я это нашел буквально на следующий день, писать пост мне было лень почти месяц.
Я там еще пару занятных штук откопал, кто знает, может нас ждет новогодний пост!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍8😁4🔥3🤔3👌1
Я давно слышал про такую штуку, но сейчас впервые попробовал. Вход через "pass keys", вот как гитхаб описывает, что это такое
Passkeys are a password replacement that validates your identity using touch, facial recognition, a device password, or a PIN..В общем секьюрити настройках Github можно добавить этот passkey и тогда на сайт можно будет заходить только прислонив палец.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤯3
Шансов не много, но что-то сделать можно:
https://t.me/Duntsova
https://t.me/Duntsova
Telegram
Екатерина Дунцова
@ - Я за свободный интернет!
Кандидат в президенты, за мирную демократическую Россию!
Для СМИ: @duntsova_shtab_bot
Кандидат в президенты, за мирную демократическую Россию!
Для СМИ: @duntsova_shtab_bot
👍29👎26🤡4😁1💩1
Общался вчера с HR одной крупной компании, меня спросили про мою локацию.
На что мне задали потрясающий вопрос:
Im living in the Georgia now but moving to UK soon.На что мне задали потрясающий вопрос:
Рассматриваете ли вы возможность вернуться в США?😁83🌚2🤔1
Forwarded from Надеждин@
Где можно поставить подпись? 🇷🇺✌🏻
Ниже — обновленный список регионов, в которых вы можете поставить подпись.
Узнать контакты сборщиков вы можете в телеграм-каналах или на сайте:
https://nadezhdin2024.ru/regions
Используйте «Надеждин Бот», чтобы получить адрес ближайшей точки сбора подписей:
@nadezhdin2024_bot
Республика Алтай
Архангельская область
Республика Башкортостан
Белгородская область
Республика Бурятия
Владимирская область
Волгоградская область
Вологодская область
Воронежская область
Забайкальский край
Ивановская область
Республика Ингушетия
Иркутская область
Калининградская область
Калужская область
Республика Карелия
Кемеровская область
Кировская область
Краснодарский край
Республика Коми
Костромская область
Курганская область
Курская область
Ленинградская область
Липецкая область
Республика Марий Эл
Москва
Московская область
Нижегородская область
Новгородская область
Новосибирская область
Омская область
Орловская область
Ростовская область
Рязанская область
Санкт-Петербург
Самарская область
Саратовская область
Свердловская область
Ставропольский край
Пензенская область
Пермский край
Псковская область
Приморский край
Тамбовская область
Республика Татарстан
Тверская область
Тульская область
Томская область
Реуспублика Тыва
Тюменская область
Ульяновская область
Хабаровский край
Челябинская область
Республика Чувашия
Ярославская область
Собрать идеальные 100 000 подписей мы сможем только с вашей помощью.
Мой телеграм-канал: https://t.me/BorisNadezhdin
Ниже — обновленный список регионов, в которых вы можете поставить подпись.
Узнать контакты сборщиков вы можете в телеграм-каналах или на сайте:
https://nadezhdin2024.ru/regions
Используйте «Надеждин Бот», чтобы получить адрес ближайшей точки сбора подписей:
@nadezhdin2024_bot
Республика Алтай
Архангельская область
Республика Башкортостан
Белгородская область
Республика Бурятия
Владимирская область
Волгоградская область
Вологодская область
Воронежская область
Забайкальский край
Ивановская область
Республика Ингушетия
Иркутская область
Калининградская область
Калужская область
Республика Карелия
Кемеровская область
Кировская область
Краснодарский край
Республика Коми
Костромская область
Курганская область
Курская область
Ленинградская область
Липецкая область
Республика Марий Эл
Москва
Московская область
Нижегородская область
Новгородская область
Новосибирская область
Омская область
Орловская область
Ростовская область
Рязанская область
Санкт-Петербург
Самарская область
Саратовская область
Свердловская область
Ставропольский край
Пензенская область
Пермский край
Псковская область
Приморский край
Тамбовская область
Республика Татарстан
Тверская область
Тульская область
Томская область
Реуспублика Тыва
Тюменская область
Ульяновская область
Хабаровский край
Челябинская область
Республика Чувашия
Ярославская область
Собрать идеальные 100 000 подписей мы сможем только с вашей помощью.
Мой телеграм-канал: https://t.me/BorisNadezhdin
👍20💩19🤡3
Попытка номер два. Сходите поставьте подпись, это не сложно.
Оказывается в Тбилиси тоже есть точка сбора подписей, сегодня тоже пойду поставлю
Оказывается в Тбилиси тоже есть точка сбора подписей, сегодня тоже пойду поставлю
👍28💩19🤣5❤🔥2👎2🤡2💅2🌚1
Друзья, извиняюсь что приходится быть агитатором, но такая уж ситуация, что болит душа за страну.
Не обижусь если проигнорируете, но очень порадуюсь, если вы расскажете вашим друзьям в США, Турции, Германии, Грузии, Франции, Армении и Тайланде, что у них тоже есть возможность поставить подпись за выдвижение. Особенно важны люди с НЕ МОСКОВСКОЙ пропиской.
https://nadezhdin2024.ru/addresses
Тайланд собирается отдельно: https://t.me/ZOV_OP/4210
Спасибо за внимание.
P.S. За неделю собрано больше половины подписей
Не обижусь если проигнорируете, но очень порадуюсь, если вы расскажете вашим друзьям в США, Турции, Германии, Грузии, Франции, Армении и Тайланде, что у них тоже есть возможность поставить подпись за выдвижение. Особенно важны люди с НЕ МОСКОВСКОЙ пропиской.
https://nadezhdin2024.ru/addresses
Тайланд собирается отдельно: https://t.me/ZOV_OP/4210
Спасибо за внимание.
P.S. За неделю собрано больше половины подписей
👍33💩24❤7🤮4🤬2🤡2👎1
Forwarded from Надеждин@
Media is too big
VIEW IN TELEGRAM
Мы открыли точку сбора в Белграде ✌🏻
И там уже собрались наши сторонники! ❤️
Друзья, мы очень ждем подписантов с региональной регистрацией. Обязательно приходите с внутренним российским паспортом.
Поставить подпись в Белграде можно по адресу:
Белград, Маршала Бирјузова 9
Сегодня точка работает до 18:00, в остальные дни — с 14:00 до 22:00.
Список всех заграничных точек сбора мы опубликуем в ближайшее время.
И там уже собрались наши сторонники! ❤️
Друзья, мы очень ждем подписантов с региональной регистрацией. Обязательно приходите с внутренним российским паспортом.
Поставить подпись в Белграде можно по адресу:
Белград, Маршала Бирјузова 9
Сегодня точка работает до 18:00, в остальные дни — с 14:00 до 22:00.
Список всех заграничных точек сбора мы опубликуем в ближайшее время.
💩20👍18🔥7🕊6🤡6
Forwarded from Love. Death. Transformers.
Разбираемся с cuda kernels без скуфизации.
Если вы когда то начинали разбираться с cuda kernels то знаете - чаще всего речь про голый C, без встройки кода в pytorch ради которого и имеет смысл что то делать(если вы ds)
Вот курс который я сам начал смотреть недавно, понятно и подробно от человека который pytorch на работе пишет.
канал
repo
Если вы когда то начинали разбираться с cuda kernels то знаете - чаще всего речь про голый C, без встройки кода в pytorch ради которого и имеет смысл что то делать(если вы ds)
Вот курс который я сам начал смотреть недавно, понятно и подробно от человека который pytorch на работе пишет.
канал
repo
❤5🔥3
Алексей Навальный без преувеличения важный для меня человек. Именно он заставил меня когда-то ещё школьника заинтересоваться политикой, понять как устроена жизнь в нашей стране, понять, что в ней происходит, почему так, а не иначе.
Причем произошло это в достаточно интересный период, Навального в основном знали в Москве и оппозиционных кругах, в Челябинске люди о нём в основном ничего не знали. Это было ещё до расследования о Димоне, но где-то после Чайки.
Я спрашивал у знакомых знает ли кто-то о таком человеке как «Навальный», мне лишь пожимали плечами - нет.
А я продолжал за ним следить, как неожиданно после расследования о Медведеве, он стал на слуху буквально у всех.
Скажу честно, на митинги тогда я не ходил, мне было около 15 и смелости не хватало, но приезжал на место и смотрел на них со стороны, как полиция оцепляет шествующих. Это необычное зрелище, и чтобы его увидеть приходилось сбегать с последнего урока который нам специально сверхурочно назначали, чтобы никто ни на какие митинги не ходил. Нас предостерегали, что это опасный человек, и ничего хорошего он не несет.
Так уже не в первый раз мое видение «хорошего» сломалось о видение хорошего старших поколений, тех, кто выступал для нас учителями.
Поэтому когда мне на почту пришло письмо о встрече кандидата в президенты Навального со сторонниками в Челябинске - я так же сбежал с уроков, чтобы увидеть его в живую.
Эта встреча важна для меня тем, что я увидел его в живую, вот он во весь свой почти двухметровый рост. Стоит перед мной, с ним можно поздороваться, пожать руку и сфотографироваться.
Такими и должны быть настоящие герои, открытыми, добрыми, ироничными и не бояться своих фанатов.
А тех, кто сидит за третьим кругом охраны, под чутким взором снайперов, тот к кому подойти можно, только предварительно пройдя все уровни проверок - нет.
Таких нельзя назвать героями.
Герои храбрые, и сильные, а не жалкие и трусливые.
Будьте маленькими героями, приходите на выборы15 17 Марта, голосуйте как велит сердце, можете проголосовать за кого угодно, или испортить бюллетень, написать имя Навального, что хотите, главное не за Путина.
Приходите в 12 дня на избирательный участок, так хотел сам Алексей.
Чтобы проголосовать не по прописке или за границей, зайдите на гос-услуги и в поиске выберите «смена избирательного участка». С собой нужен действующий паспорт гражданина РФ
Причем произошло это в достаточно интересный период, Навального в основном знали в Москве и оппозиционных кругах, в Челябинске люди о нём в основном ничего не знали. Это было ещё до расследования о Димоне, но где-то после Чайки.
Я спрашивал у знакомых знает ли кто-то о таком человеке как «Навальный», мне лишь пожимали плечами - нет.
А я продолжал за ним следить, как неожиданно после расследования о Медведеве, он стал на слуху буквально у всех.
Скажу честно, на митинги тогда я не ходил, мне было около 15 и смелости не хватало, но приезжал на место и смотрел на них со стороны, как полиция оцепляет шествующих. Это необычное зрелище, и чтобы его увидеть приходилось сбегать с последнего урока который нам специально сверхурочно назначали, чтобы никто ни на какие митинги не ходил. Нас предостерегали, что это опасный человек, и ничего хорошего он не несет.
Так уже не в первый раз мое видение «хорошего» сломалось о видение хорошего старших поколений, тех, кто выступал для нас учителями.
Поэтому когда мне на почту пришло письмо о встрече кандидата в президенты Навального со сторонниками в Челябинске - я так же сбежал с уроков, чтобы увидеть его в живую.
Эта встреча важна для меня тем, что я увидел его в живую, вот он во весь свой почти двухметровый рост. Стоит перед мной, с ним можно поздороваться, пожать руку и сфотографироваться.
Такими и должны быть настоящие герои, открытыми, добрыми, ироничными и не бояться своих фанатов.
А тех, кто сидит за третьим кругом охраны, под чутким взором снайперов, тот к кому подойти можно, только предварительно пройдя все уровни проверок - нет.
Таких нельзя назвать героями.
Герои храбрые, и сильные, а не жалкие и трусливые.
Будьте маленькими героями, приходите на выборы
Приходите в 12 дня на избирательный участок, так хотел сам Алексей.
Чтобы проголосовать не по прописке или за границей, зайдите на гос-услуги и в поиске выберите «смена избирательного участка». С собой нужен действующий паспорт гражданина РФ
❤91💩20🤡14💔7👍3🤮3💘2
Стоит вспомнить, что этот канал, не смотря на все невзгоды, все ещё про технологии.
В нашу «редакцию» пришло письмо, от @kopyl с просьбой рассказать про его проект, рассказываем.
Генератор иконок для дизайнеров, как утверждает сам автор - SOTA
Скачать модельку тут: https://huggingface.co/kopyl/ui-icons-256
https://civitai.com/models/327499
В нашу «редакцию» пришло письмо, от @kopyl с просьбой рассказать про его проект, рассказываем.
Генератор иконок для дизайнеров, как утверждает сам автор - SOTA
Скачать модельку тут: https://huggingface.co/kopyl/ui-icons-256
https://civitai.com/models/327499
huggingface.co
kopyl/ui-icons-256 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
👍8👌3