Нативная поддержка GPU ресурсов в K8SРебята привет!Смотрите как интересно сейчас развивается поддержка GPU в K8S.Ранее я вам рассказывал про новую фишку DRA - Dynamic Resource Allocation в кубере. Так вот вчера на KubeCon подробно рассказывали про эту фичу в контексте использования GPU).Нас ждет новый интересный вариант определения ресурсов GPU с расширенными возможностями)Уже с 30 версии доступен нативный шеринг ГПУ с помощью таймслайсинга и MPS.с 33 версии будет доступен динамический MIG (что сейчас только кастыльными методами можно реализовать)Конечно поделюсь с вами исследованиями как такая фича может нам помочь с менеджментом GPU в K8S, чем отличается от текущих подходов и какие возможности открывает такая механика. Так что следите за обновлениями 🤩
Anton Alekseev | Инфраструктура для AI и ML
@mlops_infra · 809 подписчиков
Посты канала Anton Alekseev | Инфраструктура для AI и ML в SillyFeed: единая лента публичных Telegram-каналов со ссылками на оригиналы.
Привет, я Антон@antonaleksПишу здесь про инфраструктуру для AI/ML
Посты канала
Кастомные формы в JupyterhubПривет!Сейчас столкнулся с задачей - как сделать кастомную формочку в jupyterhub для создания инстансов. Пока требуется просто ручками вводить название образа, либо выбирать дефолтный.Сначала я хотел сделать по этой замечательной статье Саши Егорова (у него кстати тоже классный канал про MLOps) через шаблоны jinja2, но потом наткнулся на немного другой вариант...Если вы используете jupyterhub хелм чарт 3.8.8 версии (возможно есть и в версиях пониже, нужен kubespawner 6.1.0+), то можно воткнуть вот такое изящное решение с использованием profileList и unlisted_choiceprofileList:- display_name: "Demo" description: "Demo entry 1." slug: "demo-1" default: true profile_options: image: display_name: "Image" choices: base: display_name: "jupyter/base-notebook:latest" kubespawner_override: image: "jupyter/base-notebook:latest" minimal: display_name: "jupyter/minimal-notebook:latest" default: true kubespawner_override: image: "jupyter/minimal-notebook:latest" unlisted_choice: enabled: true display_name: "Other image" display_name_in_choices: "Enter image manually" validation_regex: "^jupyter/.+:.+$" validation_message: "Must be an image matching" kubespawner_override: image: "{value}"И выйдет примерно также, как на скриншоте! Еще и валидацию можно прикрутить через regexp - ну кайф! Может еще можно другие параметры kubespawner переопределить так, нужно пробывать...
Кто такой MLOps инженер?😩Недавно помогал на менторской консультации сформировать понимание - что из себя представляет MLOps инженер?Из ~180 вакансий на HH вы сможете увидеть в основном такие заголовки:- MLOps- DevOps- ML Engineer- Data Scientist- Senior ML Python Developer- Technical Product Manager)))и у всех будет написано что-то такое (MLOps в бэкграунде, MLOps практики). Как видим - рынок сам не понимает что это такое. Некий солдат универсал, который умеет все.И у меня спросил менти - куда в итоге развиваться и что делает то MLOps инженер?)Как я ответил на этот вопрос.🗣Я нарисовал небольшую диаграмму📈. Из моего опыта как млопса обычно приходиться работать с тремя сущностями:1️⃣ Data - платформы данных, ваши любимые Spark, Airflow и ETL. Feature stores и Data Lakes2️⃣ ML - эксперименты и автоматизация обучения моделей. MLFlow, Clearml, распределенное обучение и даже GPU!3️⃣ Inference - модельки в продакшене, http/grpc эндпоинты, хайлоуд нагрузки и оптимизация инференсаИ здесь кажется, что в одном инженере очень сложно уложить все три сущности. Поэтому я поделил их на Вертикали - специалисты, которые в основном варятся в инфраструктуре для каждого кружочка и процессами, связанными с ними.А что, если мы проведем горизонтальную линию на все три кружка? Мы получим пайплайн доставки ценности до конечного клиента - от подготовки данных до эндпоинта. И конечно задача таких инженеров - автоматизировать эту поставку.Так что мой ответ - смотря в какой специализации ты хочешь развиваться) Можно попробовать все сущности, можно углубиться в одну, здесь зависит от задач, которые ты выполняешь. Надеюсь скоро более менее рынок поймет, кто такой MLOps инженер, и возможно даже появится стандарт собеседований. А пока что на первых этапах учите DevOps/Backend/DataScience, так как под них стандарты собесов уже есть!Пишите в комментариях, что вы думаете про специализации MLOps инженера? LLMOps, InferenceOps, GPU-allocation-engineer - кто накинет больше вариантов?)
Ещё по теме «Технологии»
ТехнологииНа Реддите появились первые фотографии KTPocket R2. Счастливчик, получивший свой предзаказ, отмечает довольно высокое качество сборки (разве что шифты гремят при тряске) и ужасно работающий WiFi. Возможно, беспроводной сигнал глушит металлический корпус. Обещанной прошивки KOS ещё нет, устройство работает на совершенно голом Android.KTPocket - маленькая компания, буквально из одного человека. Первая портативка KT R1 не получила широкого распространения из-за высокой цены и низкого качества сборки. Она выпускалась в двух вариантах - крестовина сверху и стик сверху. Да-да, задолго до Retroid Pocket 6! Вторую модель можно предсказать на сайте, и вариативность просто зашкаливает:😒 Стик или крестовина сверху💀 Экран 4.5" 1620х1080 (3:2) или 4.2" 1280х960 (4:3)👹 Пластиковый, алюминиевый или магнезиевый корпус ◼️ 6/128, 8/256 или 12/512 Гб памяти😠 Только WiFi или WiFi+4G🐷 Пять вариантов расцветкиНекоторые ветки выбора взаимоисключающие (например, заявлено, что нет пластиковых корпусов для 3:2 экранов), но все равно, как-то многовато SKU для такой маленькой компании... Подозреваю, что многие опции так и останутся недоступнымиЦена R2, в зависимости от комплектации, составит 229-279 баксов.Да, чуть не забыл, KT R2 построена на чипе Mediatek D7300. Он обгоняет T820 на эпичные 15%. На мой вкус, при живой 476H, которая стоит почти в 2 раза дешевле, это лишает смысла 4:3 версию R2. А что до версии с экраном 3:2... Экран хорош, безусловно, но при такой цене он не перевешивает остального.#портативки #эмуляторы #ktpocket
Ровно перед майскими праздниками выстрелила и сильно прошумела CVE-2026-31431. Уязвимость в ядре позволяет проэксплуатировать LPE (Local Privilege Escalation) на почти всех дистрибутивах с 2017 года. Все говорят об LPE, но мало кто отмечает, что эту же уязвимость можно использовать для побега из контейнера в Kubernetes.Во-первых, об этом заявляют сами исследователи, которые обнаружили уязвимость. Обещают выпустить статью в блоге на этот счет (пока ещё не выпустили).Во-вторых, бага использует проблему в работе с кэшем страниц в ядре, а поскольку кэш страниц является общим для всех процессов на хосте, в том числе и за пределами контейнеров, скомпрометированный контейнер может повредить бинарные файлы с правами setuid, доступные другим контейнерам и ядру хоста.В качестве PoC советуем ознакомиться с репозиторием – Copy Fail (CVE-2026-31431) — Kubernetes Container Escape PoC. P.S. Мы также подтверждаем применимость этого в реальных условиях: в рамках аудита Kubernetes кластера нам удалось успешно использовать эксплойт. Демонстрацию можно увидеть на видео из нашего тестового окружения.






