DeepSchool
9.67K subscribers
74 photos
1 video
1 file
413 links
Это канал школы deepschool.ru. Здесь мы будем:
- напоминать вам теорию ML/DL в виде коротких постов,
- задавать вопросы с собеседований,
- рассказывать про полезные фреймворки
- и делиться советами, которые помогут вам в работе.

@deepschool_support
Download Telegram
model.onnx
1.1 KB
ONNX с секретом

Эта «модель» хранит в себе секрет: если в неё подать что-то очень определённое, то она ответит строчкой, которую ни с чем не перепутаешь.
Кто первый разгадает загадку модели и приложит секретную строчку в комментарии — получит пиццу 🍕

Ответы принимаются под этим постом до 3 августа 16:00 МСК. Потом мы выложим правильное решение.

Ждём ваши ответы в комментариях!👇
🔥19👍85🤔2
Решение загадки ONNX

Пришло время дать ответ на интерактив и наградить победителя!
Решение задачи мы уже опубликовали в нашем блоге. Читайте по ссылке!

Наш победитель, к которому отправится пицца:
🍕@zendeer

Спасибо всем, кто участвовал!
Пишите в комментариях, стоит ли проводить такие интерактивы чаще. 😄
1🔥198👏5😁1
Приходите на новый поток курса «Деплой DL-сервисов»

Многие DL-инженеры знают, как готовить модели: выбрать архитектуру, лосс, на какие гиперпараметры обращать внимание и т.д. Но малая часть использует инженерные практики при тренировке моделей или знает, как довести их до пользователей. Чтобы освоить эти инструменты, записывайтесь на «Деплой DL-сервисов»!

📆 Обучение начинается 28 августа!
А до 17 августа вы можете записаться в лист ожидания, чтобы раньше всех узнать подробности о курсе и получить скидку 17%

Изучайте подробности о программе и спикерах и записывайтесь на новый поток!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥96👍4🤝2😁1
YOLO history. Part 8

В предыдущей статье мы рассказали о том, как использовать вспомогательные модели для улучшения качества основной.
В новой статье разберём устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора.

Читайте новую статью по ссылке!
1🔥339👍9😁1
Диффузионные модели: пошаговый план изучения

Диффузионные модели, как и трансформеры, внесли весомый вклад в глубокое обучение и определили современное состояние ИИ. Они лежат в основе генерации изображений (Stable Diffusion, DALL·E), синтеза видео (Sora, Runway ML), дизайна молекул и даже управления роботами (Teslabot, 1X). Сегодня во многих областях от DL-инженеров всё чаще требуется глубинное понимание диффузионных моделей. Чтобы помочь детальнее разобраться в их устройстве, мы подготовили пошаговый план изучения, а также основные ресурсы.

План изучения

1. Основы теории вероятностей и статистики


Диффузионные модели, как и все генеративные модели, основаны на принципах теории вероятностей. Фундамент для их понимания — условные и маргинальные распределения, правила сложения и произведения, свойства нормального распределения, расстояние Кульбака-Лейблера, неравенство Йенсена.

Ресурсы: MML (главы 6.1-6.5); DLFC (глава 2); UDL (Appendix C), см. далее блок «Основные ресурсы».

2. Вариационные автоэнкодеры (VAE)

Диффузионные модели и VAE — вариационные подходы к генеративному моделированию. Оба используют evidence lower bound (ELBO) для получения обучаемой функции потерь. Поскольку VAE проще для понимания, рекомендуем изучить его перед переходом к диффузионным моделям.

Ресурсы: UDL (глава 17); DLFC (глава 19.2); ЯУМО (глава 8.2); Лекция Дмитрия Ветрова.

3. Denoising Diffusion Probabilistic Models (DDPM)

Переходим к изучению самих диффузионных моделей! Начните с основополагающей работы, которая впервые раскрыла потенциал диффузионных моделей, — DDPM.

Ресурсы: UDL (глава 18); DLFC (главы 20.1-20.3); ЯУМО (глава 8.5); Лекция Дмитрия Ветрова; Разбор статьи с кодом от Hugging Face.

4. Контролируемая генерация

Диффузионные модели выучивают полное распределение данных. Для направленной генерации используют classifier-free guidance и classifier guidance (они не меняют веса на этапе генерации, но требуют обучения модели с поддержкой таких режимов) или методы дообучения, как ControlNet и LoRA.

