Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Планируем GPU-нагрузку в Kubernetes: от стандартных механизмов до кастомных решений

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели5.6K

Привет, Хабр! Меня зовут Макарий, и как Senior SRE в Yandex Cloud я не только участвовал в разработке Managed Service for Kubernetes, но и всегда любил в свободное время посмотреть, что интересного понавыпускали для «кубика». Kubernetes, как де‑факто стандарт оркестрации контейнеров, предлагает базовые механизмы для управления вычислительными ресурсами. Однако стандартный планировщик Kubernetes (kube‑scheduler) разрабатывался с учётом общих принципов балансировки нагрузки и не специализирован для уникальных особенностей рабочих GPU‑нагрузок.

Предлагаю рассмотреть весь спектр возможностей — от встроенных механизмов шедулинга K8s до специализированных планировщиков, таких как Volcano, Apache YuniKorn и KAI‑Scheduler. Проанализирую конкретные сценарии, в которых каждый из этих инструментов демонстрирует свои преимущества, и предложу рекомендации по выбору оптимального решения для ваших рабочих GPU‑нагрузок.

Читать далее

SFT vs RL: Сравнение методов настройки LLM для задач программирования и игровых сред

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.1K

В современной разработке AI-агентов возникает необходимость адаптации больших языковых моделей (LLM) для решения специфических задач, требующих не просто генерации текста, а выполнения последовательных действий с рассуждениями. В этой статье мы рассмотрим и сравним два основных подхода к настройке моделей: Supervised Fine-Tuning (SFT) и Reinforcement Learning (RL), используя библиотеку TRL (Transformer Reinforcement Learning) от Hugging Face.

Читать далее

Автоматизация выдачи УНЭП у федерального ритейлера: интеграция BPMS с 1С: ЗУП и КриптоПро

Время на прочтение3 мин
Охват и читатели6.1K

Для компаний с разветвленной филиальной сетью оцифровка внутреннего документооборота уже давно стала необходимостью. ЭДО создает единое информационное пространство, позволяя моментально находить, подписывать и отслеживать приказы и заявки, а также значительно сокращает операционные затраты. Сегодня поделимся опытом федерального ритейлера, где потребовалось автоматизировать массовую выдачу УНЭП. Решение будет также полезно для крупных производственных и строительных предприятий.

Читать далее

Гибкая ECS с кастомными layout-профилями: как я строил ECSS внутри своего игрового движка

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.4K

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

В этой статье я хочу рассказать простыми словами - что такое ECS, и как он эволюционно появился у меня.

Что такое ECS - Entity Component System (Сущность Компонент Система) - архитектура хранения данных, где логика - системы, явно отделена от данных - компонентов, которые объединены одним общим id - сущностью.

В двух словах, идея ECS заключается в том, чтобы навести порядок в игровом коде, и игровом мире - выделить все данные игровых объектов(сущностей), и желательно сделать это data-oriented (почему желательно я расскажу ниже).

Предположим, у вас в игре есть объект КУБ - квадратный, все стороны равны, все углы равны, классический такой КУБ. У него есть положение в мире (Transform) у него есть его кубический меш (Mesh), он умеет быть отрендеренным (IsRenderable), и, ко всему прочему, он еще и обладает какой-то своей кубической физикой (Physic).

Читать далее

Что происходит после fn main() в Rust?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели10K

Привет!

Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }, компилируем, и на выходе получаем бинарник. Что происходит под капотом компилятора Rust в этот момент? Давайте аккуратненько заглянем внутрь этого таинственного процесса.

Читать далее

Как мы учим Яндекс Карты предупреждать о манёврах: без использования LLM, но с помощью водителей

Время на прочтение14 мин
Охват и читатели9.2K

Что может быть проще, чем сгенерировать голосовую подсказку для навигатора? Считаем угол поворота — озвучиваем манёвр. Именно так наша система и работала годами, пока не обросла таким количеством эвристик и региональных «костылей», что её поддержка стала дороже разработки. Добавление нового правила для одной страны ломало логику в другой, а простая задача «отличить плавный изгиб от поворота» превращалась в детектив.