🇰🇿 В Казахстане утверждена Типовая методика оценки стоимости продуктов цифровых данных для госорганов, госюрлиц и субъектов квазигоссектора (Приказ №3 от 27.04.2026, вводится в действие с 12.07.2026). Документ формирует правовую основу для признания данных самостоятельным активом, который может быть предметом сделок, передачи, лицензирования и отражения в учете. ⬇️Основные изменения• впервые на уровне НПА закреплен подход к оценке стоимости цифровых данных как экономического актива• определены случаи обязательной оценки: сделки, отчетность, залог, вклад в капитал, банкротство, страхование, лицензирование и уступка прав• предусмотрены три подхода оценки: доходный, рыночный и затратный• для постановки на баланс рекомендован затратный метод, для продажи — доходный или рыночный• стоимость данных предлагается определять с учетом доходности, затрат на создание, хранения, безопасности и рыночного спроса• данные могут признаваться активом при наличии экономической выгоды и достоверно определяемой стоимости✔️Для комплаенса и корпоративного управления это важный шаг: цифровые данные становятся объектом имущественных прав, а значит возрастают требования к прозрачности владения, оценке, передаче, защите и недопущению злоупотреблений при распоряжении такими активами.

🏠 За выходные собрал семейный AI-архив здоровьяBig Tech продаёт это по $20 в месяц + vendor lock. У меня вышло 0 злотых.Мы с женой живём в Польше. У нас опилась стопка PDF-анализов на польском, направления, рецепты, выписки из клиник. Каждый раз перед визитом к врачу - паника: где тот результат витамина D от прошлого квартала? В каком письме было железо? Очевидное решение - Notion / Google Drive. Очевидная проблема - в том, что потом по этим данным невозможно нормально искать. PDF - мёртвый формат для анализа. Ты не спросишь у папки с файлами "покажи динамику железа за год".А мы хотим большего. Ожидаем, что в ближайшие годы AI-агенты дорастут до прогностической медицины - анализ трендов, раннее выявление отклонений, персональные рекомендации на основе истории. Для этого нужна база, а не разрозненные сканы в Downloads. Поэтому решили собирать сейчас - в структурированных MD-файлах, с тегами, датами и значениями, с доступом в любой момент через Telegram.Сел в субботу днём, закончил в воскресенье вечером. Получился рабочий продукт.📦 Что вышлоЖена кидает фото или PDF в Telegram-бота. Бот говорит "принято". Через 1-3 минуты документ обработан: текст распознан, поля извлечены (анализы, даты, врачи, клиники), сделан перевод на русский, добавлены теги, всё лежит в архиве. Вика пишет "железо" в чат - бот возвращает все документы где этот показатель был, с датами и значениями.🔧 Под капотомCloudflare Worker (бесплатный тариф) на entry point. Telegram webhook кидает файлы в R2 (object storage) и D1 (SQLite). Это always-on intake-слой - можем слать документы в любое время суток, даже если Mac выключен, обработается потом и удалится из Cloudflare. Долгосрочно данные хранятся локально в Obsidian - ничего чувствительного в облаке не остаётся.На MacBook Air крутится Python-агент. Раз в минуту дёргает Cloudflare, видит pending-айтемы, прогоняет через пайплайн:1️⃣ pypdf пытается вытащить текст из PDF2️⃣ если вышел мусор (типичная история с польскими лабораториями - встроенные subset-шрифты, pypdf возвращает control-символы) - падает в OCR через Tesseract с польским и английским словарями3️⃣ извлечённый текст идёт в Ollama, локально, qwen2.5:7b-instruct4️⃣ модель возвращает structured JSON: тип документа, даты, лабораторные значения с референсами и статусами, краткое резюме на русском5️⃣ всё пишется в локальный SQLite + Markdown-ноту в Obsidian-совместимом vaultПосле обработки агент пушит компактный summary в D1 - hot-path кэш для поиска. Когда жена пишет "железо" в Telegram, Worker лезет не на Mac (может быть оффлайн), а в D1-табличку - миллисекунды.
Локальная модель справляетсяОжидал что 7B-моделька будет тупить на польской медицине и придётся подключать Anthropic API. Оказалось нет. Замер на лабораторном PDF:
16 анализов из 16 распознаны корректно
референсные диапазоны распаршены правильно
статусы within_range / above_range / deficit проставлены корректно
резюме на русском с flagging-ом железа ниже нормы
3 минуты 36 секунд на трёхстраничный скан с OCR-фоллбэкомДля одностраничной фотки pipeline отрабатывает за 35 секунд. Это уже не "локальный AI как игрушка", это рабочий tool.Cost:
Cloudflare Worker, R2, D1 - free tier (нам нужны крохи от лимитов)
Ollama + qwen2.5:7b-instruct - open weights, бесплатно
MacBook Air M4 - и так уже есть
Telegram bot - бесплатноИтого 0 злотых в месяц на бесконечно растущий архив, который потом можно будет даже детям передать для их прогностических агентов.🤔 Что я из этого выношуТочка где локальные модели становятся достаточно хороши для нетривиальных задач - уже пройдена. На M-series Mac, бесплатной модели и пайплайне на коленке получается продукт, который год назад нужно было бы строить командой.Вангую что через 1-2 года таких персональных "архивов чего угодно" будет много. Все компоненты уже бесплатны, не хватает готового UX. Когда-то появятся модели, способные строить предиктивную медицину по персональной истории. Мы собираем данные уже сегодня.#library #tools