Ресурсы: DLFC (глава 20.4); ЯУМО (глава 8.5); CS492(D) (лекция 7).

5. Ускорение генерации

Основной недостаток DDPM — низкая скорость генерации. Для решения этой проблемы разработаны более эффективные методы: Denoising Diffusion Implicit Models (DDIM), стохастические диффузионные солверы и дистилляция.

Ресурсы: CS492(D) (лекции 5, 6, 14); Лекция Дмитрия Ветрова; Обзорная статья по быстрым диффузионным моделям.

6. Практическое программирование

Ничто не даёт такого понимания концепта в DL, как программирование. Поэтому для закрепления теории рекомендуем выполнить задания из курса CS492(D) и Diffusion Models Course от Hugging Face.

Основные ресурсы

- Mathematics for Machine Learning (MML)
- Understanding Deep Learning (UDL)
- Deep Learning Foundations and Concepts (DLFC)
- Учебник по машинному обучению от Яндекс (ЯУМО)
- Курс CS492(D): Diffusion Models and Their Applications

Автор: Шамиль Мамедов
🔥5317🤝5❤‍🔥3👍2😁1
VLM для детекции объектов на изображении

У традиционных детекторов есть серьёзное ограничение: набор классов определён обучающей выборкой (Closed-set Object Detection). В попытках обойти его, создали новый класс детекторов, Open Vocabulary Object Detection (OVOD), для детекции произвольных объектов. В новой статье мы привели обзор таких OVOD-моделей, основанных на Vision Language Model (VLM).

Из статьи вы узнаете:
- какие есть подходы для применения VLM к задаче Object Detection
- какие результаты сравнения моделей на бенчмарках для Closed-Set и Open Vocabulary детекций
- почему идеи CLIP всё ещё актуальны

Читайте новую статью по ссылке!
1🔥3212🤩10👍5😁3
DeepSchool Digest

Все материалы за последний месяц — коротко!

✔️ RAG — от первой версии к рабочему решению — пошагово разобрали каждый компонент RAG-системы, объяснили типичные ошибки и дали план действий по улучшению ванильной версии.

✔️ 3D CV, diffusion models и получение PhD | Подкаст «Под Капотом» c Олей Гребеньковой — поговорили с Олей Гребеньковой, спикером курса «3D CV» в DeepSchool.

✔️ Ускоряем LLM на раз, два, три — разобрали ключевые методы ускорения и обсудили, что действительно работает.

✔️ YOLO history. Part 8 — рассмотрели устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора.

✔️ Диффузионные модели: пошаговый план изучения — подготовили пошаговый план изучения диффузионных моделей и основные ресурсы.

✔️ VLM для детекции объектов на изображении — привели обзор OVOD-моделей, основанных на Vision Language Model (VLM).
Please open Telegram to view this post
VIEW IN TELEGRAM
224🔥11🤝5👍3😁1
Инструменты для деплоя DL-моделей

DL-инженеру уже недостаточно учить модели в Jupyter-тетрадках, чтобы соответствовать запросам индустрии. Важно уметь доводить их до пользователей. В этот четверг на открытой онлайн-лекции мы покажем, как выглядит путь модели после обучения!

На лекции вы узнаете:

- когда стоит использовать Jupyter-ноутбуки, а когда нет
- как подготовить репозиторий моделинга
- варианты конвертации модели
- как обернуть инференс в http-приложение
- чем помогает Model Serving
- как деплоят приложения и автоматизируют этот процесс

А в конце представим новый поток курса «Деплой DL-сервисов». Всем участникам лекции подарим скидки на обучение!🔥

🙋‍♂️Спикеры лекции:

— Дмитрий Раков — руководитель ML в НИИАС, делает perception-алгоритмы для беспилотных поездов

— Тимур Фатыхов — основатель DeepSchool, ex Lead CV Engineer KoronaPay

Дата и время: 21 августа, чт, 18:00 МСК

Регистрируйтесь по ссылке и до встречи в четверг вечером!
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥11👍5😁3🤝1
Научитесь создавать и деплоить DL-сервисы

Вчера на лекции мы представили новый поток курса «Деплой DL-сервисов» и приглашаем на него вас!

На программе вы научитесь:
писать код для обучения моделей «по фэншую»
конвертировать модели в JIT и ONNX
версионировать данные, эксперименты и модели
автоматизировать рутину и быть уверенным в своём коде
писать веб-сервисы на FastAPI
собирать приложения с помощью Docker
сервить модели с NVIDIA Triton
тестировать веб-сервисы и подменять зависимости при помощи DI
настраивать CI/CD и деплоить веб-сервисы на удалённые машины «по кнопке»
мониторить веб-приложения при помощи Prometheus и Grafana