Меня зовут Дмитрий, и я руковожу ML‑разработкой в команде автонавигации Яндекс Карт. Вместе с моим коллегой Альбертом Юсуповым (@al‑iusupov) в этой статье мы поделимся историей полного переосмысления системы генерации дорожных аннотаций. Расскажем, почему решили отказаться от десятков хитрых условий в коде, а также почему заманчивая идея отдать всё на откуп большим нейросетям (VLM, LLM) провалилась. И, наконец, как пришли к элегантному решению: создали уникальный датасет с помощью сотен водителей‑экспертов и обучили быструю и точную ML‑модель, которая работает по принципу «меньше, но лучше».

Читать далее

Автоматизируем машинное обучение с помощью ИИ-агентов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4.7K

Решая соревнования на Kaggle начинаешь замечать паттерн. Baseline сделать просто: загрузить данные, запустить CatBoost или LightGBM, получить baseline метрику. Это занимает полчаса. Но чтобы попасть в топ решений, нужно перепробовать десятки вариантов препроцессинга, сотни комбинаций фичей и тысячи наборов гиперпараметров.

Существующие AutoML системы не сильно помогают. Они работают по фиксированному сценарию: пробуют предопределенный набор алгоритмов, выбирают лучший по метрике и возвращают результат. AutoGluon обучает несколько моделей и делает многоуровневый ансамбль, но каждый запуск начинается с нуля. TPOT генерирует pipeline через генетический алгоритм, но не учится на ошибках предыдущих запусков.

Главная проблема в том, что эти системы не рассуждают. Они не анализируют почему конкретный подход сработал или провалился. Они не адаптируются к специфике задачи. Они не накапливают опыт между запусками. Каждая новая задача для них как первая.

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

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

Читать далее

Как попасть в мир олимпиадного (спортивного) программирования? Спорт для ума, который меняет мышление

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.9K

Олимпиадное программирование — это спорт для ума, который прокачивает алгоритмическое мышление, скорость и выдержку. Разбираем, с чего начать, какие навыки нужны, почему для соревнований чаще выбирают C++ и какие ресурсы помогут подготовиться школьникам, студентам и взрослым новичкам.

Хочешь попробовать интеллектуальный спорт, где за пять часов нужно решить несколько задач и обойти соперников по скорости мышления? Спортивное программирование даёт не только адреналин соревнований, но и реальный буст к учёбе, поступлению и карьере — от первых олимпиад в школе до участия в ICPC и стажировок в IT-компаниях.

Читать далее

Анализ вариантов оптимизации ресурсоёмкого SQL-запроса: Вариант-5 «Условие WHERE»

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели5.9K

Оптимизировать запрос в вакууме — просто. Но как он поведет себя, когда десятки таких же запросов одновременно борются за ресурсы?

Эксперимент-5 : Условие WHERE

Читать далее

Как документировать GraphQL API: полное руководство для технических писателей

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели6.3K

GraphQL API — это мощно, но как его документировать, чтобы разработчики остались довольны? В этой статье — готовый план действий. Мы начнём со сравнения GraphQL и REST, затем покажем, как с помощью комментариев и примеров кода превратить схему в наглядное руководство. Вы узнаете, как улучшить GraphiQL Playground подсветкой синтаксиса и создать статический справочник, если Playground недоступен. В конце вас ждёт учебный репозиторий для тренировок на реальном API.

Читать далее

Как я учу Kubernetes. Запуск локального Minikube, реальные ошибки и как я их решал

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.6K