В новостях пишут, что отключат мобильный интернет с 5 по 9 мая. Так как я часто испытываю панические атаки, то решила отвлечься и сделать мини пет-проект по этой теме. Помимо приложухи для экстренного снятия приступа паники я запилила сообщество в ВК на ИИ-движке — для тех, кому надо успокоиться. Настроен ежедневный постинг поддерживающих фраз и дважды в неделю — автосуммаризация последних статей про ПТСР и панику с pubMed. Что-то там писать не обязательно, можно просто читать молча. Если это кого-то поддержит, буду считать свою социальную миссию выполненной. Читайте, его не отключат на праздники. https://vk.com/tishina_ru

#семантический_поиск #языковые_моделиБазовый минимум. Часть 3: RAG-системы⭐️◽️◽️◽️◽️📖 Читать

🍿 Что скрывает auto(x): новый синтаксис C++23В C++23 появился синтаксис auto(x) и auto{x}. Это не очередной сахар для объявления переменных. На самом деле — это именованная операция, у которой есть точная семантика. 🥳 Что происходит под капотом:auto(x) — это decay-copy: создаётся prvalue того же типа, что и x, но после применения std::decay. То есть:• Ссылки снимаются• Cv-квалификаторы (const/volatile) удаляются• Массивы → указатели• Функции → указатели на функцииconst int& r = 42;auto copy = auto(r); // int, не const int&⚡️ До C++23 для того же результата писали:auto copy = std::decay_t<decltype(r)>(r);❓ Зачем нужна явность? В простых случаях auto copy = r тоже даст int — auto и так делает decay. Но в обобщённом коде важно явно сигнализировать намерение: "я хочу копию, а не прокси или view".Главное применение — защита от UB при модификации контейнера. Классический пример — реализация pop_front:void pop_front(auto& container) { std::erase(container, auto(container.front())); // Без auto() — UB: front() может инвалидироваться // в процессе удаления элементов}Без auto() мы передаём ссылку на элемент, который erase может разрушить до сравнения. С auto() — сначала создаётся копия значения, потом происходит удаление. Безопасно и читаемо.❗️ auto(x) закрывает целый класс subtle-багов в шаблонном коде — там, где случайная ссылка вместо копии приводит к UB или неожиданному поведению.📍Навигация: Вакансии • Задачи • СобесыБиблиотека C/C++ разработчика#константная_правильность