После каждой лекции вас ждет домашнее задание, а в конце курса — проект, где можно применить все полученные навыки.

На протяжении всего обучения вас будут поддерживать опытные инженеры: ревьюить ваш код, отвечать на вопросы во время лекций, на Q&A-сессиях и в чате.

🚀 Курс стартует 28 августа
⚡️До 27 августа для подписчиков DeepSchool действует скидка 5%!

Изучайте подробности о программе и спикерах и присоединяйтесь к обучению.

Если возникают вопросы, пишите нам в поддержку в Телеграм!
🔥10👏76😁3👍1
Как уменьшить время сборки и размер Docker-образов?

Docker — стандарт для контейнеризации при разработке и эксплуатации приложений. По мере роста проекта разработчики часто сталкиваются с проблемами увеличения времени сборки Docker-образов и их размера.

В новой статье рассматриваем методы, которые помогут уменьшить размеры образов и ускорить процесс их сборки🚀

Читайте статью по ссылке!

И приходите на курс «Деплой DL-сервисов», на котором вы наведёте порядок в репозиториях и внедрите лучшие практики в свои проекты!
🔥1410👏5❤‍🔥32👍1😁1
Краткая история механизма внимания в NLP

Механизм внимания — один из ключевых компонентов современных нейросетей, позволяющий моделям концентрироваться на важных фрагментах данных. Это повлияло на улучшения в разных областях: NLP, Robotics и GenAI. В новой статье рассказываем историю появления и развития механизма внимания👨🏼‍💻

Из этой статьи вы узнаете:
- какие были предпосылки появления механизма внимания
- какие основные принципы работы self-attention, cross-attention и multi-head self-attention
- и как работает позиционное кодирование и маскирование

Читайте статью по ссылке! 👈
18🔥14👍6😁2👏1
⚡️Через месяц стартует новый поток курса «Ускорение нейросетей»

Мы уже готовим новые материалы на эту тему, а пока давайте вспомним базу по ускорению. Для этого мы собрали подборку наших публикаций, из которых вы узнаете про основные принципы, познакомитесь с методами ускорения свёрточных нейросетей и LLM.

1. Введение в методы ускорения свёрточных нейронных сетей — рассказали, какие существуют методы ускорения и как они связаны, познакомились с NAS, прунингом, дистилляцией и квантизации ей.

2. В чём же считать: fp8, fp32 или fp16 — в каких типах данных крутить нейронку, чтобы сэкономить память и не потерять точность? В  этой статье разобрали, как они работают, где их лучше применять, как учить, инференсить и с какими подводными камнями здесь можно столкнуться.

3. 3 фишки для ускорения LLM — рассмотрели 3 популярных метода ускорения LLM — инференс-фреймворки, спекулятивное декодирование и квантование.

4. Практическое применение ускорения — рассмотрели задачи ускорения, связанные с автопилотом, обработкой видео с дронов и беспилотными поездами.

5. 11 вопросов CTO про ускорение нейросетей — в этом видео Саша Гончаренко, СТО стартапа enot.ai и хэдлайнер нашего курса «Ускорение нейросетей», ответил на разные вопросы, связанные с ускорением нейросетей. Почему нельзя просто взять маленькую модель? Не скучно ли ускорять модели? А можно сделать NAS NMS на NPU?

Изучайте материалы и записывайтесь на новый поток, который стартует 30 сентября!
До 19 сентября вы можете записаться в лист ожидания. Для его участников действуют скидки до 20%!🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥12🤝5👍1😁1
Сервинг модели Grounding DINO с BentoML

Доставка ML-модели до конечного пользователя так же важна, как и её разработка. В одной из предыдущих статей мы уже рассказывали про model-serving при помощи фреймворков Trition и Torchserve.

В новой статье показали пример, как обернуть модель Grounding DINO при помощи другого популярного фреймворка — BentoML. 🍱

Читайте новую статью по ссылке!
14🔥12👍7😁2❤‍🔥1🤝1
Как OpenVINO оптимизирует memory-bound сценарии

OpenVINO — open-source фреймворк от Intel для оптимизации и эффективного инференса нейронных сетей. Он позволяет запускать модели на x86/ARM(!)/RISC-V(!) CPU, GPU и NPU, используя C++, Python и другие языки программирования. 🚀

