Русский
Открыть в Telegram

Пост Галлюцинации и харнесы

26 августа 2026
О
Одержимый кодом🔥
Галлюцинации и харнесы Немного предыстории, которой я ещё не делился публично. Мы купили 4 GPU по 32 ГБ и экспериментируем с локальными моделями. И только в этом процессе я, кажется, по-настоящему понял, что такое галлюцинации моделей и harness engineering :) Галлюцинациями нас пугали с первых дней появления LLM, но раньше я их особо не замечал. И думаю, если вы не работали с маленькими, глупыми, но очень гордыми моделями, которые при этом побеждают всех в бенчмарках, то вы тоже знаете об этом явлении в основном теоретически. Для агента, в котором я тестирую модели, выбрал Pi. Это такой агент из категории «сделай сам»: основа есть, но до полноценного решения многое приходится допиливать самостоятельно. Зато система очень гибкая. Написал расширение под своего провайдера — и пошёл харнесить. Начали мы с Qwen3-Coder-Next. Модель довольно неплохая, но на нашем железе работала медленно — примерно 5–10 токенов/с. Я прогнал её на своём бенчмарке: https://aichamp.cutcode.dev/challenges/api-pdf-challenge-d5a29e16 На тот момент она заняла почётное последнее место и выполняла задачу около 2 часов. Для сравнения, GPT-5.6 справляется с ней примерно за 10 минут. Но железо только приехало, хотелось пощупать как можно больше моделей, поэтому долго разбираться не стали и скачали следующую — Qwen3.8-27B с контекстом чуть больше 200k. И тут внезапно начался отдельный квест с инфраструктурой. Модель меньше предыдущей, но работала ещё медленнее. Оказалось, что она вообще не загрузилась в GPU: в конфиге мы прописали ID видеокарт, а они изменились, и Ollama фолбэком отправила вычисления не туда, куда мы ожидали. После настройки обнаружили ещё один сюрприз: в доступные GPU попадала NVIDIA 1050 Ti, которая нужна серверу исключительно для монитора, но при определённых обстоятельствах тоже могла попытаться поучаствовать в великом деле инференса :) В общем, инфраструктуру мы прилично перелопатили. Поэтому Qwen3-Coder-Next, думаю, ещё обязательно перетестирую — сейчас результаты могут быть совсем другими. После настройки Qwen3.8 уже выдавала около 30 токенов/с, работала вполне бодро и в том же бенчмарке заняла 16-е место, обойдя Луну, SWE и даже Huihui. И всё было бы хорошо, но внутри самого бенчмарка я хотел использовать локальную модель ещё и для ревью результатов. Вместе с Ичи мы построили довольно жёсткое, детерминированное, многослойное ревью. И вот тут Qwen начала сыпаться. В structured output она регулярно добавляла отсебятину, что-то забывала или немного меняла формат. Пришло время крутить temperature и top_p. Фантазировать стала меньше. Стало лучше. Но ошибки всё равно оставались. И тогда в бой вступила Gemma4-26B-A4B-Q8. Codex её очень хвалил: мол, умнее и быстрее Qwen3.8-27B, умеет в vision и хорошо работает конкурентно. И действительно: в GPU занимает всего около 39 ГБ, а скорость у меня доходила до фантастических 70 токенов/с. С tool calling она работала настолько быстро, что я буквально не успевал следить за происходящим. Вот бы так же быстро работали Claude и Codex :) Но именно на Gemma я впервые очень ярко прочувствовал, что такое настоящие галлюцинации маленькой модели. На самом деле похожие симптомы были и у Qwen3.8. У неё заявлено больше 200k контекста, но уже после примерно 30k она начинала вести себя странно. Тогда я ещё грешил на нашу инфраструктуру. Gemma же после ~30k просто сходила с ума. Она могла потеряться в содержимом файла, который только что сама прочитала, не могла нормально его отредактировать, забывала предыдущие действия и начинала творить какую-то дичь. И вот тут в игру по-настоящему вошёл harness engineering. Pi для этого оказался очень удобным. Например, модель вызывает tool и после этого внезапно решает, что работу можно не продолжать. На уровне агента мы это видим и просто пингуем её продолжить. Да, это лишний запрос. Но когда модель локальная — какая разница? Другой классический сценарий: тест не прошёл → «сейчас исправлю» → снова запускает тот же тест → он снова не проходит → «сейчас исправлю» → снова запускает тест. И так потенциально до бесконечности. Теперь мы ловим такие циклы, останавливаем их и отправляем модели дополнительную инструкцию, которая помогает выбраться из рекурсии. Ещё один вывод: 200k контекста у таких моделей пока скорее маркетинг, чем реально полезные 200k. Я сначала сократил контекст до 30k — модель стала заметно стабильнее, но для серьёзной работы с кодом 30k смешно мало. Сейчас экспериментирую со 128k и параллельно пытаюсь компенсировать деградацию модели на уровне расширений Pi. То есть вместо того, чтобы ждать от маленькой модели, что она внезапно станет умной, постепенно строю вокруг неё систему, которая знает её слабые места: ловит циклы, проверяет ответы, заставляет продолжать работу, ограничивает фантазирование и не даёт тихо сломать workflow. Собственно, вот это для меня и стало самым наглядным объяснением термина harness engineering. Пока Gemma в моём бенчмарке заняла последнее место с довольно плохой оценкой :) Но эксперимент явно не закончен. Думаю, продолжу искать оптимальную локальную модель или вернусь к Qwen3.8 уже с новыми знаниями и сильно прокачанной агентной обвязкой. Плюс хотим перейти с Ollama на llama.cpp, что тоже должно дать новые возможности для экспериментов. Буду периодически рассказывать, что из этого получается. Мне самому сейчас даже интереснее не вопрос «какая локальная модель самая умная?», а другой: насколько тупую модель можно заставить нормально работать хорошим harness? P.s. Если вам было интересно, то могу постараться чаще делится процессом работы с gpu и локальными модельками
Длинный пост
фото и оформление — в Telegram ↗
4 · 303 ·

Рядом в ленте

ООдержимый кодом🔥От скучной генерации к инженерии с ИИ ИИ быстро генерирует код, но без контекста, декомпозиции и проверок работа с агентами превращается в ожидание и бесконечныООдержимый кодом🔥Решил всё-таки закинуть неизданный ролик про бизнес, построенный на AI😄 Почему неизданный? Я скидывал его нескольким людям — никто не засмеялся. В общем, теперь
это сообщение
ООдержимый кодом🔥Супруга попросила GPT составить мою натальную карту, и, судя по ней, я LLM) В какой-то момент в разборе появилось вот это: «Вот проблема. Вот результат. Вот криООдержимый кодом🔥Как Qwen Q6 неожиданно обошёл Qwen Q8 и показал качество Opus 5 xhigh Недавно мы перевели локальный инференс Qwen с Ollama на llama.cpp. Главная цель — нормальн
ООдержимый кодом🔥Одержимый кодом🔥@cutcode · канал
343подписчиков105средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем