LoRA: краткий гайд перед собеседованием
Full fine‑tuning LLM — дорого и медленно. Если хочется дообучать LLM быстрее и дешевле, один из вариантов — Low‑Rank Adaptation (LoRA).
Идея подхода состоит в обучении компактных добавок к весам модели и оставлении базовых весов замороженными. Этот подход позволяет дообучить модель, сэкономив ресурсы на обучение, а скорость инференса останется как у оригинальной модели.
📌 Принцип работы LoRA
Линейный слой — матрица весов W размером d×d (для простоты рассматриваем квадратную). При full fine‑tuning для неё обновляется d² элементов. В LoRA веса остаются замороженными, а обучается только добавка ΔWᵈˣᵈ, которая является произведением матриц Bᵈˣʳ и Aʳˣᵈ. Выход h для линейного слоя с новой добавкой вычисляется по формуле:
h = Wx + (α / r) ∆Wx
где:
Часто LoRA-адаптеры добавляют к линейным проекциям attention — query_proj и value_proj. Для большего качества можно добавить и к другим элементам блока трансформера, например, к MLP или output_proj.
Применение:
• При дообучении LLM для сервисов поиска с RAG, корпоративных ассистентов, мультиязычных моделей и др.
• Также популярен сценарий использования одной базовой LLM с несколькими адаптерами (multi-LoRA) под разные домены и клиентов.
📝Частые вопросы с собеседований
🔗 Полезные ссылки
• Оригинальная статья LoRA
• QLoRA
• Документация huggingface по LoRA
Автор: Алексей Яндутов
Full fine‑tuning LLM — дорого и медленно. Если хочется дообучать LLM быстрее и дешевле, один из вариантов — Low‑Rank Adaptation (LoRA).
Идея подхода состоит в обучении компактных добавок к весам модели и оставлении базовых весов замороженными. Этот подход позволяет дообучить модель, сэкономив ресурсы на обучение, а скорость инференса останется как у оригинальной модели.
📌 Принцип работы LoRA
Линейный слой — матрица весов W размером d×d (для простоты рассматриваем квадратную). При full fine‑tuning для неё обновляется d² элементов. В LoRA веса остаются замороженными, а обучается только добавка ΔWᵈˣᵈ, которая является произведением матриц Bᵈˣʳ и Aʳˣᵈ. Выход h для линейного слоя с новой добавкой вычисляется по формуле:
h = Wx + (α / r) ∆Wx
где:
• x — входной вектор размерностью d;
• ∆W = BA, Aʳˣᵈ и Bᵈˣʳ — обучаемые матрицы весов, где r значительно меньше d. Таким образом, в LoRA обучаются 2*d*r параметров, то есть намного меньше, чем при full finetuning.
• α/r регулирует вклад адаптера:
- r — ёмкость адаптера. Чем она больше, тем сильнее обновления, но тем выше риск переобучения и стоимость шага обучения (время и VRAM). На практике начинают со значений в диапазоне от 4 до 32, при сложных задачах можно увеличить до 64.
- α — масштабирует вклад обновлений LoRA-адаптера. Здесь часто начинают с α = r. Если модель переобучается или градиенты нестабильны, можно уменьшать α (или добавить dropout). Главное — при изменении r держать α/r постоянным: если растет r, то α должен вырасти пропорционально.
Часто LoRA-адаптеры добавляют к линейным проекциям attention — query_proj и value_proj. Для большего качества можно добавить и к другим элементам блока трансформера, например, к MLP или output_proj.
Применение:
• При дообучении LLM для сервисов поиска с RAG, корпоративных ассистентов, мультиязычных моделей и др.
• Также популярен сценарий использования одной базовой LLM с несколькими адаптерами (multi-LoRA) под разные домены и клиентов.
📝Частые вопросы с собеседований
• Зачем матрица обновления ΔW раскладывается на произведение A и B ? Почему бы не использовать одну матрицу?
Если в качестве добавки использовать одну матрицу размером d × d — экономии не будет. Факторизация на Aʳˣᵈ и Bᵈˣʳ, где r значительно меньше d, сокращает количество обучаемых параметров и ускоряет обучение.
• Преимущества LoRA vs классические адаптеры?
LoRA не добавляет новых слоёв на инференсе, как в классических адаптерах, где из-за этого растёт latency и потребление памяти. Здесь их можно смержить в базовые веса, сложив по формуле и убрав накладные расходы на инференсе.
• Когда выбирать LoRA?
◦ Нужно дообучение при ограниченных ресурсах
Даже при 1-2 GPU по 24 GB можно дообучать модели размером 8b c LoRA и 30b с QLoRA, где базовая модель квантуется до 4-бит (NF4).
◦ Нужны лёгкие артефакты или быстрое переключение между доменами
LoRA-адаптеры — небольшие добавочные веса, которые легко подмешиваются / меняются на инференсе. Можно держать адаптеры для разных доменов (например, «техподдержка», «юридический стиль», «код») и по запросу активировать нужный (multi-LoRA).
◦ Важно не удлинять ввод на инференсе
В отличие от prompt / prefix-методов, которые добавляют позиции / KV-префиксы, увеличивают вычисления и KV-кэш, LoRA не меняет длину последовательности. А это критично для latency.
◦ Промптинг не даёт нужного качества или стабильного поведения
Если улучшение промпта не решает задачу, LoRA даёт более стабильное поведение и прирост качества при минимуме обучаемых параметров.
🔗 Полезные ссылки
• Оригинальная статья LoRA
• QLoRA
• Документация huggingface по LoRA
А чтобы знать, как применять finetuning для адаптации LLM под домен в реальном проекте — приходите на наш курс LLM Pro.
Старт — 13 ноября.
Читайте подробнее на сайте и оставляйте заявку до 12 ноября, чтобы присоединиться к обучению со скидкой 5% ⚡️
Автор: Алексей Яндутов
1🔥42👍16❤14👏2😁1🐳1
Персонализированная генерация: Textual Inversion и DreamBooth
Персонализированная генерация добавляет новые концепции в такие генеративные модели, как Stable Diffusion. С ней можно создавать изображения с определённым объектом или художественным стилем, которые модель не видела раньше.
В новой статье расскажем, как работают базовые алгоритмы персонализированной генерации — Textual Inversion и DreamBooth 🧙♂️
А также рассмотрим:
- какие существуют проблемы наивных подходов
- как алгоритмы добавляют концепт в модель по пяти примерам
- визуализацию работы алгоритмов
Читайте новую статью по ссылке! 👈
🪔 DeepSchool
Персонализированная генерация добавляет новые концепции в такие генеративные модели, как Stable Diffusion. С ней можно создавать изображения с определённым объектом или художественным стилем, которые модель не видела раньше.
В новой статье расскажем, как работают базовые алгоритмы персонализированной генерации — Textual Inversion и DreamBooth 🧙♂️
А также рассмотрим:
- какие существуют проблемы наивных подходов
- как алгоритмы добавляют концепт в модель по пяти примерам
- визуализацию работы алгоритмов
Читайте новую статью по ссылке! 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
Персонализированная генерация: Textual Inversion и DreamBooth - DeepSchool
Рассказываем, как работают базовые алгоритмы генерации — Textual Inversion и DreamBooth
🔥12❤11👍8🤩2
Vision-Language-Action (VLA) Models: от токенов к действиям
Современные мультимодальные модели умеют работать с визуальными данными и текстом. Следующий шаг их развития — взаимодействие с физическим миром. Для управления роботами создаются Vision-Language-Action (VLA) модели, которые переводят визуальные данные и текстовые инструкции прямо в моторные команды робота. О том, как устроены такие модели, рассказываем в новой статье. 🤖
Из неё вы узнаете:
• как устроены VLA-модели — от визуального энкодера до генератора действий
• какие архитектуры используются для предсказания движений — от дискретных токенов до диффузий и Flow Matching'а
• какие существуют подходы к дообучению систем — от полного fine-tuning'а до PEFT-методов, таких как LoRA
• с какими проблемами сталкиваются VLA в реальном мире: задержки, накопление ошибок и безопасность
Читайте новую статью по ссылке! 🚀
🪔 DeepSchool
Современные мультимодальные модели умеют работать с визуальными данными и текстом. Следующий шаг их развития — взаимодействие с физическим миром. Для управления роботами создаются Vision-Language-Action (VLA) модели, которые переводят визуальные данные и текстовые инструкции прямо в моторные команды робота. О том, как устроены такие модели, рассказываем в новой статье. 🤖
Из неё вы узнаете:
• как устроены VLA-модели — от визуального энкодера до генератора действий
• какие архитектуры используются для предсказания движений — от дискретных токенов до диффузий и Flow Matching'а
• какие существуют подходы к дообучению систем — от полного fine-tuning'а до PEFT-методов, таких как LoRA
• с какими проблемами сталкиваются VLA в реальном мире: задержки, накопление ошибок и безопасность
Читайте новую статью по ссылке! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
Vision-Language-Action (VLA) Models: от токенов к действиям - DeepSchool
Рассказываем, как устроены VLA-модели — от визуального энкодера до генератора действий.
🔥29❤13👍12
DeepSchool Digest⚡
По традиции собрали для вас материалы за последний месяц в одном посте❗️
Active learning — рассказали о концепции Active learning, популярных методах отбора объектов: Entropy Sampling, Query-by-Committee, Bayesian Active learning by Disagreement (BALD) и других
Рубрика «Вопросы эксперту» | Антон Семенюта, ML-инженер команды Восприятия Автономного Транспорта в Яндексе — обсудили применение ML и CV в автономном транспорте, какие модели и для каких задач используются, а также путь модели от dev-окружения до реальных тестов на дороге
Attention и трансформеры в NLP — разобрали частые вопросы про attention и трансформеры с NLP-собеседований
LoRA: краткий гайд перед собеседованием — объяснили принцип работы LoRA и разобрали частые вопросы с собеседований
Персонализированная генерация: Textual Inversion и DreamBooth — рассказали, как работают базовые алгоритмы персонализированной генерации — Textual Inversion и DreamBooth
Vision-Language-Action (VLA) Models: от токенов к действиям — рассказали, как устроены VLA-модели.
По традиции собрали для вас материалы за последний месяц в одном посте
Active learning — рассказали о концепции Active learning, популярных методах отбора объектов: Entropy Sampling, Query-by-Committee, Bayesian Active learning by Disagreement (BALD) и других
Рубрика «Вопросы эксперту» | Антон Семенюта, ML-инженер команды Восприятия Автономного Транспорта в Яндексе — обсудили применение ML и CV в автономном транспорте, какие модели и для каких задач используются, а также путь модели от dev-окружения до реальных тестов на дороге
Attention и трансформеры в NLP — разобрали частые вопросы про attention и трансформеры с NLP-собеседований
LoRA: краткий гайд перед собеседованием — объяснили принцип работы LoRA и разобрали частые вопросы с собеседований
Персонализированная генерация: Textual Inversion и DreamBooth — рассказали, как работают базовые алгоритмы персонализированной генерации — Textual Inversion и DreamBooth
Vision-Language-Action (VLA) Models: от токенов к действиям — рассказали, как устроены VLA-модели.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤9👍5
Заглядывайте к нам на второй канал!
В нашей школе преподаёт и учится много крутых инженеров с разной карьерой, интересами и опытом. Кто-то оптимизирует нейросети под мобилку, кто-то делает SLAM для автономных автомобилей, а кто-то занимается мультимодальными LLM.
Поэтому мы сделали формат, где инженеры рассказывают о себе. Каждую неделю в канале хозяйничает новый ведущий. Каждую неделю: новый человек, новая область и домен, новые истории, наблюдения и рекомендации.
Уже 19 человек успело рассказать о себе и своём опыте:
• Давид Свитов, PhD, провёл трансляцию с двух летних школ по DL в Италии и Китае
• Даша Воронкина, лид команды данных в OneCell, рассказала про работу в стартапе и тренды в разметке данных
• Андрей Филатов, лид в GenAI-стартапе, рассказал про митапы
• Илья Ревин, дважды PhD, доцент, лид разработки, филантроп... разобрал статью про тензорные разложения..ии заболел (бывает же!)
• Нина Коновалова, исследователь в AIRI, рассказала про будни ресёчера, межнар по ИИ и про свою свежую работу по контролю в диффузии
• Андрей Шадриков, RnD Lead в verigram, рассказал про опыт организации конференций и подготовку данных
• Лёня Верховцев, senior CV-инженер в Сбере, рассказал про obsidian, сплит-клавиатуру и о том, как отдыхать, чтобы больше деливерить
• Дима Гордин, senior MLE в verigram, дал задачку на биометрию в браузере и рассказал, что не так с ChatGPT для внутренних документов
• Шамиль Мамедов, PhD, senior researcher в Navio, рассказал про задачу планирования в self-driving, про получение PhD и работу в Amazon Robotics
• Артемий Мазаев, лид AI в Cloud.ru, рассказывал про LLM, агентов и вот это вот всё
• Анастасия Старобыховская, руководитель лаборатории Искусств и ИИ при Европейском Университете, рассуждала про организацию команды и поиск идей для решения нетипичных задач!
• Тимур Фатыхов, сооснователь DeepSchool и ex Lead CV-инженер KoronaPay, поделился историей создания DeepSchool и своим опытом тимлидства
• Дмитрий Диденко, инженер машинного обучения в кибербез компании, рассказал про применение ИИ в кибербезе и показал некоторые пет-проекты
• Илья Димов, senior NLP-инженер в Яндексе, рассуждал о карьере и чтении статей. А еще вывел задачки на интерактив!
• Александр Гордеев, Computer Vision Engineer, Sber AI, рассказал про свои пет-проекты и подготовил небольшой экскурс по методам classifier guidance и classifier-free guidance
• Антон Семенюта, ML-инженер в команде восприятия автономного транспорта Яндекса, рассказывал и показывал разное про автономный транспорт
• Алексей Глотов, Head of AI GetCourse, рассказывал про Управление и ИИ
• Артем Кравчук, лид CV-команды в 2ГИС, запустил свою олимпиаду «Изолированный китёнок» (и даже вручил почётную грамоту)
• Макс Шапошников, Research Engineer в Tessl, рассказал про агентов, а также как продолжать непрерывно учиться
Заглядывайте в канал, там интересно! https://news.1rj.ru/str/deepschool_underthehood
В нашей школе преподаёт и учится много крутых инженеров с разной карьерой, интересами и опытом. Кто-то оптимизирует нейросети под мобилку, кто-то делает SLAM для автономных автомобилей, а кто-то занимается мультимодальными LLM.
Поэтому мы сделали формат, где инженеры рассказывают о себе. Каждую неделю в канале хозяйничает новый ведущий. Каждую неделю: новый человек, новая область и домен, новые истории, наблюдения и рекомендации.
Уже 19 человек успело рассказать о себе и своём опыте:
• Давид Свитов, PhD, провёл трансляцию с двух летних школ по DL в Италии и Китае
• Даша Воронкина, лид команды данных в OneCell, рассказала про работу в стартапе и тренды в разметке данных
• Андрей Филатов, лид в GenAI-стартапе, рассказал про митапы
• Илья Ревин, дважды PhD, доцент, лид разработки, филантроп... разобрал статью про тензорные разложения..ии заболел (бывает же!)
• Нина Коновалова, исследователь в AIRI, рассказала про будни ресёчера, межнар по ИИ и про свою свежую работу по контролю в диффузии
• Андрей Шадриков, RnD Lead в verigram, рассказал про опыт организации конференций и подготовку данных
• Лёня Верховцев, senior CV-инженер в Сбере, рассказал про obsidian, сплит-клавиатуру и о том, как отдыхать, чтобы больше деливерить
• Дима Гордин, senior MLE в verigram, дал задачку на биометрию в браузере и рассказал, что не так с ChatGPT для внутренних документов
• Шамиль Мамедов, PhD, senior researcher в Navio, рассказал про задачу планирования в self-driving, про получение PhD и работу в Amazon Robotics
• Артемий Мазаев, лид AI в Cloud.ru, рассказывал про LLM, агентов и вот это вот всё
• Анастасия Старобыховская, руководитель лаборатории Искусств и ИИ при Европейском Университете, рассуждала про организацию команды и поиск идей для решения нетипичных задач!
• Тимур Фатыхов, сооснователь DeepSchool и ex Lead CV-инженер KoronaPay, поделился историей создания DeepSchool и своим опытом тимлидства
• Дмитрий Диденко, инженер машинного обучения в кибербез компании, рассказал про применение ИИ в кибербезе и показал некоторые пет-проекты
• Илья Димов, senior NLP-инженер в Яндексе, рассуждал о карьере и чтении статей. А еще вывел задачки на интерактив!
• Александр Гордеев, Computer Vision Engineer, Sber AI, рассказал про свои пет-проекты и подготовил небольшой экскурс по методам classifier guidance и classifier-free guidance
• Антон Семенюта, ML-инженер в команде восприятия автономного транспорта Яндекса, рассказывал и показывал разное про автономный транспорт
• Алексей Глотов, Head of AI GetCourse, рассказывал про Управление и ИИ
• Артем Кравчук, лид CV-команды в 2ГИС, запустил свою олимпиаду «Изолированный китёнок» (и даже вручил почётную грамоту)
• Макс Шапошников, Research Engineer в Tessl, рассказал про агентов, а также как продолжать непрерывно учиться
Заглядывайте в канал, там интересно! https://news.1rj.ru/str/deepschool_underthehood
Telegram
DeepSchool / underthehood
Это канал школы deepschool.ru. Каждую неделю ведущим канала становится один из преподавателей или друзей школы. Каждую неделю: новый человек, новая область и домен, новые истории, наблюдения и рекомендации. Поддержка: @deepschool_support
52❤20🔥11👏4🤔1
ClearML Agent: обучение модели в Google Colab
Продолжаем обзор MLOps-экосистемы ClearML, которая покрывает полный цикл разработки и выкатки ML-моделей. Ранее мы разобрали, как работают компоненты ClearML Data и ClearML Session.
А в новой статье рассказали о ClearML Agent — компоненте, который позволяет отправлять задачи в очередь и исполнять их на удалённых машинах. 📡
Из статьи вы узнаете:
- как работает ClearML Agent
- как использовать Google Colab в качестве воркера для ClearML 🍯
- и как можно добавлять задачи в очередь для ClearML Agent
Читайте новую статью по ссылке!👈
🪔 DeepSchool
Продолжаем обзор MLOps-экосистемы ClearML, которая покрывает полный цикл разработки и выкатки ML-моделей. Ранее мы разобрали, как работают компоненты ClearML Data и ClearML Session.
А в новой статье рассказали о ClearML Agent — компоненте, который позволяет отправлять задачи в очередь и исполнять их на удалённых машинах. 📡
Из статьи вы узнаете:
- как работает ClearML Agent
- как использовать Google Colab в качестве воркера для ClearML 🍯
- и как можно добавлять задачи в очередь для ClearML Agent
Читайте новую статью по ссылке!👈
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
ClearML Agent: обучение модели в Google Colab - DeepSchool
Рассказываем о ClearML Agent: как он работает, как использовать Google Colab в качестве воркера и как можно добавлять задачи в очередь
🔥18❤15👍12🐳2
Как собрать продукт с LLM, если вы не из ML
Не обязательно быть ML/DL-инженером, чтобы собрать первый проект с LLM. Разработчики, devops-инженеры и технические специалисты тоже сталкиваются с задачами внедрения LLM-функций. Поэтому мы сделали программу, на которой поможем понять основы LLM и собирать работающие цепочки.
Мы обновили курс LLM Start — обучение для тех, кто не работает с нейросетями, но хочет разобраться в LLM и научиться автоматизировать процессы с их помощью.
На курсе вы:
— разберётесь в принципах работы нейросетей и LLM
— освоите приёмы промпт-инжениринга
— научитесь собирать RAG для работы с базами знаний
— узнаете, как создавать агентов и мультиагентные системы
— разберётесь в многообразии моделей и провайдеров
Обучение длится 2 месяца и состоит из 6 тем и финального проекта.
Чтобы сосредоточиться на логике цепочек, а не на инфраструктуре, задания выполняются на платформе n8n, которая подходит для низконагруженных систем, внутреннего использования и проверки гипотез.
Вы поймёте основные принципы работы с LLM и сможете потом собрать боевые версии цепочек на своём стэке.
🔥 До 18 декабря вы можете присоединиться со скидкой 25%!
Изучайте подробности на сайте и оставляйте заявку!
Не обязательно быть ML/DL-инженером, чтобы собрать первый проект с LLM. Разработчики, devops-инженеры и технические специалисты тоже сталкиваются с задачами внедрения LLM-функций. Поэтому мы сделали программу, на которой поможем понять основы LLM и собирать работающие цепочки.
Мы обновили курс LLM Start — обучение для тех, кто не работает с нейросетями, но хочет разобраться в LLM и научиться автоматизировать процессы с их помощью.
На курсе вы:
— разберётесь в принципах работы нейросетей и LLM
— освоите приёмы промпт-инжениринга
— научитесь собирать RAG для работы с базами знаний
— узнаете, как создавать агентов и мультиагентные системы
— разберётесь в многообразии моделей и провайдеров
Обучение длится 2 месяца и состоит из 6 тем и финального проекта.
Чтобы сосредоточиться на логике цепочек, а не на инфраструктуре, задания выполняются на платформе n8n, которая подходит для низконагруженных систем, внутреннего использования и проверки гипотез.
Вы поймёте основные принципы работы с LLM и сможете потом собрать боевые версии цепочек на своём стэке.
Изучайте подробности на сайте и оставляйте заявку!
Please open Telegram to view this post
VIEW IN TELEGRAM
deepschool.ru
Курс по LLM для IT-специалистов
Научитесь использовать LLM для решения бизнес-задач: чат-боты, ответы по базе, ИИ-сотрудники
❤15🔥7👏4🤔1
Ruff: современный и быстрый linter + formatter для Python
Правила оформления кода закреплены в стандартах: какие нужны отступы, длина строк и названия переменных. Они делают код разработчика понятным и единообразным. Правила бывают внутренними (для конкретного проекта) или общими. Например, в Python главный стандарт — PEP8.
Привести код в нужный формат, например, под PEP8 — задача, которая может занять много времени. Поэтому были разработаны вспомогательные инструменты — linters и formatters.
🔜 Linter выполняет статический анализ кода, проверяя его на соответствие заданным правилам, например, PEP8 или пользовательским.
🔜 Formatter автоматически преобразовывает внешний вид кода, не затрагивая его логику и приводя в соответствие заданному стилю оформлению.
Linter и formatter безопасно исправляют код, не меняя его поведения. Они упрощат жизнь разработчка и помогают избежать споров о форматировании и правильности именования классов во время ревью, экономя участникам время и нервы 🙂.
Разработчик вызовом одной команды автоматически форматирует код и находит конкретные участки, которые не соответствуют принятому стандарту, чтобы их поправить. А ревьювер не тратит силы на проверку форматирования, если в CI MR прошёл этапы linter и formatter, уделяя всё внимание на ревью реализации функционала.
Основной linter для python — flake8, а formatters — isort и black. Каждый из них имеет свою конфигурацию и команду запуска.
Использование нескольких инструментов вызывает ряд неудобств:
1. Отдельные файлы конфигураций замусоривают корень проекта и могут конфликтовать между собой.
2. Каждый инструмент — отдельная зависимость, которую надо установить. Кроме того, для flake8, как правило, необходимо доустанавливать отдельные плагины.
3. Каждый инструмент запускается отдельным процессом / задачей в CI и может работать относительно долго на больших кодовых базах.
Ruff помогает избавиться от них: он ставится одним python package, правила для форматирования и различных linters описываются в одном конфиге, а реализация на Rust делает его быстрее аналогов🚀.
Пример внедрения ruff в проект
В
В
Далее:
Автор: Иван Перминов
Правила оформления кода закреплены в стандартах: какие нужны отступы, длина строк и названия переменных. Они делают код разработчика понятным и единообразным. Правила бывают внутренними (для конкретного проекта) или общими. Например, в Python главный стандарт — PEP8.
Привести код в нужный формат, например, под PEP8 — задача, которая может занять много времени. Поэтому были разработаны вспомогательные инструменты — linters и formatters.
Linter и formatter безопасно исправляют код, не меняя его поведения. Они упрощат жизнь разработчка и помогают избежать споров о форматировании и правильности именования классов во время ревью, экономя участникам время и нервы 🙂.
Разработчик вызовом одной команды автоматически форматирует код и находит конкретные участки, которые не соответствуют принятому стандарту, чтобы их поправить. А ревьювер не тратит силы на проверку форматирования, если в CI MR прошёл этапы linter и formatter, уделяя всё внимание на ревью реализации функционала.
Основной linter для python — flake8, а formatters — isort и black. Каждый из них имеет свою конфигурацию и команду запуска.
Использование нескольких инструментов вызывает ряд неудобств:
1. Отдельные файлы конфигураций замусоривают корень проекта и могут конфликтовать между собой.
2. Каждый инструмент — отдельная зависимость, которую надо установить. Кроме того, для flake8, как правило, необходимо доустанавливать отдельные плагины.
3. Каждый инструмент запускается отдельным процессом / задачей в CI и может работать относительно долго на больших кодовых базах.
Ruff помогает избавиться от них: он ставится одним python package, правила для форматирования и различных linters описываются в одном конфиге, а реализация на Rust делает его быстрее аналогов🚀.
Пример внедрения ruff в проект
В
pyproject.toml добавляются следующие строки:[tool.ruff] # Общие настройки ruff
extend-exclude = ["*.ipynb"] # Исключаем Jupyter-ноутбуки из проверки
line-length = 120 # Лимит длины строки
lint.select = [ # Добавляем правила из списка https://docs.astral.sh/ruff/rules
"E", # pycodestyle
"F", # pyflakes
"I", # isort
]
lint.ignore = [
"F821", # Пример добавления игнорирования правил
]
[tool.ruff.format] # Отдельные настройки форматтера
quote-style = "double" # Перевод одинарных кавычек в двойные
indent-style = "space" # Перевод табов в пробелы
В
.pre-commit-config.yaml добавляются следующие строки:repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.7
hooks:
- id: ruff
types_or: [ python, pyi, jupyter ]
- id: ruff-format
types_or: [ python, pyi, jupyter ]
args: [ "--check", "--diff" ]
Далее:
# Устанавливаем зависимости
pip install pre-commit ruff
# После настройки linter и formatter создаем hooks для commit/push
pre-commit install
# Использование
ruff check --fix # Запустит linter, подсветит ошибки и исправит некоторые ошибки
ruff format # Запустит formatter и отформатирует код
Автор: Иван Перминов
Про форматтеры, линтеры и другие инженерные практики, помогающие навести порядок в репозиториях DL-инженеров, рассказываем на курсе «Деплой DL-сервисов»⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👏13❤9👍5❤🔥2🐳2
Запланируйте обучение в DeepSchool на следующий год с выгодой до 26%!
В январе мы планируем повышение цен, но сейчас можно успеть забронировать место по старым ценам и с новогодней скидкой!
Выбирайте 1 из вариантов:
В акции участвуют программы:
— DLOps (ранее «Деплой DL-сервисов») — как создавать и деплоить DL-сервисы. Старт 28 января
— LLM — полный цикл работы с LLM для ML/DL-инженеров. Старт 19 февраля
— CV Rocket — как решать сложные задачи в Computer Vision. Старт 10 марта
— LLM Pro — как проектировать и запускать сложные NLP-системы. Старт 1 апреля
— LLM Start — вход в LLM и автоматизацию для разработчиков и IT-специалистов без опыта в ML/DL. Старт 3 февраля
Успевайте внести предоплату до повышения цен и окончания скидок!
Переходите на сайт, выбирайте программу и присоединяйтесь к обучению в новом году!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤8👍4🍾2
Практические советы по работе с Docker
Docker — часть современного стека разработчика, поэтому важно уметь им пользоваться эффективно. В предыдущей статье рассказывали, как ускорить сборку и уменьшить размер Docker-образов.
В новой статье собрали больше практических советов по работе с Docker 🐳
Читайте новую статью по ссылке 🧑💻
🪔 DeepSchool
Docker — часть современного стека разработчика, поэтому важно уметь им пользоваться эффективно. В предыдущей статье рассказывали, как ускорить сборку и уменьшить размер Docker-образов.
В новой статье собрали больше практических советов по работе с Docker 🐳
Читайте новую статью по ссылке 🧑💻
💡Best practices по работе с docker и другими инструментами разработки рассказываем на курсе «Деплой DL-сервисов», который стартует в январе!
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
Практические советы по работе с docker - DeepSchool
Рассказываем больше практических советов по работе с Docker
2🔥15❤10🐳6👍3🤝2
Если не успели сделать подарок
Напоминаем, что у нас есть специальные новогодние предложения и сегодня — последний день, когда ими можно воспользоваться🔔
Вы можете выбрать один из вариантов:
1️⃣ внести предоплату и зафиксировать скидку 20% на один курс, который стартует в 2026 году
2️⃣ или зафиксировать место предоплатой сразу на два курса, чтобы получить скидку 20% на первый и 26% на второй
В акции участвуют все наши основные программы:
- DLOps (раньше Деплой DL-сервисов) — как создавать и деплоить DL-сервисы. Старт 28 января
- LLM — полный цикл работы с LLM для ML/DL-инженеров. Старт 19 февраля
- CV Rocket — как решать сложные задачи в Computer Vision. Старт 10 марта
- LLM Pro — как проектировать и запускать сложные NLP-системы. Старт 1 апреля
- LLM Start — вход в LLM и автоматизацию для разработчиков и IT-специалистов без опыта в ML/DL. Старт 3 февраля
С этого года цены на программы подрастут, а сейчас вы можете забронировать за собой место по условиям 2025 года и со скидкой.
Если давно откладывали обучение или не могли совпасть с потоком, то это хорошая возможность вернуться к этому вопросу🎄
Выбирайте программу на сайте, изучайте подробности и записывайтесь!
Напоминаем, что у нас есть специальные новогодние предложения и сегодня — последний день, когда ими можно воспользоваться
Вы можете выбрать один из вариантов:
В акции участвуют все наши основные программы:
- DLOps (раньше Деплой DL-сервисов) — как создавать и деплоить DL-сервисы. Старт 28 января
- LLM — полный цикл работы с LLM для ML/DL-инженеров. Старт 19 февраля
- CV Rocket — как решать сложные задачи в Computer Vision. Старт 10 марта
- LLM Pro — как проектировать и запускать сложные NLP-системы. Старт 1 апреля
- LLM Start — вход в LLM и автоматизацию для разработчиков и IT-специалистов без опыта в ML/DL. Старт 3 февраля
С этого года цены на программы подрастут, а сейчас вы можете забронировать за собой место по условиям 2025 года и со скидкой.
Если давно откладывали обучение или не могли совпасть с потоком, то это хорошая возможность вернуться к этому вопросу
Выбирайте программу на сайте, изучайте подробности и записывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
deepschool.ru
Научитесь создавать и деплоить DL-сервисы за 4 месяца — DeepSchool
❤12🔥6🍾4
Приходите на обновлённый курс по деплою
Мы обновили программу курса «DLOps», который раньше назывался «Деплой DL-сервисов».
В программу добавили две новые лекции про Kubernetes: за них вы освоите основы k8s, которые нужны разработчику, и задеплоите своё демо-приложение с моделью при помощи Helm.
При этом «DLOps» остаётся курсом про то, как ML/DL-инженеру писать поддерживаемый код вне Jupyter-ноутбуков, оборачивать модели в сервисы, версионировать эксперименты и данные, настраивать CI/CD и автоматизировать рутину.
Вы освоите инженерные практики, которые позволяют отвечать за полный жизненный цикл модели, а не передавать её «дальше по цепочке»
🗓 DLOps стартует 28 января
Если оставите заявку до 18 января, то сможете присоединиться со скидкой 20%! 🔥
Переходите на сайт, изучайте программу и записывайтесь!
Мы обновили программу курса «DLOps», который раньше назывался «Деплой DL-сервисов».
В программу добавили две новые лекции про Kubernetes: за них вы освоите основы k8s, которые нужны разработчику, и задеплоите своё демо-приложение с моделью при помощи Helm.
При этом «DLOps» остаётся курсом про то, как ML/DL-инженеру писать поддерживаемый код вне Jupyter-ноутбуков, оборачивать модели в сервисы, версионировать эксперименты и данные, настраивать CI/CD и автоматизировать рутину.
Вы освоите инженерные практики, которые позволяют отвечать за полный жизненный цикл модели, а не передавать её «дальше по цепочке»
Если оставите заявку до 18 января, то сможете присоединиться со скидкой 20%! 🔥
Переходите на сайт, изучайте программу и записывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
deepschool.ru
Научитесь создавать и деплоить DL-сервисы за 4 месяца — DeepSchool
❤15🔥11👍8🤝1
How to: уменьшить Docker-образ
Docker помогает разработчику сохранить время и нервные клетки — упростить деплой приложения и сделать окружение воспроизводимым. В течение проекта большинство инженеров, работающих с Docker, сталкиваются с проблемой роста размера образа и времени его сборки.
В новом видео показываем, как уменьшить размер Docker-образа и ускорить его сборку.
Смотрите по ссылке: https://youtu.be/QwOI46dF1rw 👀
Docker помогает разработчику сохранить время и нервные клетки — упростить деплой приложения и сделать окружение воспроизводимым. В течение проекта большинство инженеров, работающих с Docker, сталкиваются с проблемой роста размера образа и времени его сборки.
В новом видео показываем, как уменьшить размер Docker-образа и ускорить его сборку.
Смотрите по ссылке: https://youtu.be/QwOI46dF1rw 👀
Практики из видео — часть инженерного подхода, которому мы учим на курсе «DLOps»: от написания сервисов и их контейнеризации до CI/CD, мониторинга и поддержки ML-сервисов.
Старт 28 января. Оставьте заявку до 18 января, чтобы записаться со скидкой 20%! ⚡️
YouTube
How to: уменьшить Docker-образ
Docker помогает разработчику сохранить время и нервные клетки — упростить деплой приложения и сделать окружение воспроизводимым. В течение проекта большинство инженеров, работающих с Docker, сталкиваются с проблемой роста размера образа и времени его сборки.…
❤13👍8🔥7🐳2😍1
Инструменты для деплоя DL-моделей
DL-инженеру уже недостаточно учить модели в Jupyter-тетрадках, чтобы соответствовать запросам индустрии. Важно уметь доводить их до пользователей. В этот четверг на открытой онлайн-лекции мы покажем, как выглядит путь модели после обучения!
На лекции вы узнаете:
- когда стоит использовать Jupyter-ноутбуки, а когда нет
- как подготовить репозиторий моделинга
- варианты конвертации модели
- как обернуть инференс в http-приложение
- чем помогает Model Serving
- как деплоят приложения и автоматизируют этот процесс
А в конце представим курс «DLOps». Это программа про то, как ML/DL-инженеру писать поддерживаемый код вне Jupyter-ноутбуков, оборачивать модели в сервисы, версионировать эксперименты и данные, настраивать CI/CD и автоматизировать рутину. Всем участникам лекции подарим скидки на обучение!🔥
🙋♂️Спикеры лекции:
— Дмитрий Раков — руководитель ML в НИИАС, делает perception-алгоритмы для беспилотных поездов
— Тимур Фатыхов — основатель DeepSchool, ex Lead CV Engineer KoronaPay
⏰Дата и время: 22 января, чт, 18:00 МСК
Регистрируйтесь по ссылке и до встречи в четверг вечером!
DL-инженеру уже недостаточно учить модели в Jupyter-тетрадках, чтобы соответствовать запросам индустрии. Важно уметь доводить их до пользователей. В этот четверг на открытой онлайн-лекции мы покажем, как выглядит путь модели после обучения!
На лекции вы узнаете:
- когда стоит использовать Jupyter-ноутбуки, а когда нет
- как подготовить репозиторий моделинга
- варианты конвертации модели
- как обернуть инференс в http-приложение
- чем помогает Model Serving
- как деплоят приложения и автоматизируют этот процесс
А в конце представим курс «DLOps». Это программа про то, как ML/DL-инженеру писать поддерживаемый код вне Jupyter-ноутбуков, оборачивать модели в сервисы, версионировать эксперименты и данные, настраивать CI/CD и автоматизировать рутину. Всем участникам лекции подарим скидки на обучение!
🙋♂️Спикеры лекции:
— Дмитрий Раков — руководитель ML в НИИАС, делает perception-алгоритмы для беспилотных поездов
— Тимур Фатыхов — основатель DeepSchool, ex Lead CV Engineer KoronaPay
⏰Дата и время: 22 января, чт, 18:00 МСК
Регистрируйтесь по ссылке и до встречи в четверг вечером!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍7🔥5🐳3🤝2
Алгоритмы подбора гиперпараметров для моделей
Настройка гиперпараметров — надёжный метод повысить метрики обучаемой модели. Для этой задачи разработано множество алгоритмов, каждый из которых использует свою стратегию поиска гиперпараметров. О нескольких популярных алгоритмах сегодня и расскажем.🕵🏻♂️
В новой статье:
- напоминаем базу — принцип работы алгоритмов Grid Search и Random Search
- рассказываем, как улучшить Random Search при помощи Sobol/Halton sequences
- разбираем два основных алгоритма из Optuna: Tree-structured Parzen Estimator (TPE) и Covariance Matrix Adaptation Evolution Strategy (CMA-ES)
А ещё в конце статьи оставили таблицу-шпаргалку со сценариями использования разобранных алгоритмов.
Читайте новую статью по ссылке!👈
🪔 DeepSchool
Настройка гиперпараметров — надёжный метод повысить метрики обучаемой модели. Для этой задачи разработано множество алгоритмов, каждый из которых использует свою стратегию поиска гиперпараметров. О нескольких популярных алгоритмах сегодня и расскажем.🕵🏻♂️
В новой статье:
- напоминаем базу — принцип работы алгоритмов Grid Search и Random Search
- рассказываем, как улучшить Random Search при помощи Sobol/Halton sequences
- разбираем два основных алгоритма из Optuna: Tree-structured Parzen Estimator (TPE) и Covariance Matrix Adaptation Evolution Strategy (CMA-ES)
А ещё в конце статьи оставили таблицу-шпаргалку со сценариями использования разобранных алгоритмов.
Читайте новую статью по ссылке!👈
Please open Telegram to view this post
VIEW IN TELEGRAM
DeepSchool
Алгоритмы подбора гиперпараметров для моделей - DeepSchool
Разбираем принципы работы популярных алгоритмов
1❤21🔥10👍5🐳5🤝1
Осталось 3 часа до лекции по DLOps!
Сегодня Дмитрий Раков и Тимур Фатыхов покажут, как выглядит путь модели после обучения!
На лекции вы узнаете:
- когда стоит использовать Jupyter-ноутбуки, а когда нет
- как подготовить репозиторий моделинга
- варианты конвертации модели
- как обернуть инференс в http-приложение
- чем помогает Model Serving
- как деплоят приложения и автоматизируют этот процесс
А в конце представим курс «DLOps» и подарим скидки на обучение✨
Регистрируйтесь и приходите сегодня в 18:00 МСК!
Сегодня Дмитрий Раков и Тимур Фатыхов покажут, как выглядит путь модели после обучения!
На лекции вы узнаете:
- когда стоит использовать Jupyter-ноутбуки, а когда нет
- как подготовить репозиторий моделинга
- варианты конвертации модели
- как обернуть инференс в http-приложение
- чем помогает Model Serving
- как деплоят приложения и автоматизируют этот процесс
А в конце представим курс «DLOps» и подарим скидки на обучение✨
Регистрируйтесь и приходите сегодня в 18:00 МСК!
deepschool.ru
Инструменты для деплоя DL-моделей
Расскажем, как донести модель до пользователя и о других инженерных практиках
🔥11❤6👍5