Инференс модели — это выполнение графа операций, таких как add, mul, relu, softmax и т.д. Выполнение каждой операции сводится к запуску низкоуровневых программных блоков — kernels. Каждый kernel загружает данные из ОЗУ в регистры процессора, считает результат и пишет его обратно. Одна из проблем при выполнении графа операций — простой процессора в связи с тем, что данные не успевают «доехать» до регистров. Этот сценарий называется memory-bound. Его появление зависит от скорости процессора, пропускной способности памяти и типа выполняемой операции.

Естественное желание — минимизировать простой процессора. Для этого необходимо уменьшить количество обращений в память и выполнить больше операций с уже загруженными данными. Один из используемых подходов — fusing: объединение нескольких операций в один kernel. Для таких операций данные один раз загружаются в регистры, проходят цепочку вычислений и только потом выгружаются обратно в память. Это позволяет лучше загружать вычислительные блоки CPU за счёт уменьшения количества операций с памятью.

Поддерживать десятки (а то и сотни) вариантов fusing’а вручную очень сложно, поэтому был разработан Snippets — JIT-компилятор внутри OpenVINO. Он находит подграфы модели, которые можно исполнить эффективнее, и компилирует для них оптимизированные kernels. И это не ограничено заранее зашитыми паттернами: Snippets может собрать подграфы с произвольными комбинациями поддерживаемых операций. Выделенные подграфы Snippets переводит в более удобное для оптимизации представление, оптимизирует работу с памятью и циклами, распределяет данные по регистрам процессора, чтобы лишний раз не гонять их в память. 🦾

Одна из новых фишек Snippets — поддержка dynamic shapes. Часть оптимизаций зависит от размера входных данных. Можно перекомпилировать kernel под новые входы, но на практике это получается медленно. Решение следующее: shape-зависимые части (например, шаги указателей или размеры буферов) выносятся в отдельный RuntimeConfig. Он получает параметры и подставляет их в уже скомпилированный kernel. Добавляется небольшой оверхед, но зато теперь можно работать с текстами разной длины или изображениями различных размеров без потери производительности.

Итак, на практике мы имеем следующие результаты: ускорение трансформерных моделей, а именно — текстовые (BERT и не только) до 25%, Stable Diffusion до 40%, Whisper до 30%; а также экономию памяти в attention-блоках Stable Diffusion на 15-50%. 🏆

На курсе «Ускорение нейросетей» мы подробно разбираем OpenVINO и другие инструменты для оптимизации инференса. Записывайтесь на новый поток, который стартует 30 сентября! Вы можете присоединиться со скидкой до 20%, если запишитесь в лист ожидания до 19 сентября.


Полезные ссылки:
- Подробный разбор принципов работы Snippets
- Статья про поддержку динамических шейпов

Автор: Артур Панюков
🔥238🤝6👍2😁2
Как запрунить свою первую модель?

Представим ситуацию: мы выбрали фреймворк и тип данных для инференса модели, и теперь нам нужно её ускорить. Что делать? Один из вариантов - использовать прунинг!

В новом видео рассказываем о том, что такое прунинг и с чего в нём можно начать 🙂‍↕️

В видео мы узнаем:
- как запрунить свою первую модель
- почему короткий путь не равен верному решению
- и для чего нужен тюнинг, самая важная часть прунинга

Смотрите по ссылке! 🎞

А уже 30 сентября стартует новый поток «Ускорение нейросетей», где мы подробно рассказываем про прунинг и другие методы ускорения. Запишитесь в лист ожидания до 19 сентября, чтобы получить скидку до 20%
Please open Telegram to view this post
VIEW IN TELEGRAM
119🔥12👏6😁1
Почему ускорение нейросетей — важный навык в DL-индустрии

В видео Александр Гончаренко, CTO enоt.аi и хэдлайнер курса «Ускорение нейросетей», рассказал, почему оптимизация инференса стала необходимым навыком для DL-инженера, на чём строится ускорение нейросетей и как в этом помогает разобраться наша программа.

Cмотрите видео по ссылке!

30 сентября стартует новый поток курса «Ускорение нейросетей». А вы ещё успеваете записаться в лист ожидания, чтобы присоединиться со скидкой до 20%!
12🔥9👍5😁1
Интервью с подписчиками канала

Привет! Это Тимур, один из основателей школы