Я изучаю Kubernetes как часть практики по контейнеризации и автоматизации развертывания. Чтобы системно выстроить понимание, я веду рабочий конспект в формате статьи: фиксирую используемые команды, практические наблюдения и способы решения возникающих проблем. Моя цель — уверенно понимать, как устроен кластер изнутри, и уметь работать с ним в реальных условиях. Эта статья будет полезна тем, кто также начинает путь в Kubernetes и сталкивается с тем, что документация даёт базу, но не всегда описывает полную последовательность действий и типичные ошибки, возникающие в процессе.

Для практики я использую локальный кластер на Minikube — он позволяет экспериментировать с компонентами Kubernetes без аренды серверов или облачных инфраструктуры.

Читать далее

Из госслужащего (ФНС) в Telegram-блогеры: что я понял за месяц и какие методы продвижения не работают

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.8K

Это моя первая статья здесь, в новом «амплуа», она про суровую реальность маркетинга, с которой сталкивается новичок, 12 лет оторванный от «реального мира».

Короткий бэкграунд: 12 лет я отдал госслужбе. Работал в Федеральной налоговой службе, доработал до заместителя начальника отдела регионального УФНС. Но в ноябре 2025 года я окончательно осознал, что пора двигаться дальше, сбросил «оковы» госслужащего, зарегистрировал ИП и открыл для себя дивный мир частного налогового консалтинга.

Вообще, решение «валить» из госслужбы созрело давно, но я долго боялся, что меня ждет в мире, где придется начинать с нуля и принимать все решения самостоятельно. В итоге — решение принято, и вот уже почти месяц я пытаюсь разными способами продвинуться в конкурентной борьбе с другими «специалистами». Что из этого вышло — узнаете дальше.

Читать далее

Российские ученые разгадали секрет стабильных полётов у поверхности Марса

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели16K

Коллектив исследователей из МГУ им. М.В. Ломоносова, Института системного анализа РАН и МФТИ провел детальное численное моделирование, раскрывающее уникальные аэродинамические эффекты при полётах в разреженной атмосфере Марса. Оказалось,  что при посадке летательного аппарата вязкость тонкого марсианского воздуха создает неожиданный стабилизирующий момент, что также позволит реализовать  машущий полёт исследовательских дронов. Результаты работы опубликованы в журнале Acta Astronautica при поддержке гранта РНФ номер 24-71-10026.

Полёты на Красной планете — это вызов для инженеров. Атмосфера Марса почти в сто раз менее плотная, чем земная, что кардинально меняет законы аэродинамики. Движение в такой среде происходит при так называемых низких числах Рейнольдса, когда силы инерции уступают силам вязкости. Это означает, что все интуитивные представления о полёте, основанные на земном опыте, требуют пересмотра. Особенно критичным становится понимание динамики вблизи поверхности — на финальном этапе посадки, когда любая нестабильность может привести к катастрофе.

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

Читать далее

Ближайшие события

45 дней вместо 90: новые правила Let's Encrypt

Время на прочтение5 мин
Охват и читатели14K

Сначала новость кратко: Let's Encrypt собирается постепенно сократить срок жизни сертификатов с 90 до 45 дней. Это решение знаменует собой очередной этап в эволюции стандартов безопасности веба, в которой, да, изначально всё началось с гораздо более длительных сроков действия сертификатов. Еще в 2015 году сертификаты могли действовать до 5 лет, но по мере роста угроз и появления новых уязвимостей в криптографических алгоритмах индустрия постепенно переходит к более коротким срокам.

С 13 мая 2026 года появится (пока как опция) возможность получения 45-дневных сертификатов. Далее, 10 февраля 2027 года максимальный срок сократится до 64 дней, а к 16 февраля 2028 года — до финальных 45 дней.

Ух ты ж!

Laravel Copilot Workspace: как я собрал полный цикл разработки вокруг Copilot-агентов

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.5K

Я собрал Laravel-репозиторий, в котором GitHub Copilot работает не как один «волшебный ИИ», а как команда кастомных агентов: одни оформляют ТЗ и архитектуру, другие пишут и проверяют код, третьи обновляют документацию и собирают релизы. В статье показываю, как устроен этот workspace и как его можно использовать в своих проектах.

