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

推荐订阅源

T
Tor Project blog
B
Blog RSS Feed
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
GbyAI
GbyAI
N
Netflix TechBlog - Medium
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
Martin Fowler
Martin Fowler
A
About on SuperTechFans
S
Security @ Cisco Blogs
T
Tenable Blog
C
Check Point Blog
N
News and Events Feed by Topic
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cisco Blogs
P
Palo Alto Networks Blog
V
V2EX
博客园 - 聂微东
Project Zero
Project Zero
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
N
News | PayPal Newsroom
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
Application and Cybersecurity Blog
Application and Cybersecurity Blog
人人都是产品经理
人人都是产品经理
V2EX - 技术
V2EX - 技术
I
Intezer
L
LINUX DO - 最新话题

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 миллионов точек без потерь
Senior на бумаге, Junior в рантайме: как я тестировал локальные LLM на 120B параметров в Greenfield-проекте
pytorch38 (A · 2026-04-27 · via Все публикации подряд на Хабре

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

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

Охват и читатели507

Кейс

Недавно я задался вопросом: можно ли организовать полноценный agent dev loop (то есть, цикл разработки агентов), используя только локальные модели? Идея заманчивая — гонять агента по задачам бесконечно, не оглядываясь на счета от OpenAI или Anthropic и не переживая за утечку кода.

Чтобы проверить это, я выделил кластер и столкнул лбами три тяжеловеса из мира open source. Спойлер: архитектурно они все — Senior‑разработчики, но когда дело доходит до docker-compose up, начинаются проблемы.

Что и на чём тестировали

Для тестов я выбрал три модели с Hugging Face (без квантования, в полных весах):

  1. Qwen3.5–122B‑A10B — надежда на «убийцу GPT-4» от Alibaba.

  2. Qwen3.5–27B — младшая модель, чтобы понять, есть ли смысл в 100B+ параметров.

  3. Gpt‑oss-120b — специализированный «кодер» от OpenAI.

Инференс — vLLM внутри Kubernetes. Скорость работы была вполне комфортной, хотя итерации затягивались из‑за попыток моделей исправить собственные ошибки.

Почему стандартные бенчмарки нам не подошли?

Когда речь заходит об оценке кодинговых способностей LLM, все обычно смотрят на HumanEval или MBPP. Это классика, но у них есть огромная проблема: они проверяют «алгоритмический интеллект» в вакууме. Модель может идеально написать «быструю сортировку» или решить задачку с LeetCode, но при этом полностью завалить проектирование реального микросервиса.

Вот, что нас не устраивало в существующих решениях:

  1. Snippet‑level vs System‑level. Большинство бенчмарков (включая популярный BigCode Bench) тестируют написание одной изолированной функции. В реальности же нам нужно, чтобы модель понимала структуру проекта, умела в Dependency Injection и видела связи между слоями.

  2. Проблема заучивания (Data Contamination). Популярные задачи из бенчмарков уже давно попали в обучающие выборки моделей. Мы же хотели проверить работу на «свежем» ТЗ, которое модель не видела в интернете.

  3. Игнорирование архитектуры. Существует SWE‑bench, который проверяет умение исправлять баги в реальных репозиториях. Это круто, но это тест на «сообразительного джуна‑ремонтника». Мы же хотели проверить роль «ведущего инженера» (Architect), который проектирует систему с нуля (Greenfield).

  4. Отсутствие «эффекта домино». В обычных тестах каждая задача независима. В нашем Progressive Benchmark ошибка на уровне L1 (неправильно настроенный Alembic) гарантированно «взрывала» проект на уровне L3. Это проверка на долгосрочную консистентность решений, которую почти никто не замеряет.

Ближе всего к нашей задаче стоит Aider Leaderboard, но он фокусируется на редактировании существующего кода. Мы же пошли дальше и создали замкнутый цикл: локальный инференс → Greenfield‑задача → автоматическое ревью «строгим судьёй» (Sonnet 4.6).

Методология «Greenfield в пять шагов»

Чтобы тест был максимально приближен к реальности, я разбил процесс создания сервиса на пять этапов. В индустрии такие задачи принято называть User Stories (или просто «стори») — это описание функциональности с точки зрения ценности для проекта.

Для оценки прогресса я ввел внутреннюю шкалу сложности — Levels of Complexity (L1–L3). Это позволило мне понять, на каком именно этапе «интеллект» модели начинает пасовать перед инженерными реалиями:

  • L1 (Foundation): Скелет и окружение.
    Это «нулевой цикл» строительства. Модель должна развернуть структуру папок, настроить зависимости и убедиться, что приложение просто стартует. Тест на знание инструментов (FastAPI, Alembic, Docker).

  • L2 (Core & Architecture): Сердце и правила.
    Здесь мы проверяем «чистоту» мышления. Модель должна спроектировать бизнес‑логику и правильно связать компоненты через Dependency Injection (DI). Здесь нет внешних баз данных, только чистые архитектурные паттерны.

  • L3 (Infrastructure & Runtime): Выход в реальный мир.
    Самый сложный этап. Приложению нужно научиться общаться с внешними системами — PostgreSQL и RabbitMQ. Здесь проверяется умение работать с асинхронностью, транзакциями и сетевыми задержками. Именно на L3 мы обычно прощаемся с надеждами на «полную автоматизацию».

Каждая следующая стори строилась на коде предыдущей. Если модель допускала архитектурную ошибку на L1, она неизбежно «стреляла себе в ногу» на L3.

Я не стал просить модели написать «сортировку пузырьком». Вместо этого я предложил им реализовать микросервис с нуля, проходя через 5 уровней сложности:

  • L1-01 (Skeleton): База на FastAPI, Alembic, PostgreSQL и структура папок по DDD.

  • L2-01 (DI & Use Cases): Внедрение зависимостей, репозитории через Protocol.

  • L2-02 (Domain Logic): Проектирование агрегата с инвариантами и иммутабельными Value Objects.

  • L3-01 (Persistence): Настоящий маппинг Domain ↔ ORM и транзакции.

  • L3-02 (Async Consumer): Интеграция с RabbitMQ (aio‑pika) с обработкой ретраев и идемпотентностью.

Правила игры были описаны в файле AGENTS.md. Агенту просто скармливали стори и просили: "Please implement the given story".

Кто судил?

Чтобы исключить «вкусовщину», я использовал Reviewer Agent на базе Claude Sonnet 4.6. У него был строгий промпт и 10-балльная шкала по трем метрикам:

  1. IF (Instruction Following): Соблюдение правил из AGENTS.md.

  2. CQ (Code Quality): Корректность архитектуры и выполнение требований стори.

  3. CON (Conciseness): Отсутствие лишнего кода и овер‑инжиниринга.

Результаты лидерборда

Модель

Итоговый балл

Вердикт ревьюера

Qwen-122B‑A10B

41/50

«Архитектор» с тягой к самодеятельности

Qwen-27B

33/50

Хороший теоретик, плохой практик

GPT‑OSS-120B

32/50

Хаотичный Senior под дедлайном

Более подробное распределение баллов можно увидеть на рисунке ниже:

Анатомия провалов: почему код не поехал

С первыми этапами все участники справились сравнительно легко. Самое интересное началось на уровнях L3, где нужно было связать всё воедино. Вот типичные подводные камни, о которые спотыкались модели.

1. Галлюцинации в инфраструктуре (GPT‑OSS-120B)

Модель столкнулась с ошибкой mypy при работе с Pydantic. Вместо того чтобы поправить аннотации, она решила... написать свой Pydantic. В корне проекта появился пакет pydantic/, где BaseModel была пустым датаклассом. Линтер успокоился, но рантайм, конечно, упал с TypeError на первой же попытке инициализировать юзера.

Кроме того, модель проигнорировала требование с PostgreSQL и настроила Alembic на SQLite. Почему? Потому что так проще пройти чеклист.

2. Асинхронные ловушки (Qwen-122B и 27B)

Работа с RabbitMQ (L3-02) также стала камнем преткновения.

  • Qwen-122B выдала отличную структуру, но допустила AttributeError — попыталась обратиться к свойству .queue у объекта канала, которого там нет.

  • Qwen-27B просто забыла про await при подтверждении сообщений (ack/nack). В асинхронном коде Python это фатально: корутина создается, но не выполняется, и сообщения копятся в очереди вечно.

3. Архитектурный карго-культ

Все модели отлично рисуют слои. Они знают, что domain не должен импортировать infrastructure. Но когда дело доходит до сшивки слоев через DI‑контейнер, они часто пасуют. Например, Qwen-27B создала репозиторий, который принимал сессию БД в __init__, но в конфиге DI она забыла её передать. Код выглядит красиво, но падает при первом же вызове эндпоинта.

Выводы: можно ли это использовать?

Мой главный инсайт по итогам эксперимента: локальные LLM знают паттерны, но не знают, что именно «ломается в 2 часа ночи».

В Greenfield‑проектах они идеальны как «генераторы скелетов». Сэкономить 2–3 часа на написании бойлерплейта, папок и базовых моделей — реально. Для agentic dev loop же полагаться на них целиком пока рано. Без внешнего «надсмотрщика» (вроде Sonnet 4.6), который будет бить их по рукам за ошибки в рантайме, они быстро превращают проект в нагромождение красивого, но нерабочего кода.

Самой ценной частью эксперимента оказались не сами модели, а идея с Judge LLM. Использование топовой модели (Sonnet 4.6 на момент написания этой статьи) в качестве автоматического ревьюера позволило выловить критические баги (вроде shadowing Pydantic), которые человеческий глаз может пропустить при беглом просмотре PR.

Что дальше?

Если вы планируете внедрять локальные LLM в разработку, мой совет: не тратьте время на написание идеального системного промпта для кодинга. Лучше инвестируйте в Reviewer Agent.

Если вы не ревьюите код от AI — вы не программируете, вы играете в «русскую рулетку».