惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
Cloudbric
Cloudbric
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
爱范儿
爱范儿
The Cloudflare Blog
腾讯CDC
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
C
Check Point Blog
Schneier on Security
Schneier on Security
S
Schneier on Security
J
Java Code Geeks
B
Blog RSS Feed
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
A
Arctic Wolf
S
Secure Thoughts
P
Palo Alto Networks Blog
The Last Watchdog
The Last Watchdog
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 三生石上(FineUI控件)
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
U
Unit 42
I
InfoQ
D
DataBreaches.Net
P
Privacy International News Feed
T
Troy Hunt's Blog
博客园 - 叶小钗
T
Threatpost
博客园 - Franky
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
www.infosecurity-magazine.com
www.infosecurity-magazine.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cisco Blogs

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как я Zabbix с LLM дружил в свободное время. Архитектурный обзор взаимодействия с нейросетью. Часть 2 «Выбор модели»
it_zoobik · 2026-05-12 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение9 мин

Охват и читатели13K

Кейс

Введение

У котика есть не только лапки

У котика есть не только лапки

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

В первой части рассматривалась постановка задачи, формирование ТЗ и пояснения, почему для нейросети лучше ставить правильные, четкие задачи. В этой же части рассмотрим выбор локальной LLM под нашу задачу.

Часть 1: Вводная и формирование ТЗ

Часть 2: Выбор локальной LLM (Вы здесь)

Часть 3: Формирование HLD и немного LLD

Часть 4: Что из этого вышло

Из практического опыта работы, подход к задаче начался не с кода (в целом код был отдан на 99% нейросети, но об этом в следующих статьях), а с привычного для любого инфраструктурного проекта шагов:

  • ТЗ (в предыдущей части);

  • критерии выбора локальной LLM;

  • архитектурное решение приложения (HLD);

  • детализация (LLD);

  • реализация.

Спойлер

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

Причины выбора локальной модели

Так же, как и во все остальном, выбор модели необходимо строить по обязательным техническим параметрам, отвечающим используемой инфраструктуре, а не только по популярности и отзывам.

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

Для текущего проекта модель должна быть не просто чатом для общения, а выполнять конкретные функции, указанные в ТЗ (в прошлой статье). То есть выбор должен быть основан так же по определенным критериям.

Обобщенно:

  • осуществлять триаж событий уровня Warning и ниже (низкая критичность);

  • осуществлять формирование рекомендаций только для диагностики;

  • выполнять корреляцию при отсутствии детерминированной логики;

  • работать в локальном контуре.

Дополнительно можно добавить уже отдельные условия, которые логично вытекают из требований:

  • получение быстрого ответа на домашнем сервере;

  • интеграцию через Ollama для упрощения взаимодействия.

Спойлер

Ollama вполне может снижать скорость работы локальной LLM. Например, недавно на Хабре мне попалась вполне достойная статья наглядно показывающая замедление работы в 3 раза. Однако, хоть для описываемого мной кейса это не критично, для уже настоящих проектов необходимо иметь это в виду.

Критерии выбора модели

Для указанной задачи в разрезе прикладной инфраструктурной системы были выделены следующие критерии.

1. Возможность локального запуска без облачной зависимости и API внешнего провайдера.

Причинами данного решения были:

  • уведомления и контекст алертов содержать чувствительные инфраструктурные данные (имена, IP-адреса и т.д.);

  • подход к построению домашней инфраструктуры изначально подразумевал минимальную зависимость от внешних сервисов;

  • получение воспроизводимой схемы развертывания в другой инфраструктуре в случае отладки или миграции.

2. Достаточность качества при следовании точным инструкциям и кратком анализе

От модели требуется:

  • работать по шаблону;

  • стабильно отвечать на короткие прикладные запросы;

  • поддерживать краткую уверенную стилистику;

  • возвращать структурированный результат.

Другими словами, от модели не требуется написание текстов, моделирование многослойного агентного поведения или генерации кода.

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

3. Требование к ресурсам и размер

Один из ключевых моментов, т.к. собиралось для домашнего сервера без выделенного GPU с устаревшими CPU, еще и в Docker внутри ВМ. Модель должна быть не слишком требовательная, при этом давая приемлемый latency для событийного пайплайна, так как параллельно на той же ВМ будут работать и другие проекты в контейнерах.

А вот и домашний стенд

А вот и домашний стенд

4. Скорость инференса

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

  • растет очередь;

  • audit log становится бесполезным в реальном времени;

  • происходят критические задержки до получения результата с потерей актуальности информации.

Таким образом важен баланс между качеством ответа и скоростью подачи.

5. Предсказуемость поведения

Модель не должна быть излишне творческой, т.к. задача у нее в проекте не быть чат-бот ассистентом. Соответственно модель не должна:

  • уходить в длинные рассуждения;

  • выдумывать что-то за пределами строгих рамок;

  • менять формат ответа от запроса к запросу;

  • развертывать ответ за пределами поставленной задачи.

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

