Телеграм

DeepSchool

@deep_school IT и нейросети
РКН: проверяем Не иноагент
Это канал школы deepschool.ru. Здесь мы будем:
- напоминать вам теорию ML/DL в виде коротких постов,
- задавать вопросы с собеседований,
- рассказывать про полезные фреймворки
- и делиться советами, которые помогут вам в работе.

@deepschool_support

Статистика обновлена 14.11.2026 в 20:11 · 3 просмотра страницы · Хотите больше просмотров?

Подписчики10 736 +1 за 1 день
Охват поста2 532 24% от подписчиков
ERR за месяц23,58%
ERR за 24 часа6,68%

Динамика за 30 дней

Рекламные публикации

Рекламных публикаций не найденоЗа последнее время мы не нашли на площадке ни одного рекламного поста.

Последние публикации

Все посты канала →
DeepSchool tg10 тыс. подписчиков
Открыть пост ↗
Что происходит с запросами, когда сервис рестартится?

Представим, что мы разрабатываем сервис pdf-to-text. Нам загрузили документ на десять страниц. Девять из них обработаны, осталась последняя. И тут сервис получает сигнал об остановке (SIGTERM): приехало обновление или понадобилось уменьшить количество подов.

Если завершение процесса не обработано и приложение сразу остановится, клиент получит ошибку. И совсем не важно, что мы уже почти всё сделали. В идеале нам бы хотелось получить до остановки сервиса возможность дообработать последнюю, десятую страницу и отдать ответ клиенту.

Здесь как раз и нужно корректное завершение работы, или graceful shutdown. Сервис перестаёт принимать новые запросы, а уже принятым даёт время завершиться. В нашем случае приложение дообрабатывает документ и отправляет ответ клиенту.

Если используете FastAPI с Uvicorn, базовый механизм уже встроен. Uvicorn обрабатывает SIGTERM, закрывает сокет для новых подключений и ждёт завершения текущих запросов. Затем приложение выполняет cleanup, например, закрывает соединения с внешними сервисами. В FastAPI эту логику можно разместить в lifespan:

from contextlib import asynccontextmanager

from fastapi import FastAPI


@asynccontextmanager
async def lifespan(app: FastAPI):
print("Запуск приложения")
yield
# Закрываем соединения и освобождаем ресурсы.
print("Завершение работы приложения")


app = FastAPI(lifespan=lifespan)


Таймауты

Ждать завершения запроса можно бесконечно, и по умолчанию Uvicorn именно так и делает. Поэтому ожидание стоит ограничить флагом — timeout-graceful-shutdown.

Снаружи тоже есть лимит. docker stop по умолчанию даёт контейнеру 10 секунд, Kubernetes — 30 (terminationGracePeriodSeconds). Если приложение не успеет завершить запросы и cleanup, придёт SIGKILL. Его перехватить нельзя, и процесс просто убьют. Поэтому таймаут Uvicorn вместе с cleanup должен укладываться в отведённое на остановку время.

А что с новыми запросами?

Пока один экземпляр дочитывает наш PDF, балансировщик должен направлять новые запросы на другие поды. В Kubernetes с этим есть свои нюансы: под может получить SIGTERM раньше, чем перестанет получать трафик. Обычно это решают небольшой паузой перед остановкой через preStop.
И если экземпляр всего один, на время рестарта простой неизбежен.

⚫️Graceful shutdown — лишь одна из деталей, о которых нужно помнить при деплое. На курсе DLOps проходим весь путь: от FastAPI и Docker до Kubernetes, Triton и мониторинга.

🪔 DeepSchool
👁 717 ❤ 5🔥 4🤩 4 ↻ 10 вчера в 13:13
DeepSchool tg10 тыс. подписчиков
Открыть пост ↗
Инвариантность в машинном обучении

При обучении нейросети распознавать котиков, товары в корзине или автомобильные детали мы хотим, чтобы она игнорировала минорные изменения (например, порядок товаров, ракурс или освещение). Другими словами, обладала инвариантностью.

✅Сегодня мы разберём несколько способов, с помощью которых можно добиться инвариантности, а также ответим на следующие вопросы:

— что такое инвариантность
— как заложить устойчивость к изменениям в структуре сети
— что такое DeepSets и как работать с множествами
— каким образом научить сеть игнорировать минорные особенности при обучении
— что представляют собой сиамские нейросети и Contrastive Loss
— как заставить модель «упаковать» похожие объекты рядом в пространстве эмбеддингов, если описать трансформацию сложно
— и в каких ещё постах нашего блога встречается идея инвариантности 😉

Читайте новую статью по ссылке! 👈🏼

А чтобы лучше разобраться в современных архитектурах и подходах к решению задач Computer Vision — приходите на курс CV Rocket. До 30 ноября действует скидка 20%.
👁 1.9 тыс. 🔥 13❤ 10👍 6 ↻ 46 6 ноября
DeepSchool tg10 тыс. подписчиков
Открыть пост ↗
⏰ Встречаемся через 3 часа

Сегодня на примере агента, который исправляет ошибку в репозитории, посчитаем, во что обходятся решения по работе с контекстом. Разберём, когда выгодно сжимать историю, выносить данные во внешнюю память или передавать задачу другому агенту. Обсудим, почему высокий cache hit rate не гарантирует экономии и как сравнивать архитектуры, если результаты разных запусков отличаются.

А также представим обновлённую программу курса LLM и подарим скидки участникам лекции 🎁

Регистрируйтесь в боте и приходите сегодня в 11:00 МСК!
👁 2.1 тыс. ❤ 7🔥 4👍 1 💬 3 ↻ 6 4 ноября