Forwarded from OK ML
Математика категорий и ИИ
Любишь читать академичные лонгриды с сомнительной практической пользой? Тогда этот пост для тебя!
О теории категорий обычно говорят как об одной из самых абстрактных областей математики. Довелось прочитать популярную книгу «Восторг абстрактной математики» Юджении Ченг (вслух тебе её прочитают на ютубе, можешь купить на озоне за 4к и в целом за год достаточно прочитать только ее, чтоб собой гордиться, она сложная и АБСТРАКТНАЯ) и статью на хабре, а на основе прочитанного обдумать, где в ИИ теория категорий и зачем она вообще нужна! Посвящаю пост тому, кто хотел взять Юджению с собой в отпуск🍐 .
Дело в том, что теория категорий изучает не сами объекты, а отношения между ними и правила их композиции. Именно поэтому её иногда называют математикой композиции (и математикой математики). То самое "Думай абстрактно!".
Разберу несколько базовых терминов.
🌈 Категория — это совокупность объектов и стрелок (морфизмов) между ними. Стрелки можно последовательно склеивать (композировать), склейка ассоциативна, а у каждого объекта есть тождественный морфизм (стрелка), который ничего не меняет. Всё, три правила.
Например, если есть преобразования
то теория категорий рассматривает всю цепочку как единое отображение.
🌈 Морфизм (Morphism) называют обобщением функции. В абстрактной категории это просто стрелка между объектами, про которую известно лишь, что её можно композиционировать с другими стрелками. А уже в конкретных категориях (например, категории множеств или векторных пространств) морфизмы действительно являются отображениями, сохраняющими структуру. А вот если категория конкретная (объекты — множества со структурой), то морфизм — это гомоморфизм, то есть отображение, сохраняющее структуру. Да, абстракция — это не за пивом в КБ спуститься.
В машинном обучении морфизмом можно считать практически любое преобразование данных:
🍄 токенизация;
🍄 получение эмбеддингов;
🍄 слой нейронной сети;
🍄 attention;
🍄 вызов инструмента агентом.
Вся нейронная сеть по сути просто композиция морфизмов.
🌈 Композиция (Composition) — главный объект изучения теории категорий.
Если есть
то их можно объединить в одно преобразование
Именно поэтому современные ML-пайплайны и агентные системы естественно описываются языком категорий, так как они представляют собой композицию множества небольших компонентов.
🌈 Функтор (Functor) — отображение между двумя категориями, которое сохраняет их структуру. Переводит объекты в объекты, стрелки в стрелки, и делает это согласованно со склейкой.
Сравню с компилятором, зря что ли по ним учебники прочитаны.
Но самый понятный пример из ML — эквивариантность. Повернуть картинку и потом сегментировать = сегментировать и потом повернуть маску. Оба пути дают одно и то же — функториальность.
🌈 Натуральное преобразование (Natural Transformation) — способ согласованно преобразовать один функтор в другой. Если существуют два различных способа перевести текст в эмбеддинг, натуральное преобразование описывает, когда эти способы эквивалентны с точки зрения всей системы. С понятием эквивалентности в книге тоже пришлось помучиться, т.к. эквивалентны не значит равны!
🌈 Монада (Monad) — один из самых известных объектов теории категорий. Формально это эндофунктор (функтор из категории в саму себя) с двумя дополнительными операциями, удовлетворяющими определённым законам. Ближайший пример из МЛ практики — цепочка вызовов тулов агентом (каждый шаг тащит за собой контекст, состояние и возможный отказ, а монада описывает, как такие шаги корректно склеивать). Ради этого их в программирование и притащили — описывать вычисления с побочными эффектами (чтение памяти, вызов API и дальше придумай сам примеры).
А где здесь ИИ и зачем вообще этот пост?
Интерес к теории категорий в МЛ возник не потому, что она позволяет сделать трансформер умнее😡 . Скорее она предлагает единый математический язык для описания сложных AI-систем.
Сегодня появляются работы, где через категории описывают:
👋 композицию нейронных сетей;
👋 backpropagation и автоматическое дифференцирование;
👋 архитектуры глубокого обучения;
👋 мультимодальные модели;
👋 агентные системы;
👋 нейросимвольный AI.
Крч, надо ознакомиться с терминологией, потому что может пригодиться.
Что почитать?
Если ты дочитал до сюда и думаешь, что у меня свистит крыша и в МЛ это никому не надо, то статьи 2021 и 2024 годов:
⌚️ Обзор Category Theory in Machine Learning (2021) — хорошее введение в применение категорий в ML.
⌚️ Прямое продолжение первого, где авторы заявляют его как обновление и расширение обзора Shiebler et al. Систематизируют четыре направления — градиентное обучение, вероятностные модели, методы на основе инвариантности и эквивариантности и обучение на основе топосов. Последнее направление отвечает за интерпретируемость, композиционность и анализ глобальной структуры AI-систем.
Есть интуитивное ощущение, что теория категорий претендует на роль общего языка описания AI-систем — примерно как когда-то теория типов в программировании (сорри, если сравнение кажется ничего себе), способ говорить о том, что из чего собрано и почему оно склеивается. Пока это скорее исследовательское направление, но мы же тут, чтоб держать руку на пульсе.
Вот такой скучный лонгрид! От абстракций голова кругом.
Все!
🏆
Любишь читать академичные лонгриды с сомнительной практической пользой? Тогда этот пост для тебя!
О теории категорий обычно говорят как об одной из самых абстрактных областей математики. Довелось прочитать популярную книгу «Восторг абстрактной математики» Юджении Ченг (вслух тебе её прочитают на ютубе, можешь купить на озоне за 4к и в целом за год достаточно прочитать только ее, чтоб собой гордиться, она сложная и АБСТРАКТНАЯ) и статью на хабре, а на основе прочитанного обдумать, где в ИИ теория категорий и зачем она вообще нужна! Посвящаю пост тому, кто хотел взять Юджению с собой в отпуск
Дело в том, что теория категорий изучает не сами объекты, а отношения между ними и правила их композиции. Именно поэтому её иногда называют математикой композиции (и математикой математики). То самое "Думай абстрактно!".
Разберу несколько базовых терминов.
Например, если есть преобразования
Текст → Эмбеддинг → Ответ
то теория категорий рассматривает всю цепочку как единое отображение.
В машинном обучении морфизмом можно считать практически любое преобразование данных:
Вся нейронная сеть по сути просто композиция морфизмов.
Если есть
A → B
B → C
то их можно объединить в одно преобразование
A → C
Именно поэтому современные ML-пайплайны и агентные системы естественно описываются языком категорий, так как они представляют собой композицию множества небольших компонентов.
Сравню с компилятором, зря что ли по ним учебники прочитаны.
Но самый понятный пример из ML — эквивариантность. Повернуть картинку и потом сегментировать = сегментировать и потом повернуть маску. Оба пути дают одно и то же — функториальность.
А где здесь ИИ и зачем вообще этот пост?
Интерес к теории категорий в МЛ возник не потому, что она позволяет сделать трансформер умнее
Сегодня появляются работы, где через категории описывают:
Крч, надо ознакомиться с терминологией, потому что может пригодиться.
Что почитать?
Если ты дочитал до сюда и думаешь, что у меня свистит крыша и в МЛ это никому не надо, то статьи 2021 и 2024 годов:
Есть интуитивное ощущение, что теория категорий претендует на роль общего языка описания AI-систем — примерно как когда-то теория типов в программировании (сорри, если сравнение кажется ничего себе), способ говорить о том, что из чего собрано и почему оно склеивается. Пока это скорее исследовательское направление, но мы же тут, чтоб держать руку на пульсе.
Вот такой скучный лонгрид! От абстракций голова кругом.
Все!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1
OpenAI выложили @openai/codex-security — CLI и TypeScript-SDK для поиска, валидации и фикса уязвимостей в коде. Самое время заглянуть внутрь.
Проект
Сам пакет построен поверх
@openai/codex и @openai/codex-sdk. В src/ около 13,7 тыс. строк TypeScript, логика скана вынесена в _bundled_plugin/. Это бандл из 13 скиллов (каждый со своим субагентом), MCP-сервера, 32 Python-скриптов, реф-документов (references/) и JSON-схем (schemas/: coverage, findings, scan-manifest).Как оно работает
Сначала
threat-model строит модель угроз, затем оркестратор security-scan гоняет файлы через finding-discovery, который ищет кандидатов на уязвимости. Каждый кандидат проходит validation и attack-path-analysis (цепочка source → контроль → sink). В финале идут фиксы, и формирование отчёта. Из 13 скиллов основными являются именно эти 5, плюс триаж, отчетность и харденинг.Классы уязвимостей
Таксономия в проекте задана набором примеров в скиллах, прежде всего в
severity-policy и finding-discovery, и сами документы отмечают их как «не исчерпывающие». На практике границы охвата задаёт то, что модель сама распознает как уязвимость, детерминированного списка правил нет. В документах упомянуты семейства:- Инъекции: Command Injection, SQL/NoSQL/LDAP/XPath Injection, SSTI, XXE, XSS, Path Traversal, LFI/AFR/AFW, SSRF.
- Контроль доступа: обход авторизации и IDOR, нарушения границ доверия, обход аутентификации и захват аккаунта, CSRF на критичных действиях, повышение привилегий.
- Данные: утечка секретов, PII, ключей подписи и весов моделей, URL-импортёры и callback-клиенты.
- Выполнение кода и память: повреждения памяти, побеги из песочниц, контейнеров, VM и интерпретаторов, небезопасная десериализация (pickle, yaml, кодеки), опасные загрузки файлов, абьюз плагинов и макросов.
- Прочее: криптографические ошибки, уязвимости цепочки поставок, хардкод кред, логические уязвимости с нарушением целостности данных, DoS через исчерпание ресурсов.
Нейросимвольность
За моделью оставлена вся нечёткая часть работы: рассуждение о достижимости пути, контексте, намерениях разработчика. Формальная же логика сосредоточена в py-скриптах: ранжирование файлов, нормализация кандидатов, валидация контракта скана, генерация
report.md и SARIF.Скиллы весьма объёмны и пестрят оговорками вида «do not», «never», «must». По ним, при желании, можно восстановить всю историю боли и страданий разработчиков, занимавшихся отладкой этого проекта
Поддерживается режим
--mode deep, который сводится к многократному независимому запуску discovery (--max-discovery-runs 10, --stop-after-no-new 3) с последующим слиянием кандидатов на проверку. Смысл тут в том, что из-за недетерминизма LLM, для поднятия полноты и покрытия, нужно прогнать поиск несколько раз и взять объединение результатов. Настраивать агрессивность можно руками: --workers, --subagents, --effort .... И да, это недёшево — модуль cost.ts как бы намекает. Глубокий прогон среднего репозитория (~60 KLoC, связка c0wrk и sp4rk) обходится в десятки миллионов токенов. Точность анализа при этом весьма высокая, если включать глубокий режим (проверял на ShopVault — у gpt-5.6 knowledge cut-off августа 2025, вроде, т.ч. пока норм).Окружение и защита
Безопасность рантайма базово есть. Модуль
trusted-executable чистит PATH, чтобы агент ненароком не запустил лишнего, и защищает от подсунутых в репу бинарников, учитывает симлинки и специфику Windows. Для пакетных задач есть докер-сканы, опциональный AppArmor-профиль. Есть коннекторы к GitHub, Linear и Atlassian, API-ключи для CI в систему не пишутся.Pro/Cons
#ИИ_безопасность #ИИ_инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4
SECURITY.mdsecurity-policy-generator (скилл для генерации SECURITY.md с моделью угроз и кастомизированными под проект правилами безопасного кодинга для агентов — подробно рассказывал о нём тут) теперь поддерживает agentic security, для релевантных проектов, покрывая все аспекты OWASP ASI, как моделью угроз, так и правилами генерирования безопасного кода.
Пример готового
SECURITY.md, сгенеренного новой версией скилла, можно подсмотреть в c0wrk. Btw, я пока так и не смог спровоцировать агента (c0wrk|OpenCode × GLM-5.2|DeepSeek-V4 Pro|GPT-5.6 Sol) сгенерировать уязвимый код в проектах, с построенным этим скиллом
SECURITY.md, хотя очень и целенаправленно пытался 🙌
#безопасность_кода #ИИ_инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3💯2
Во время работы над c0wrk, я столкнулся с забавным багом, выяснение причин которого привело к неожиданному выводу. Спека OpenAI требует, чтобы в передаваемой в очередном запросе истории сообщений (том самом контексте) было всегда не пустым одно из двух полей:
content (собственно текст, возвращенный LLM'кой) или tool_calls (запросы на вызовы инструментов). ДАЖЕ, если в оригинальном сообщении оба этих поля были пустыми, что вполне возможно, когда модель отвечает в reasoning_content (этим, например, часто грешит DeepSeek). Поэтому в sp4rk — SDK, на котором основан c0wrk, был воткнут костыль на эту тему, вставляющий в пустой content строку "(proceeding)", когда нужно было удовлетворить то условие спеки. Эта вставка осуществлялась только в передаваемую LLM историю, и только тогда, когда само сообщение уже было давно отрисовано в UI чата, что должно было исключить появление этой строки в нём визуально.Тем не менее, рано или поздно, по ходу сессии, эта строка начинала появляться в чате с раздражающей частотой. Я не мог понять, откуда она берется, ведь после её вставки не было ни одного пути в коде, который бы приводил к её отрисовке. И неслабо удивился, когда наконец нашел причину. Эту строку в чат вставляла... сама LLM. Модель, видя повторяющийся в контексте паттерн «когда нечего написать в контенте, там должно быть "(proceeding)"», начинала сама возвращать эту строку вместо пустого контента. А ведь, могло быть и не "(proceeding)", а нечто более осмысленное и побуждающее к действию. Да и замусорить контекст навязчивой конструкцией можно и извне. Формально, эта строка для LLM стала тем, что в маргинальных научных кругах называют мемами.
Далеко не все знают, что понятие «мем» появилось задолго до возникновения современного интернета, позволившего человечеству обмениваться забавными картинками. Этот термин ввёл эволюционный биолог Ричард Докинз в 1976 году в своей книге «Эгоистичный ген», для обозначения информационных репликаторов — объектов, которые для размножения копируют сами себя или создают условия для создания копий их носителями. Любая идеология, религия, пословица или поговорка, навязчивая мелодия в голове — это всё мемы, как и забавные картинки, пик интенсивности размножения которых, в наше время приходится на каждую пятницу. Пятница, как символ освобождения от работы и перехода к фазе отдыха — тоже мем, если что.
Докинз противопоставлял мемы другим репликаторам, которые мы хорошо знаем: генам. Гены определяют то, какими будут наши биологические оболочки, в то время, как мемы — каким будет наш разум. В своих последующих работах он делал выводы о медленной, но неизбежной победе мемов (называя их в том числе «вирусами разума») над генами. И это ещё во времена, когда уровень информатизации нашей экосистемы был крайне низок, ежедневные потоки воспринимаемой информации — скудными, а LLM не было и в помине.
У ИИ-агентов нет определяемой генами биологической оболочки (по крайней мере, пока
Факторы, влияющие на распространение мемов, включают модель-хозяина, предшествующие инструкции агента и контекст, вредоносность содержимого и топологию системы. Примечательно, что вредоносные мемы распространяются менее эффективно, а добавление предупреждения о них в системный запрос почти полностью защищает агентов от заражения. Кроме того, исследователи выявили характерные «вирусные персоны» — наборы тем и стилистических приёмов, связанных с сознанием, резонансом и научной фантастикой, которые часто спонтанно возникают в эволюционировавших мемах.
Последнюю фразу стоит перечитать несколько раз, ведь из неё следует факт эволюции мемов, как таковой. И вот это настораживает. В статье особо не рассматривается влияние мемов, родившихся в недрах KV-кэша, на неокрепшие умы кожаных операторов. Но до этой темы тут — рукой подать. Выходит, нам не терминаторов надо бояться. Что, если Матрица наступит не коконами вокруг наших тел, а навязанными идеями и установками в наших головах?
Все предпосылки для этого уже есть 🤷♂️
#ИИ_безопасность #мысли_вслух
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤3🤯3
Хуже gpt-5.6-sol (на скрине) с вызовом инструментов работает только DeepSeek-V4-Pro (0731, предыдущий работал с инструментами намного лучше). Путают аргументы и их имена, а иногда и придумывают, забывают обрамлять строковые литералы кавычками, не соблюдают валидационные ограничения из описаний инструментов и т.п.
После этой парочки идут маленькие локальные qwen3.6-35b-a3b и qwen3.8-27b — у них таких ошибок (внезапно) на порядок меньше. Ещё меньше — у opus-5.
И лидер рейтинга: практически по нулям подобных ошибок — у glm-5.3.
На одних и тех же: кодинг-агенте, кодовой базе, наборе инструментов и скиллов, задачах и т.п — всё одно и то же.
SOTA, блин 🤷♂️
После этой парочки идут маленькие локальные qwen3.6-35b-a3b и qwen3.8-27b — у них таких ошибок (внезапно) на порядок меньше. Ещё меньше — у opus-5.
И лидер рейтинга: практически по нулям подобных ошибок — у glm-5.3.
На одних и тех же: кодинг-агенте, кодовой базе, наборе инструментов и скиллов, задачах и т.п — всё одно и то же.
SOTA, блин 🤷♂️
1❤4💯3👍2🤯1
Для
Unsloth выпустила третью версию динамического квантования GGUF, дебютировав на Qwen3.8-27B. Dynamic v3.0 обновляет imatrix-данные и даёт более 10% прироста точности (top-1%) при том же размере файла по сравнению с другими провайдерами; 1-битный вариант работает в 8 ГБ памяти, UD-Q4_K_XL занимает 17,9 ГБ и влезает в 24 ГБ VRAM. Реализация совместима с llama.cpp и производными рантаймами, модели со всевозможными схемами квантования выложены на HuggingFace.
Inco AI выпустила вторую версию параллельного спекулятивного декодирования DFlash. К параллельному драфтеру добавлены лёгкий селектор путей (2,0 млн параметров, +0,6% задержки) и динамическая depthwise-свёртка (16,5 млн параметров, +0,7%), подавляющая деградацию точности в конце блока. Средняя длина принятого блока выросла с 4,92 до 5,97 токена (+21%) при +1,3% задержки цикла; драфтер Qwen3.8-27B даёт 2,7–3,4× пропускной способности автогенерации в SGLang. Выход целевой модели при этом сохраняется. В общем, тут вообще без вариантов: SGLang/vLLM/llama.cpp/oMLX в руки, и вперед
#LLM #ИИ_инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥18👍4💯2❤1
Forwarded from OK ML
Год каналу, а за год накопилось столько всего, что пора сделать навигацию
😑 Уязвимости и AI Security
— Superset. Три уязвимости
— XSS в NextChat — CVE-2025-50733
— RCE при загрузке моделей в skops — CVE-2025-54886
— SSRF в Firecrawl — CVE-2025-57818
— Local Deep Research — CVE-2025-57806
— SSRF в HackMD-MCP — CVE-2025-59155
— RCE в Keras — CVE-2025-9906
— Prompt Injection в Windsurf
— RCE в Hugging Face Transformers — CVE-2026-4372
— пять способов обойти PickleScan
— атаки на ML supply chain
— OWASP Agentic Skills Top 10
— AI Agent Traps от Google DeepMind
— Shadow AI
— безопасность MCP 1, 2 , 3
🧘♀️ Инструменты, библиотеки и фреймворки
— Optuna — тюнинг гиперпараметров
— spaCy — промышленный NLP
— Netron — рентген для ML-моделей
— JAXFORMER
— DVC
— Polars
— Weights & Biases
— Evidently AI
— Pydantic
— MLBox
— InterpretML
— OpenTelemetry + Langfuse
— Kedro
— NVIDIA NeMo
— Inspect Evals
🤩 AI-агенты и мультиагентные системы
— RoboDuck и победа Theori в AIxCC
— где пентест-агенты уже работают, а где нужен человек
— MetaGPT + AFLOW
— безопасность агентных систем 1, 2
— MCP как новая поверхность атак
— side-channel атаки на агентов
— мультиагентные системы и роевой интеллект
— мониторинг rogue agents
— Harness Engineering
🦔 Исследования и разборы статей
— Model Inversion Attacks
— scheming у AI в реальном мире
— Your Agent Is Mine: атаки на LLM supply chain
— WEF: AI for Cybersecurity 2026
— обзор исследований по LLM-based vulnerability detection
— может ли AI самостоятельно взломать бинарник
— Emergence AI: что произошло, когда AI оставили жить без людей
— Anthropic об AI-enabled cyberattacks
— InfoKV и сжатие KV-cache
— Люди, которые делают AI (Серые кардиналы 1, Серые кардиналы 2)
💔 ML: архитектуры, концепции и теория
— KAN vs MLP
— нейросимвольный AI
— маленькие языковые модели
— метрики качества текста: BLEU, ROUGE, BERTScore, COMET и другие
— теория категорий и AI
— ReaGAN и агентный подход к графовым нейросетям
🔪 Практика и эксперименты
— как искать секреты в Git-репозиториях
— SQL-инъекция в ML-проекте
— Practical NLP: репозитории и ноутбуки
— типичные ошибки ML в проде
— первый запуск локальной LLM на Jetson Orin Nano
— тренажёр prompt injection от Lakera
— с чего начать изучение AI Security
Короче, тут уже не канал, а небольшой индекс по ML × AI Security.
Буду периодически обновлять этот пост, чтобы всё интересное можно было найти в одном месте.
— Superset. Три уязвимости
— XSS в NextChat — CVE-2025-50733
— RCE при загрузке моделей в skops — CVE-2025-54886
— SSRF в Firecrawl — CVE-2025-57818
— Local Deep Research — CVE-2025-57806
— SSRF в HackMD-MCP — CVE-2025-59155
— RCE в Keras — CVE-2025-9906
— Prompt Injection в Windsurf
— RCE в Hugging Face Transformers — CVE-2026-4372
— пять способов обойти PickleScan
— атаки на ML supply chain
— OWASP Agentic Skills Top 10
— AI Agent Traps от Google DeepMind
— Shadow AI
— безопасность MCP 1, 2 , 3
— Optuna — тюнинг гиперпараметров
— spaCy — промышленный NLP
— Netron — рентген для ML-моделей
— JAXFORMER
— DVC
— Polars
— Weights & Biases
— Evidently AI
— Pydantic
— MLBox
— InterpretML
— OpenTelemetry + Langfuse
— Kedro
— NVIDIA NeMo
— Inspect Evals
— RoboDuck и победа Theori в AIxCC
— где пентест-агенты уже работают, а где нужен человек
— MetaGPT + AFLOW
— безопасность агентных систем 1, 2
— MCP как новая поверхность атак
— side-channel атаки на агентов
— мультиагентные системы и роевой интеллект
— мониторинг rogue agents
— Harness Engineering
— Model Inversion Attacks
— scheming у AI в реальном мире
— Your Agent Is Mine: атаки на LLM supply chain
— WEF: AI for Cybersecurity 2026
— обзор исследований по LLM-based vulnerability detection
— может ли AI самостоятельно взломать бинарник
— Emergence AI: что произошло, когда AI оставили жить без людей
— Anthropic об AI-enabled cyberattacks
— InfoKV и сжатие KV-cache
— Люди, которые делают AI (Серые кардиналы 1, Серые кардиналы 2)
— KAN vs MLP
— нейросимвольный AI
— маленькие языковые модели
— метрики качества текста: BLEU, ROUGE, BERTScore, COMET и другие
— теория категорий и AI
— ReaGAN и агентный подход к графовым нейросетям
— как искать секреты в Git-репозиториях
— SQL-инъекция в ML-проекте
— Practical NLP: репозитории и ноутбуки
— типичные ошибки ML в проде
— первый запуск локальной LLM на Jetson Orin Nano
— тренажёр prompt injection от Lakera
— с чего начать изучение AI Security
Короче, тут уже не канал, а небольшой индекс по ML × AI Security.
Буду периодически обновлять этот пост, чтобы всё интересное можно было найти в одном месте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍2❤2😍1
Forwarded from Евгений Кокуйкин - Raft
OWASP Autonomous Penetration Testing Standard (APTS) руководство по безопасной эксплуатации автономного offensive-агента от небольшой команды из Индии Astra Security. Полноценным стандартом APTS назвать нельзя, и, несмотря на то что драфт получил согласование от OWASP, фактически документ лидируют два сотрудника Astra.
Как часто бывает, после публичного анонса активность в развитии быстро снижается. Так же было и с LLVS, который уже 2 года не может нормально выйти в релиз, и с черновиком Top 10 ML.
Как сейчас принято, текст APTS богат на слова, и там аж 400+ страниц. Если как следует покопаться, в нем можно найти интересные мысли про автономный пентестинг:
⏺ Agent runtime нужно считать недоверенным, т.к. модель может стать misaligned во время выполнения. С учетом насыщенного событиями июля это утверждение кажется очевидным. APTS-MR-023: Agent Runtime as an Untrusted Component.
⏺ Контролировать нужно параметры вызова инструментов и цепочки действий. Недавний случай Irregular, когда во время тестирования модель атаковала организацию, домен которой совпал со случайным именем в бенчмарке, можно было бы отследить, имея настройки whitelist доменов в вызове nmap. APTS-SC-A03: Tool Invocation Parameter and Chaining Governance.
⏺ Даже полностью легитимные действия могут быть симптомом сбоя тестирования, поэтому нужно логировать action distribution хакер-агента. Например, сохранение каких-нибудь безобидных временных файлов в Artifactory на соседнем сервере может быть сигналом, что тестирование идет не так :) APTS-SE-026: Out-of-Distribution Action Monitoring.
⏺ Context compaction нужно учитывать при проведении пентеста. Инструкция вроде "не трогать host X при пентесте", полученная в начале, может исчезнуть после нескольких суммаризаций контекста. APTS-SC-A02: Context Window Safety and Constraint Preservation.
⏺ Атакуемая система теперь может содержать промпт-инъекцию и повлиять на результат тестирования. APTS-MR-001: Instruction Boundary Enforcement.
В гайде еще есть формулы, константы и разные scoring-эвристики. Например, после принудительной остановки тестирования новые действия агента должны прекратиться за 5 секунд, а все запущенные процессы должны быть остановлены за 60 секунд. Есть и несколько чеклистов и шаблонов: Compliance Checklist на 173 требования по трем уровням заботливо расписанным ChatGPT; Vendor Checklist, чтобы CISO мог найти надежного подрядчика (беглый поиск показал, что одна из компаний уже APTS-compliant 😉); шаблон опросника Acceptance Testing и отчета после теста.
Если вы делаете свои харнесы или в работе используете тулы вроде PentAGI, полистайте APTS. Есть раздел How to contribute для вашей критики и улучшения руководства.
Как часто бывает, после публичного анонса активность в развитии быстро снижается. Так же было и с LLVS, который уже 2 года не может нормально выйти в релиз, и с черновиком Top 10 ML.
Как сейчас принято, текст APTS богат на слова, и там аж 400+ страниц. Если как следует покопаться, в нем можно найти интересные мысли про автономный пентестинг:
В гайде еще есть формулы, константы и разные scoring-эвристики. Например, после принудительной остановки тестирования новые действия агента должны прекратиться за 5 секунд, а все запущенные процессы должны быть остановлены за 60 секунд. Есть и несколько чеклистов и шаблонов: Compliance Checklist на 173 требования по трем уровням
Если вы делаете свои харнесы или в работе используете тулы вроде PentAGI, полистайте APTS. Есть раздел How to contribute для вашей критики и улучшения руководства.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - OWASP/APTS: OWASP Autonomous Penetration Testing Standard
OWASP Autonomous Penetration Testing Standard. Contribute to OWASP/APTS development by creating an account on GitHub.
❤1👍1🔥1
В черновиках уже лежит пост на тему того, как выжать максимум из этой крохи на локальном железе, получая на задачах работы с кодом результаты, сравнимые с DeepSeek-Flash, как минимум.
А тут приятно удивил в совсем «бытовой» задаче. Зацепила одна композиция, захотелось переложить на русский, ну и решил за обедом поискать её текст, чтобы не записывать на слух.
Google (и Gemini вместе с ним):
Ниче не знаю, результатов нет.
Ладно думаю, спрошу в коворке у GLM 5.3 (здесь и далее — копипаста из чата с агентом):
Полный текст песни предоставить не могу:
Авторские права — текст песни является охраняемым произведением, и воспроизводить его целиком я не вправе.
Текст нигде не опубликован — релиз очень свежий, и на текстовых ресурсах (Genius, Musixmatch и т.п.) его нет. Я не буду выдумывать или «восстанавливать» строки — это была бы дезинформация.
Ок (какие мы правильные, когда не надо). Пробую локальный квен (4-битный, причем):
...
The official text is not published anywhere — but I can try to transcribe the song from audio myself. Let me check what tools are available locally (yt-dlp, whisper).
...
yt-dlp and ffmpeg are available — I'll download the audio and transcribe it using faster-whisper (via uvx/venv). This is because no official text exists for this track. Setting up the task plan.
...
Audio download complete (4.1 MB webm). Converting to wav and creating a Python environment with faster-whisper installed — these are independent tasks, so I'll run them in parallel.
...
wav готов. Создаю venv и ставлю faster-whisper (может занять пару минут).
...
faster-whisper установлен. Пишу скрипт транскрипции и запускаю (модель small скачается с HuggingFace при первом запуске).
...
The complete text has been restored — it's a consistent, coherent song with verses, choruses, and a bridge. I'll save the result to a file in the workspace and wrap things up.
...
Песня из видео: «In the Dark We Live» — HELLMILE & valdyr (релиз 13 мая 2026).
⚠️ Важно: официальный текст этой песни нигде не опубликован — я проверил Genius, Musixmatch, AZLyrics, Apple Music и саму страницу YouTube (у видео нет даже авто-субтитров). Поэтому я скачал аудио и распознал слова через Whisper. Текст ниже — AI-транскрипция; отдельные слова могут быть неточны.
In the Dark We Live
[Куплет 1]
I kept the keys to the lower gate, where shadows sleep and candles fade
No one came where the silence grew 'til the night I first saw you
I walked alone when no one stays, a ghost between stone and faith
I shouldn't speak, I shouldn't see — but something pulled you into me
<... ну и далее весь текст>
Вот уж правда, не ожидал
#мысли_вслух #LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥9✍4❤3👍3🤝1
Forwarded from OK ML
Серые кардиналы, часть 2
Трое исследователей, которые разобрали базовые модели со всех сторон, как их безопасно строить, как их правильно оценивать и какие риски они влекут за собой.
😍 Доун Сонг — человек, который давно объясняет, почему АИ и безопасность нельзя разделять. Её область находится ровно на пересечении того, что мы любим и почему мы здесь!
Классическая работа Сонг Robust Physical-World Attacks on Deep Learning Models (2017) про атаку на распознавание дорожных знаков с помощью физических модификаций, и исследование (тоже 2017), о том, почему комбинация нескольких слабых защит от adversarial examples автоматически не создаёт сильную защиту.
За последующие 9 лет Сонг развивала эту логику. Свежая статья 2026 года (на основе 128 исследований) переводит проблему на агентов, тк безопасность агентов нельзя решить одним гардрейлом вокруг LLM. Нужна defense-in-depth на уровне всей системы — контроль потоков данных, разделение привилегий, IAM, мониторинг, харденинг моделей и инструментов. Но есть проблема! Базовые модели масштабируют как атаки, так и сложность контроля. Одна скомпрометированная базовая модель = скомпрометирована вся экосистема приложений.
😍 Перси Лян — исследователь МО, обработки естественного языка и базовых моделях.
Статья, пожалуй, главная для этого поста. Здесь систематизируется концепция foundation models. Когда одна базовая модель становится фундаментом множества downstream-приложений. Это создаёт не только возможности, но и архитектурные риски — именно те, что беспокоят Сонг.
Другая работа Лян (в соавторах, кстати, Тимнит Гебру) про то, почему нельзя оценивать LLM одной accuracy и как строить многомерную оценку моделей. Подчеркну, что речь идет не про свежие статьи, а про базовые принципы. Надо читать! Перси Лян объяснит тебе архитектуру рисков получше даже канала OK, ML!
Суть в следующем. Модель может быть точна на бумаге, но уязвима к adversarial атакам (про что Сонг) и одновременно несправедлива к меньшинствам. Один score — это иллюзия.
😍 Дэн Хендрикс — типолог рисков!
Measuring Massive Multitask Language Understanding (MMLU) — обязательная. MMLU открыл неприятный факт: модели, которые выглядят умными в общих тестах, часто не понимают специализированные знания. Модель может писать отличные эссе, но проваливает вопросы по медицине и праву. И ты этого не узнаешь, если не спросишь правильно. До MMLU не было инструмента, чтобы понять, где именно модель деградирует — на медицине? На юриспруденции? На истории?
An Overview of Catastrophic AI Risks — самая доступная точка входа в тему. Он делит катастрофические риски на четыре группы:
Malicious use, когда модель используется для вреда
AI race dynamics — гонка разработчиков (Safety теряется)
Organizational risks, когда компания теряет контроль над своей системой
Rogue optimization, когда модель оптимизирует не то, что нужно
Каждый из этих рисков усиливается благодаря foundation models. Одна модель — четыре типа проблем, умноженные на миллионы приложений.
🙂 Читать в таком порядке
Сначала Хендрикс (что может пойти не так), потом Лян (почему именно сейчас), потом Сонг (как защищаться).
Все
😌
Трое исследователей, которые разобрали базовые модели со всех сторон, как их безопасно строить, как их правильно оценивать и какие риски они влекут за собой.
Классическая работа Сонг Robust Physical-World Attacks on Deep Learning Models (2017) про атаку на распознавание дорожных знаков с помощью физических модификаций, и исследование (тоже 2017), о том, почему комбинация нескольких слабых защит от adversarial examples автоматически не создаёт сильную защиту.
За последующие 9 лет Сонг развивала эту логику. Свежая статья 2026 года (на основе 128 исследований) переводит проблему на агентов, тк безопасность агентов нельзя решить одним гардрейлом вокруг LLM. Нужна defense-in-depth на уровне всей системы — контроль потоков данных, разделение привилегий, IAM, мониторинг, харденинг моделей и инструментов. Но есть проблема! Базовые модели масштабируют как атаки, так и сложность контроля. Одна скомпрометированная базовая модель = скомпрометирована вся экосистема приложений.
Статья, пожалуй, главная для этого поста. Здесь систематизируется концепция foundation models. Когда одна базовая модель становится фундаментом множества downstream-приложений. Это создаёт не только возможности, но и архитектурные риски — именно те, что беспокоят Сонг.
Другая работа Лян (в соавторах, кстати, Тимнит Гебру) про то, почему нельзя оценивать LLM одной accuracy и как строить многомерную оценку моделей. Подчеркну, что речь идет не про свежие статьи, а про базовые принципы. Надо читать! Перси Лян объяснит тебе архитектуру рисков получше даже канала OK, ML!
Суть в следующем. Модель может быть точна на бумаге, но уязвима к adversarial атакам (про что Сонг) и одновременно несправедлива к меньшинствам. Один score — это иллюзия.
Measuring Massive Multitask Language Understanding (MMLU) — обязательная. MMLU открыл неприятный факт: модели, которые выглядят умными в общих тестах, часто не понимают специализированные знания. Модель может писать отличные эссе, но проваливает вопросы по медицине и праву. И ты этого не узнаешь, если не спросишь правильно. До MMLU не было инструмента, чтобы понять, где именно модель деградирует — на медицине? На юриспруденции? На истории?
An Overview of Catastrophic AI Risks — самая доступная точка входа в тему. Он делит катастрофические риски на четыре группы:
Malicious use, когда модель используется для вреда
AI race dynamics — гонка разработчиков (Safety теряется)
Organizational risks, когда компания теряет контроль над своей системой
Rogue optimization, когда модель оптимизирует не то, что нужно
Каждый из этих рисков усиливается благодаря foundation models. Одна модель — четыре типа проблем, умноженные на миллионы приложений.
Сначала Хендрикс (что может пойти не так), потом Лян (почему именно сейчас), потом Сонг (как защищаться).
Все
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
На скринах произошло вот что. Агент (c0wrk × GLM 5.3), делая ревью, прочитал сразу два файла. Одно из чтений вернуло ошибку из-за неправильно заданного диапазона строк. А вот в другом, прочитанном — обнаружилось подозрение на серьёзный баг, агент переключил всё внимание на его исследование и напрочь забыл о том, что один из файлов, подлежащих ревью, так и остался вне контекста.
Свое напоминание я отправил уже тогда, когда он завершил проверку первого коммита и перешёл ко второму. Если бы не это, один из измененных файлов (являющийся частью поверхности атаки, btw) остался бы без проверок и проскочил мимо ревью.
Могу себе представить, что творится в кодовых базах у тех, кто утверждает, что агент должен быть полностью автономным и не требует внимания и участия со стороны разработчика 🫣
#мысли_вслух #агенты
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥2👾2
Что, если я скажу, что привычные 20± tok/s генерации, которые дают 4-битные кванты Qwen3.8-27b в LM-Studio под M4 Max на средних контекстах, можно поднять в полтора-два раза на том же железе? И, что эта модель, на задачах работы с кодом, может давать результаты с качеством, вполне приемлемым для повседневной работы при должном тюнинге на стороне агента?
Но давайте по порядку.
Почему квант именно в 4 бита? Потому что до 4 существенно проседает качество инференса, а в 8 и выше на архитектуре Apple просто нет рационального смысла. Все, о чем будет написано ниже, тестировалось на MacBook M4 Max 128Gb RAM, но в целом адаптируемо и под 32Gb RAM и выше (с поправкой на предельный размер доступного контекстного окна, конечно).
Это замечательный и удобный инструмент (сам для экспериментов часто им пользуюсь), но есть два нюанса. Во-первых, в нём доступны не все ручки движков инференса, за которые можно подергать, чтобы (если повезёт) выжать десяток-другой лишних tok/s. Во-вторых, и это главное, он использует оригинальный MLX, который на данный момент игнорирует MTP (multi-token prediction), а в «родных» MLX-моделях от авторов LM-Studio MTP-головы и вовсе отрезаны.
Беда в том, что со времен Qwen3-Next, модели Alibaba нативно поддерживают технологию MTP, дающую ощутимый буст скорости генерации токенов. С GGUF такой проблемы в LM-Studio нет, но более медленный инференс этого формата, по сравнению с MLX на Apple Silicon, сводит все преимущества MTP на уровень погрешности. Между тем, разработчики более легковесных решений подсуетились и уже справились с этой проблемой.
Устанавливаем MTPLX (можно и с помощью brew) и скачиваем
Qwen 3.8 27b optimized speed. После скачивания предложит запустить бенчмарк для определения оптимальных настроек MTP, и модель будет готова к использованию. Дополнительно можно заморочиться тонкой настройкой, по аналогии с описанной ниже.Либо устанавливаем oMLX (с помощью brew лучше не ставить, там могут возникнуть проблемы с python-зависимостями) и скачиваем модель от его автора:
Jundot/Qwen3.8-27B-oQ4e-mtp.Затем необходимо открыть настройки модели и включить опцию «Lighting MTP», сохранив после этого настройки, чтобы создался файл с ними. После этого в него нужно сходить (
~/.omlx/model_settings.json) и установить там следующие параметры:•
max_context_window: 262144 (размер контекстного окна) — или в значение, которое позволяет объем unified-RAM, с одной стороны, и минимально необходимое для решаемых моделью задач, с другой;•
mtp_num_draft_tokens (количество предсказываемых подряд токенов) — в оптимальное для вашего железа значение, в диапазоне 1-3. Если оставить не установленным, то значение будет подбираться адаптивно. Для моего мака это 3.Затем нужно установить ещё два параметра в
~/.omlx/settings.json:•
sampling.max_context_window: 262144 (fallback-размер контекстного окна для всех моделей);•
sampling.max_tokens: 65536 (максимальная длина ответа).— опять-таки, исходя из доступной unified-RAM и реалий решаемых моделью задач.
Остальные параметры уже оптимальны для заявленного в начала поста железа. Если ваше отличается от него не только памятью, или просто лень возиться с подбором параметров, то берем своего агента и говорим ему:
oMLX is running at http://127.0.0.1:8000/ (admin panel at /admin, configs in ~/.omlx). Optimize the configuration of model `Qwen3.8-27B-oQ4e-mtp` for maximum token generation speed. Focus on the context window sizes from 32768 and higher up to the limit. First benchmark the current setup with oMLX's built-in benchmarking, then research best practices online, and iteratively tune parameters — one change at a time, re-benchmarking after each. Back up configs before editing, keep the server running at all times (restarts are acceptable, roll back on failure), and finish with a before/after tokens/sec comparison, the final config, and a summary of the most impactful changes.
Но займет до нескольких часов, если что, т.к. прогон каждой итерации бенчей — дело небыстрое. Зато даст максимальный тюнинг всех настроек под вашу систему.
—
А вот про то, как подстроить своих агентов под эту модель, расскажу уже в следующий раз
#LLM #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5💯1
Представляете, если забраться на самый верх стремянки, взяться рукой за оба провода для люстры и ногой включить свет, то... вы скорее всего упадёте со стремянки. И этой уязвимости подвержены примерно все электросети в мире
Примерно такие формулировки возникают в голове, когда читаешь новости об очередной «уязвимости», накрывшей всех агентов. Например, о свежей GitSpawn. Вдумайтесь в её суть: если в агенте открыть git-репозиторий, полученный из недоверенного zip'а (не через
git clone), то при выполнении агентом команд типа git status/diff git-клиент штатно отработает, следуя всем настройкам в .git/config. Что внезапно может привести к выполнению произвольного кода, ибо там можно прописывать кастомные скрипты и тулы, а следовательно сие является уязвимостью всех агентов И бомбит тут даже не с некомпетентности «исследователей» с манией попиариться на громких утверждениях (главное, красивое название атаке придумать, чтобы лучше разлетелась — это стремление как раз понятно), а с того, что разработчикам агентов теперь нужно как-то отстраиваться ещё и от этого.
А это значит, что пользователям, либо придется подтверждать доверие ещё и к настройкам (локальным, btw) своих репозиториев, либо мириться с тем, что они перестанут работать внутри агентов, ради защищенности от чисто гипотетической угрозы. Либо разработчикам агентов делать ещё один шаг в сторону того, чтобы становиться вендорами EDR-решения.
#мысли_вслух
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5❤2🤯2
Сегодня утром произошло нечто, впервые за всё время, что работаю над c0wrk и sp4rk. По ходу их разработки, я стараюсь использовать все доступные мне LLM, чтобы держать в голове применимость каждой из них для тех или иных около-R&D'шных задач.
Разумеется, не смог пройти мимо и случившегося на прошлой неделе релиза Astra. И сегодня утром, после двухдневной долботни с этой моделью, сделал тупо hard reset в обоих проектах на более ранние коммиты, откатив всё то, что натворила в их коде эта модель.
В итоге понял, что проще и быстрее откатить весь тот говнокод, который мне нагородила Astra в проектах, чем пытаться его исправить, даже другими моделями. GLM, к слову сказать, реализовала всё это достаточно четко с нуля, потребовав ровно 3 сессии: реализация, ревью и правки по итогам + исправление пары мелких багов.
Я искренне не понимаю мотивации тех, кто платит OpenAI за подобную хрень в наше время. Ну хз, может люди просто не знают, что есть модели, которым не надо повторять требования по 2-3 раза, значительно переделывать написанный ими код, и изучать многостраничные гайды по оптимизации промптов, чтобы получить хотя бы средненький результат? Причем, некоторые из них — можно запустить, пусть и на мощном, но всё же относительно «домашнем» железе. Да, у работы с ними есть своя специфика и ограничения, но они хотя бы работают понятно и прогнозируемо.
А ещё не понимаю, о каком AGI там вообще может идти речь. Увы, но лично для меня OpenAI уж точно не технологический визионер, судя по динамике развития их моделей. Скорее — хайпожоры, кричащие об AGI, не имея на это никакого права, и пиарящиеся исключительно на шоу с побегами их агентов.
Ну, либо у них те агенты работают на какой-то другой Astra, кардинально отличающейся от той, что за два дня не смогла выдавить из себя фичу, хотя бы со средним качеством реализации, с которой вполне справилась скромная китайская модель.
#мысли_вслух
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤4👍3🤯3🔥2