Читать далее

Запускаем C++ SQL-движок в браузере: как парсить Excel, CSV и Parquet через WebAssembly (без сервера)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.6K

Современный фронтенд давно перестал быть просто "лицом" приложения. Мы переносим в браузер нейросети, обработку видео и криптографию. Но когда дело доходит до банальной аналитики файлов — например, локального парсинга тяжелого Excel или Parquet-файла и выполнения SQL-запросов по ним — мы часто упираемся в ограничения JS-библиотек или вынуждены гонять данные на сервер.

Команда r7-consult решила задачу радикально: мы взяли наш C++17 движок excel_loader, скомпилировали его в WebAssembly и получили возможность выполнять полноценный SQL по локальным файлам прямо в браузере.

В этой статье разберем архитектуру решения wasm-sqlite-database, посмотрим, как C++ код дружит с JS, и покажем, как превратить браузер в локальный ETL-инструмент.

Читать далее

FastAPI: Гайд по нормальной структуре для новичков (Часть 1. Слой домена)

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели9.4K

В большинстве случаев новичок, который хочет получить гайд по разработке FastAPI-приложения, сталкивается со статьями формата: «давайте напишем TODO» или «простенький интернет-магазин с парой товаров». Но проблема в том, что по этим примерам непонятно, зачем нужна правильная архитектура, за что браться в начале, какие папки и файлы создавать и т.д. В этой статье я попробую рассказать об этом на примере достаточно нетривиальной задачи — анализа видео с помощью нейросетей.

Читать далее

Марсианские страсти: DOS, любовь и С++

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели13K

У нас было 640Кб памяти, CGA-экран, 20-мегабайтовый диск и целых четыре мегагерца тактовой частоты. А еще старые пятидюймовые дискеты на 360кб. Не то чтобы это был необходимый набор для современного разработчика C++, но если уж начал коллекционировать дичь, то сложно остановиться..

Читать далее

Мониторинг в Linux на уровне ядра. Краткое практическое введение в eBPF+Cilium

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.7K

Добрый день, всем читающим данную статью. Недавно эксперементируя с eBPF для разработки нового функционала своей EDR для linux-серверов, я столкнулся с огромной проблемой: на просторах интернета есть огромный пласт статей по теории работы с eBPF, однако кратких практических статей как работать с BPF мной найдено не было.

Если быть более точным, то такие статьи есть, однако, они не дают понимания функционала.
В общем, в данной статье хотелось бы написать краткий гайд по работе с eBPF с уклоном в практику.

Читать далее

FlashcardsLoop — или как я делал свой Quizlet

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7K

По традиции статей Хабра начну с описания проблемы.

Я изучаю C#, .NET, ASP.NET и ищу работу Backend-разработчика. Сейчас дело дошло до собеседований и фундаментальных вещей (синтаксис, паттерны проектирования, принципы SOLID), я понял, что информации море и она вываливается из головы.

Вспомнил про метод карточек (Flashcards), который обычно используют для иностранных языков. Пошел на популярные ресурсы: Quizlet, RemNote и прочие. Зарегистрировался, начал создавать колоды, мне понравилось, вошел во вкус и каково было мое разочарование когда я везде натыкался на платные подписки. Где-то ограниченное количество карточек, где-то постоянная реклама, где-то очень замудренный интерфейс сделанный вообще не понятно для кого (привет Anki).
Хочешь больше функций? Плати. — Хочешь учить без рекламы? Плати. — Хочешь добавить картинку? Ну, ты понял...

Я смотрел на эти интерфейсы и во мне кипела злость: «Ну это же обычное CRUD-приложение! Две таблицы в базе, простейший API. Что тут сложного? Я сам могу такое сделать!»

Так родилась идея: написать свой сервис. Бесплатный. Без ограничений. Для себя. Это и проблема решится, и пет-проект для резюме будет.

Читать далее