Если вы практикующий backend-разработчик, не особо разбираетесь в ML/DL, работаете или планируете работать с LLM, и при этом не против поболтать со мной в Zoom 50 минут, заполните, пожалуйста, эту форму

Время от времени мы проводим серии интервью, чтобы ещё лучше понимать, как наши программы могут помочь повысить квалификацию инженеров. Поговорить хочу о вашем виденье индустрии, рынка, о задачах, сложностях или планах в работе с LLM. Отвечу и на ваши вопросы, если они есть

Спасибо всем откликнувшимся✌️
14🤝7🔥4😁3
Как оптимизировать инференс на ноунейм-плате

Всё больше моделей запускаются на конечных устройствах: в телефонах, роботах, колонках, автомобилях, домофонах и т.д. — у всех разные ОС и архитектуры, а значит и свои нюансы инференса моделей. На лекции мы разберём как раз такой случай из практики с кучей нюансов и их решениями!

Советуем прийти, если вы:
— никогда не ускоряли модели
— ускоряли, но не для эдж-девайсов
— ускоряли для эджей и у вас есть вопросы

🗓 25 сентября, четверг, 18:00 МСК

На лекции узнаете:
как снизить стоимость инференса на примере автономного автомобиля
как запустить Vision transformer на плате Texas Instruments
о проблемах запуска трансформеров на кастомных платах с NPU
про применение прунинга к таким платам

В конце представим новый поток курса «Ускорение нейросетей». Всем участникам лекции подарим скидки на обучение!

🙋‍♂️Спикеры лекции:
— Александр Гончаренко — CTO ENOT.аi, хэдлайнер курса Ускорение нейросетей
— Тимур Фатыхов — основатель DeepSchool, ex Lead CV Engineer KoronaPay

Регистрируйтесь на лекцию по ссылке!

🎁После регистрации вы получите туториал по использованию TensorRT и OpenVino.

До встречи 25 сентября в 18:00 МСК!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥126👍6❤‍🔥1😁1🎉1
Закройте вопросы по LLM

Если хотите разобраться, как устроены современные LLM, как их обучать, запускать и оптимизировать — приходите на ближайший поток курса LLM. Старт — 16 октября!

На курсе вы научитесь:
— использовать доступные LLM под свои задачи
— работать с RAG, агентами и tool calls
— эффективно тюнить модели
— деплоить и ускорять инференс LLM

Обучение подойдёт и тем, кто только знакомится с LLM, и кто уже работает с ними. А если до этого не работали с доменом NLP, то разберётесь в его особенностях.

Запишитесь в лист ожидания до 5 октября, чтобы первыми занять место и получить скидки до 20%.
Изучайте подробности о программе и спикерах и записывайтесь на новый поток!

Напоминаем, что места ограничены, часть уже занята, поэтому рекомендуем не откладывать ✍️

По всем вопросам пишите нам в поддержку @deepschool_support
🔥118👍6😁2
Встречаемся через 3 часа

Сегодня на примере реальной задачи разберём, как запустить трансформер на плате с NPU. Обсудим проблемы, которые с этим связаны, и как их решать!

А также представим программу курса Ускорение нейросетей и подарим скидки участникам лекции ⚡️

Вы ещё успеваете зарегистрироваться!
Приходите сегодня в 18:00 МСК!
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6👍1😁1
Как наконец-то разобраться в ускорении нейросетей?

Записывайтесь на наш курс! На нём вы научитесь важному навыку для DL-инженера.

Возможно, вы уже сталкивались в работе с оптимизацией инференса и ускорением нейросетей, пробовали фреймворки вроде ONNX, TensorRT, OpenVINO, знаете про квантование, прунинг и дистилляцию, но при этом:

— большинство решений приходится собирать на ощупь
— гайды не работают на ваших моделях
— не уверены, как сочетать методы без потери качества
— возникают сложности при деплое на CPU, мобильные устройства или одноплатники

Или если только начинаете погружаться в тему ускорения — тогда приходите на ближайший поток «Ускорения нейросетей»!
Обучение начинается 30 сентября, а до 29 сентября вы успеваете присоединиться со скидкой 5%

В карточках к посту мы рассказали об основных фактах о курсе.
Изучайте подробности о программе, спикерах и тарифах на сайте и присоединяйтесь!

Если остались вопросы, то ждём вас в нашей поддержке @deepschool_support
И до встречи на лекциях 🎓
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥107😁2