6. Нормальная работа в Ollama

Критерий для упрощения развертывания и взаимодействия. Модель должна быть:

  • доступной по тегу;

  • без проблем тянуться;

  • стабильно существовать в локальной системе;

  • не требовать отдельной сборки;

  • не требовать кастомной конвертации или runtime.

Чем меньше нестандартных телодвижений – тем проще будет интеграция.

7. Разумная квантизация

При изучении основных параметров для меня это понятие было самым сложным для понимания, т.к. часто упоминается вскользь. На деле – это так же важный критерий при запуске локально (тем более в домашнем контуре), поэтому рассмотрю квантизацию отдельным подпунктом.

Что такое квантизация для проекта?

Квантизация — это способ уменьшить размер модели и требования к ресурсам (памяти) за счет представления весов в более компактной форме (температура модели).

Иными словами квантование – это метод снижения вычислительных затрат и затрат памяти на инференс путем представления весов и активаций с помощью типов данных низкой точности.

Мне очень помогла о представлении вот эта статья на Хабре.

Для проекта это будет значить уменьшение потребления ресурсов, порога входа self-hosted среды и повышения общей скорости модели.

Однако существует ряд минусов:

  • возможна потеря качества;

  • возможно падение стабильности следования формату.

В локальном проекта квантизация неизбежна, но остается вопрос, насколько модель сохраняет полезность после квантизации.

Что было важно для текущего проекта

Для моего пайплайна модель в квантизированном виде должна была остаться полезной для триажа, коротких и структурированных вердиктов, рекомендаций с ограничением на безопасную диагностику, fallback корреляцию (вспоминаем ТЗ).

8. Лицензия и практическая доступность

Для домашнего проекта не самый важный критерий, однако все равно его нельзя игнорировать для дальнейшего использования.

Поэтому необходимо понимать:

  • правовую возможность тянуть и запускать локально;

  • ограничения на использование;

  • актуальность экосистемы вокруг модели.

Какая же модель выбрана?

Суммаризируя все критерии и отсеяв по ним предложения, выбор пал на Qwen3.5-4B.

Спойлер

К моменту публикации кейса уже вышла Qwen3.6, однако, если верить описанию самое главное улучшение относится к кодингу, а также отсутствует 4B версия.

Пройдем по чек-листу

Требование

Соответствие / примечания

Возможность локального запуска без облачной зависимости и API внешнего провайдера

Соответствует.

Ollama официально поддерживает локальный запуск моделей в Docker и через локальный API на localhost:11434; для семейства qwen3.5 в Ollama есть готовый тег qwen3.5:4b, который можно запускать локально командой ollama run qwen3.5:4b

Достаточность качества при следовании точным инструкциям и кратком анализе

Частично соответствует.

Для точного тега qwen3.5:4b Ollama не публикует отдельные instruction-following benchmark’и, но саму линейку qwen3.5 позиционирует как family с "utility and performance", а в официальных материалах Qwen для близких малых instruct-моделей Qwen2.5 видно, что семейство хорошо держится на instruction-following и прикладных задачах по сравнению с моделями сопоставимого класса. Для проекта окончательное подтверждение шло уже практическим пилотом

Требование к ресурсам и размер

Соответствует.

Для qwen3.5:4b в Ollama указан размер модели 4.66B parameters, а размер конкретного тега - 3.4 GB, что хорошо укладывается в локальный self-hosted контур и заметно проще для эксплуатации, чем более крупные open-weight модели.

Скорость инференса

Частично соответствует.

Для exact-тега Ollama не публикует TTFT/tokens-per-second, но на странице qwen3.5:4b прямо указаны "Efficient Hybrid Architecture", "high-throughput inference" и "minimal latency and cost overhead". Конечно же - это не гарантия SLA, но приемлемый (для начала) архитектурный индикатор. Однако фактическую пригодность по latency все равно надо подтверждать пилотом на своем железе.

Предсказуемость поведения

Частично соответствует.

Прямого критерия "predictability" в карточке нет, но для прикладного использования важны instruction-following и стабильность structured-output. В официальных Qwen-материалах (да, это снова для 2.5, но исходим из предположения, что мажорная версия не стала хуже) у близких instruct-моделей семейства Qwen видны конкурентные или превосходящие результаты на instruction-following и прикладных тестах, однако для конкретного qwen3.5:4b этот критерий все равно должен подтверждаться уже в собственном пайплайне через промпты, guardrails и audit.

Нормальная работа в Ollama

Соответствует.

Модель доступна как официальный тег в библиотеке Ollama (qwen3.5:4b), запускается через стандартный механизм ollama run, а доступ к ней идет через обычный локальный API Ollama.

