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

@deepschool_support
Download Telegram
DeepSchool Digest

По традиции собрали для вас материалы за июнь в одном посте:

✔️ How to: детектор лиц на Android — c Дмитрием Гординым показали, как запустить детектор лиц на Android, используя только C++, OpenCV и NCNN.

✔️ Данные важнее моделей? Подкаст «Под Капотом» c Дарьей Воронкиной — поговорили с Дарьей Воронкиной — тимлидом в медицинском стартапе OneCell.ai и спикером курса «Computer Vision Rocket».

✔️ Как LLM научились видеть? — рассказали, какие подходы научили LLM понимать изображения и 3D-сцены.

✔️ Кто за рулём?! Трансформер — разобрали одну из ключевых задач — планирование движения, где на первый план выходит архитектура-трансформер.

✔️ Как LLM научились слышать? — поговорили о добавлении в LLM новой модальности — аудио. От идеи представления звука мел-спектрограммой до генерации музыки по текстовому описанию.

🔥 Запустили канал, в котором каждую неделю меняется автор. Каждую неделю: новый человек, новая область и домен, новые истории, наблюдения и рекомендации. Заходите в @deepschool_underthehood
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2017😍10👍2
RAG — от первой версии к рабочему решению

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

В новой статье пошагово разбираем каждый компонент RAG-системы, объясняем типичные ошибки и даём план действий по улучшению ванильной версии:
— как разбивать данные на чанки
— что влияет на качество эмбеддингов и как выбрать модель
— зачем нужен реранкер и можно ли без него обойтись
— когда достаточно модели «из коробки» и как понять, нужно ли её дообучать

Статья будет особенно полезна новичкам, кто только начинает работать с RAG. Читайте по ссылке!

И подписывайтесь на DeepSchool
🔥2714👍14😁3
Соберите первый LLM-прототип за 30 минут

Для разработки приложений с LLM важно освоить три ключевых навыка: дообучение модели на своих данных, подключение внешней базы (RAG), подключение к LLM сторонних инструментов.

Мы подготовили мини-курс, в котором за 4 коротких лекции вы узнаете, как создать работающее LLM-based приложение с агентом и долговременной памятью.

На лекциях мы рассказали:
- что важно, чтобы собрать первое приложение с LLM
- как выгодно использовать open-source модели и чем они отличаются от коммерческих
- из каких частей состоит RAG и как его можно улучшить
- как собрать первого агента с памятью и базой данных за 30 минут

Это мини-курс для разработчиков и it-специалистов без опыта в DL. Но мы рекомендуем посмотреть его и ML/DL-инженерам, чтобы узнать, как быстро собрать проект с LLM.

Переходите в бот и смотрите лекции!
👍26🔥1910👏2😁2🐳2
4 подхода к созданию LLM-приложений

Если вы пытались собрать сервис на базе LLM: RAG для корпоративного репозитория, MVP для стартапа или бот для личных задач — наверняка столкнулись с тем, что всё работает не так, как задумывалось.

Модель галлюцинирует или отвечает в неподходящем стиле, промпты не помогают, RAG не находит релевантные данные, агенты игнорируют инструкции — и непонятно, надо ли дообучать LLM или стоит попробовать другую модель, но как выбрать?

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

На лекции вы узнаете про:
- 4 базовых блока LLM-проекта — из чего собираются 99% приложений
- когда достаточно open-source LLM, а когда не обойтись без коммерческой
- как навести порядок в RAG: чанки, поиск, антигаллюцинации
- как работают агенты и их реальные сценарии применения
- файнтюнинг: когда простого промпта недостаточно, как адаптировать модель под свою задачу и когда это нужно

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

🙋‍♂️ Вести лекцию будет Илья Димов, Senior NLP-инженер, который занимается обучением Multimodal LLM.
🔔 Встречаемся в четверг, 24 июля, в 19:00 МСК.

Регистрируйтесь по ссылке и приходите в четверг вечером!
👍1411🔥83😁2🥰1
3D CV, diffusion models и получение PhD | Подкаст «Под Капотом» c Олей Гребеньковой

Гость этого выпуска Оля Гребенькова. Оля получает PhD в LMU, где применяет генеративные модели к 3D-данным, а также спикер курса «3D-CV» в DeepSchool.

В этом выпуске мы обсуждаем:
- как попасть в лабораторию, где создали Stable Diffusion
- процесс исследований в лаборатории компьютерного зрения
- зачем заниматься нехайповыми темами в AI
- как не выгореть в академии

Смотрите выпуск по ссылке: https://youtu.be/YgLYSsQOE0E?si=lHQ2aKZDd-aiOAw_
25🔥15❤‍🔥10👍2🥰1😁1🐳1🤝1
Что изучать, чтобы разобраться в LLM и сделать свой проект?

Потратить много времени на изучение противоречащих гайдов и статей, в итоге собрать несколько баговых версий.
Прийти учиться к нам на LLM Start, избежать ошибок и сделать свой первый работающий проект вместе с опытными DL-инженерами!

LLM Start — это программа для инженеров без опыта в Deep Learning, на которой вы за 8 недель:
- разберётесь в моделях и научитесь выбирать нужную под задачу
- сможете обучать модели на своих данных, чтобы модель отвечала в нужном стиле и разбиралась в вашей области
- научитесь создавать RAG-системы из готовых модулей
- построите рабочего LLM-агента для вашей задачи

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

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

🔔 Обучение начинается 30 июля. А до 29 июля вы можете присоединиться к обучению со скидкой 5%!

⚠️ Для старта вы должны быть знакомы с Linux и Python, уметь читать и писать функции и классы.

Переходите по ссылке, чтобы успеть записаться! 
Если остались вопросы — напишите в нашу поддержку @deepschool_support

Присоединяйтесь к обучению и создавайте работающие LLM-продукты!
🔥136😁4👍2
Ускоряем LLM на раз, два, три

Иметь личного ассистента на ноуте и запускать мощную модель локально — хорошо. Тратить огромные ресурсы на это — уже не очень.

В новой статье разбираем ключевые методы ускорения и обсуждаем, что действительно работает:
— фреймворки для инференса — какой выбрать, чтобы выжать максимум
— спекулятивное декодирование — почему это must-have для скорости
— квантование — как правильно применять и почему оно превратилось в «народный» метод ускорения

А ещё в статье мы вспоминаем базу — Flash-Attention, технологию, которая помогла развить популяризацию LLM в целом 🚀

Читайте по ссылке!
🔥1610🤝5😁1
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