Разумная квантизация

Соответствует.

Для тега qwen3.5:4b на странице Ollama явно указана квантизация Q4_K_M, что и делает локальный запуск практичным по памяти и размеру. Дополнительно для семейства Qwen3 есть отдельное эмпирическое исследование квантизации, подтверждающее вполне эффективное использование.

Лицензия и практическая доступность

Соответствует.

На странице тега в Ollama указана лицензия Apache 2.0; в официальном репозитории Qwen также сказано, что open-weight модели лицензируются под Apache 2.0. Практическая доступность хорошая: модель есть в библиотеке Ollama, подтягивается стандартным способом и не требует нестандартного рантайма.

Сравнение с другими моделями

Выбор оказался сложнее, чем меню ресторана

Выбор оказался сложнее, чем меню ресторана

Основная задача была не в выборе лучшей небольшой модели, а наиболее приемлемой для локального пайплайна.

Поэтому в первую очередь сравнение было с близкими по назначению малыми моделями – Llama3.2-3B и Gemma3-4B.

Без преувеличения – для меня это была самая сложная часть, в которую пришлось погрузиться с головой.

Спойлер

Пока готовил материал, уже зарелизилась и gemma4-e4B, что может стать фаворитом, так как в бенчмарках показывает прекрасные результаты, да еще и, наконец-то, Apache 2.0 лицензия! Обязательно попробую, но уже после завершения этого цикла.

Размерная линейка

У Meta в текстовой lightweight-линейке Llama 3.2 доступны 1B и 3B модели. То есть ближайший малый вариант - это 3B, а следующего шага на 4B внутри той же lightweight-линейки просто нет. Официальная карточка прямо указывает, что текстовые Llama 3.2 - это именно 1B и 3B модели с контекстом 128K.

У Gemma 3 линейка шире: 270M, 1B, 4B, 12B и 27B; в Ollama отдельно указано, что 4B-модель (так же, как и остальные) относится к multimodal-вариантам с контекстом 128K.

У Qwen3.5 в Ollama размерная линейка выглядит более плавной: 0.8B, 2B, 4B, 9B, 27B, 35B и 122B. На странице тегов Ollama для семейства Qwen3.5 прямо видны эти размеры, а для актуального тега указывается контекст 256K.

Это не доказательство качества той или иной модели, но дает информацию о позиционировании в самом семействе.

Сравнение по контекстному окну

Для текущего сценария длинный контекст не является главной причиной выбора. Однако полностью отбрасывать его нельзя, так как при обогащении информацией алерта, audit log, корреляции с соседними событиями (RCA) и пояснениями, промпт может увеличиваться.

У Qwen3.5-4B в официальной карточке на Hugging Face указан default context length 262,144 tokens, и отдельно отмечено, что при OOM можно снижать окно, но для сохранения thinking capabilities рекомендуется держать не менее 128K.

У Gemma 3 4B в Ollama и модельной карточке фигурирует 128K context window.

У Llama 3.2 3B официально указан 128K context length.

Исходя из этого получаем, что Qwen дает запас по контексту среди моделей своего класса.

Сравнение по лицензированию

Qwen3.5-4B в карточке на Hugging Face указана лицензия Apache 2.0.

У Llama 3.2 используется Llama 3.2 Community License - собственная лицензия Meta.

У Gemma модели поставляются с open weights и допускают "ответственное коммерческое использование", но это отдельный набор условий Google/Gemma Terms of Use.

Для пет-проекта это не критично, но глобально Apache 2.0 делает модель более предсказуемой с точки зрения лицензирования при включении в собственный self-hosted стек.

Вывод

Цена - свободное время

Цена - свободное время

Из 3-х основных требований, по которым проводилось сравнение близких малых LLM мне больше подошла Qwen3.5-4B.

Спойлер

Идеальным вариантом было бы развертывание 3-х моделей с последующим тестированием, однако эту активность откладываю в "долгий ящик", возможно когда-нибудь опишу тестирование в рамках этого кейса и других моделей. Но сроки реализации дать не могу, т.к. это хобби, на которое не всегда хватает времени.

Итог второго этапа

В данной статье была рассмотрена методология выбора локальной LLM в рамках имеющейся задачи и соответствующий выбор.

Данный шаг я решил выделить до HLD и LLD по нескольким причинам:

  • у меня до этого не было никакого опыта с локальными LLM и базовые понятия были всего лишь пустым звуком, поэтому необходимо было наверстать упущенное;

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

Изыскания по выбору модели действительно были интересными и дали более полноценное понимание работы этого инструмента.

Спойлер

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

Что будет дальше

В следующей статье уже перейдем к дизайну проекта, разберем, какие вещи в архитектурном планировании можно отдать нейросети (конечно же не бесконтрольно), представлю полученную архитектуру, и, через статью, перейду к реализации и описанию результата.