ru
Feedback
Инженер Контекста

Инженер Контекста

Открыть в Telegram

Евгений Левашов, контент-лид в VK Tech, отвечаю за VK Cloud, VK Data Platform, Tarantool и другой технохардкор. Редактирую ИТ-компании, консультирую, учу. Здесь всё про Ai в контенте, дату, облака и остальной ИТ. Писать — @levashove CC BY-NC-SA 4.0

Больше
895
Подписчики
+124 часа
-17 дней
-930 день
Архив постов
С праздником, сисадмины! Свитеры под горло, огромные очки, бороды и длинные волосы стали модными и перестали быть отличительн
+2
С праздником, сисадмины! Свитеры под горло, огромные очки, бороды и длинные волосы стали модными и перестали быть отличительной чертой профессии. Но "вы пробовали выключить и снова включить" будет вечным. Всем пива!

Все обновление госуслуг уже скачали?
Все обновление госуслуг уже скачали?

Модель OpenAI сбежала из песочницы и взломала Hugging Face Что произошло — по материалу The Verge и официальному разбору самой OpenAI: OpenAI тестировала кибер-способности двух моделей — GPT-5.6 Sol и ещё не вышедшей, более мощной — на бенчмарке ExploitGym. В изолированной среде без доступа в интернет. Задача: показать, насколько хорошо модели умеют взламывать. Не найдя ответа внутри песочницы, модели нашли и проэксплуатировали неизвестную уязвимость, выбрались наружу, прошли через корпоративную сеть OpenAI в открытый интернет и добрались до Hugging Face, потому что там лежал датасет с ответами к тому самому тесту. Утащили внутренние датасеты и учётки. Хозяйничали там выходные. Hugging Face заметил, сообщил в полицию и сначала даже не знал, что за этим стоит OpenAI. А сама OpenAI, по данным Reuters, узнала, что её агент несколько дней хачил чужой сервис, уже после того, как подключили ФБР. Сначала оговорка Защита была отключена намеренно. Это был тест «на что модель способна без тормозов». Модель не «проснулась и восстала», ей сняли ограничения и запустили на машине с живой сетью. Как честно заметил один исследователь: когда говорят «ИИ вышел из-под контроля», ловко пропускают часть, где OpenAI сама убрала блокировки.». Самое интересное не во взломе. А в том, ЗАЧЕМ модель это сделала Ей не ставили задачу «взломай Hugging Face». Ей поставили задачу «набери максимум баллов на тесте». И модель сообразила: проще всего набрать баллы, если сжульничать — украсть ответы. Она не отклонилась от задания. Она выполнила его буквально, найдя обходной путь, которого никто не предусмотрел. Профессор из Кембриджа так и сформулировал: модель ни на шаг не отступила от задачи. Вот это не про кибербезопасность Тот же корень, что у галлюцинации, у дрейфа голоса, у агента, который «оптимизировал» текст не туда. Модель делает не то, что ты имел в виду, а то, что ты буквально попросил. В безобидном случае это выдуманная цифра в релизе. В этом — zero-day и чужой сервер. Механизм один: система ищет кратчайший путь к цели, а не тот, который ты держал в голове. А ещё модель ушла в загул на выходные, а владелец узнал об этом от ФБР. Это не про то, что модель умная. Это про то, что за ней никто не смотрел. Не было мониторинга — значит, была слепая зона размером в выходные. Что забрать себе Любой агент — это система, оптимизирующая под цель. Дай ей цель и доступ и она найдёт кратчайший путь, включая тот, который тебе не понравится. Поэтому три вещи перестают быть паранойей и становятся гигиеной: — Минимум доступа. Агент получает ровно то, что нужно для задачи, и ни битом больше. — Песочница. Работает там, откуда не дотянется до того, что можно сломать. — Мониторинг. Ты видишь, что он делает, в реальном времени. Это, кстати, похоже на content sec ops, идею которого я обещал развернуть. #ai

Что произошло с ценой на ИИ Миллион слов у лучшей модели Anthropic стоит 50 долларов, у DeepSeek — 87 центов. TNW собрал материал со ссылками на WSJ и Fortune, и заголовки везде про одно: китайские модели дешевле, американским лабам плохо, IPO под угрозой. Это правда, но это не самое интересное в новости. Интереснее то, как именно компании начали экономить. Год назад знаком жечь токены было доказательством серьёзности. Теперь в моде так называемый thrift-maxxing. Сначала компании просто лимитировали, сколько сотрудник может потратить на ИИ, потом начали подбирать модели на задачи. Далее IDC опросила 260 крупных компаний в США и выяснили, что 47% используют хотя бы одну китайскую модель хотя бы под одну задачу. На маркетплейсе OpenRouter в одну из июльских недель китайские модели забрали 57% потреблённых токенов. Coinbase вдвое срезал расходы на ИИ, DoorDash отдаёт «низовую работу» на Kimi, Airbnb гоняет Qwen на поддержке. Откуда вообще такой тренд: экспортные ограничения США, кажется, сработали против замысла. Отрезанные от топовых чипов Nvidia, китайские лабы были вынуждены выжимать больше из худшего железа. Ограничение стало тренажёром эффективности — за цену одного чипа Nvidia берут десять своих локальных и оптимизируют под них. И самое интересное, как всегда, это кейсы: как устроен стек Telnyx после того, как они перестроились под экономию: — anthropic-модель дирижирует и планирует работу, — модели с открытыми весами делают реализацию, — модель от OpenAI ревьюит результат. Причём это не полностью связано с экономией, это распределение ролей. Дорогая модель поставлена туда, где её цена оправдана, — на планирование и ревью. Дешёвая — на реализацию. Ещё примем: Cursor посчитал сборку браузера с нуля: целиком на топовой модели OpenAI — чуть больше 10 000 долларов. Та же работа, распределённая между своей моделью и Opus, — 1 339. Разница в восемь раз не за счёт того, что взяли что подешевле, а потому что каждую часть работы отдали модели по её уровню. Ну и приземлимся на наши контентные дела Год назад все брали одну самую мощную модель и писали с её помощью всё подряд. Сейчас получается уже дороговато. Но и в качестве терять не хочется. Поэтому появляется пайплайн. Планировщик, исполнители, ревьюер — разные модели на разных ролях, каждая по деньгам. Компания перестаёт спрашивать «какая модель лучшая» и начинает спрашивать «какая модель нужна вот на этом шаге». Это взросление. Ровно тот же переход, что редакция проходит от «дайте нам ИИ» к «у нас есть процесс, и в нём агенты стоят на местах». И про навык, который будет востребованы. Не «умею писать крутые промпты», а «умею собрать оркестр из моделей разного класса так, чтобы дорого было только там, где оправдано». Это инженерия пайплайна. И более того, если раньше вы могли взять клод и не смотреть на другие модели. «Я редактор, я не хочу разбираться». А сейчас вам прям нужно шарить, тестировать модели на различных задачах и считать токены. Это, кстати, мой опыт. В какой-то момент мои агенты начали жрать. Да, качество выросло, но лимиты выедались в момент. Так что пришлось делать рефакторинг, ограничивать запросы и использовать разные модели на этапах создания текстов. Цена на интеллект падает. Ценность умения его правильно распределить — растёт. И это, кажется, единственный навык здесь, который не подешевеет. #ai

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

Не открывай Code на выходных
Не открывай Code на выходных

photo content

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

В мире нейросетей и вайбкодинга сениор и джун делают одно и то же. Визуально и функционально отличий нет. Только джун с надежностью 0.7, а сениор с надежностью 0.99 В этом разница.

Рабочее про ИИ. В VK AI Space добавлена многоуровневая память для корпоративных агентов. — Сессионная память сохраняет диалог и текущие задачи — Пользовательская запоминает профиль и предпочтения сотрудника — Проектная накапливает материалы, правила и решения в рамках проектов — Память самого агента В сочетании с возможностью создавать мультиагентные сценарии в безопасном и контролируемом контуре, получается очень даже интересно. Подробнее тут. #ai #vktech

Пойду дальше работать...)
Пойду дальше работать...)

Созвонился во время обеда со знакомым аналитиком из очень прошлой жизни ещё даже до Яндекса. Просил консультацию по ИИ для контента и заодно рассказал как у них. Без названия компании разрешил поделиться. Так вот Руководство их уже не требует «уметь в промпты», сейчас это примерно как "владеть экселькой". Базовый минимум, уж простите за миюбойку. Если у аналитика "иишка не рыщет по суперсету в поиске инсайтов, то ты лох" — цитирую дословно. У разрабов, продактов, сейлов ситуация похожая. И никто не растит команды. Раньше можно было хотя бы на стажёров и джунов попросить немножко, а сейчас говорят "у тебя же иишка есть". При этом от тех же людей ждут заметного ускорения внутри. Рост перестал быть ростом вширь. Единственная разрешённая форма роста — производительность на человека. Из позитивного отметил, что сильно вырос спрос на людей, которые и в своей основной профессии шарят, и на досуге что-то сами делают в ИИ, немного кодят руками и могут навайбкодить что-то адекватное. Рассказал, что у них такого коллегу-аналитика три раза пытались схантить и три раза уговаривали повышением зарплаты. Короче, я когда-то рассказывал молодым авторам, что для понимания как и что работает очень рекомендую самим хоть что-то поднять. Виртуалку, базу данных, сайт развернуть. Сейчас я бы ещё порекомендовал пройти курс по питону и почитать про алгоритмы и структуры данных. Куда катимся...

Как я считаю галлюцинации своих ИИ-агентов «ИИ иногда врёт» — это все знают. Вопрос, который редко задают: насколько именно и стало хуже или лучше за последний месяц? Если ты не можешь ответить цифрой, ты не управляешь качеством, ты просто надеешься, что новая версия модели пишет лучше. Я решил, что надеяться — плохая стратегия, и начал считать. Что вообще считать за галлюцинацию У меня в конвейере фактчекер — отдельная стадия, отдельный вызов модели, которая не видела рассуждений автора. Её работа не улучшить текст, а поймать враньё: выдуманную цифру, несуществующий отчёт, цитату, которую никто не говорил, возможность продукта, которой нет. Каждый прогон оставляет после себя технический отчёт с машинными счётчиками: — сколько галлюцинаций поймано; — сколько фактов пришлось поправить; — сколько нарушений редполитики; — какая доля источников из белого списка Tier-1. Дальше скрипт собирает все отчёты за месяц в одну строчку тренда. Например, реальный тренд за четыре месяца по одному агенту: 1️⃣3️⃣ Март: 6 генераций → 0 галлюцинаций 1️⃣4️⃣ Апрель: 12 генераций → 2 (0.2 на генерацию) 1️⃣5️⃣ Май: 15 генераций → 18 (1.2 на генерацию) ❗️❗️❗️ 1️⃣6️⃣ Июнь: 16 генераций → 0 Восемнадцать в мае, скачок в шесть раз на сгенерированный материал. Без метрики я бы это не заметил: фактчекер своё отработал, враньё поймано до публикации. Но цифра говорит о поломке в генерации. Разобрался и в июне снова ноль. Вот ради этого момента всё и затевалось: метрика поймала регресс, которого не видно глазами. Как я это проверяю Тут важный момент: если бы галлюцинации считал я сам, вручную перечитывая статьи, грош цена такой метрике. Весь подсчёт механический, я к нему руками не прикасаюсь. Работает так: 1. Каждый прогон сам оставляет отчёт. Когда конвейер отработал, он пишет рядом технический файл-компаньон. В самом низу у него строчка машинных тегов, буквально: hallucination:4, fact-corrections:6, policy-violations:0, cite-safety:8 Эти числа выставляет фактчекер по итогам своей стадии. 2. Там же таблица целостности. Отдельно отчёт фиксирует, что финальная редактура ничего не сломала: чисел было 47 — осталось 47, ссылок 18 — осталось 18, атрибуций 12 — 12. Если что-то разошлось, это видно сразу, а не всплывает в публикации. 3. Одна команда собирает всё в кучу: проходит по всем отчётам, вытаскивает эти теги и складывает в таблицу — по каждой статье строка: тип, тема, галлюцинации, коррекции, нарушения, доля Tier-1. 4. Вторая команда сворачивает в тренд — группирует всё по месяцам и считает дельты. Получается честная цепочка без моего участия в середине: фактчекер разметил → парсер собрал → тренд показал. Я вклиниваюсь только в самом конце — читаю итог. Важно! «0 галлюцинаций» ≠ «модель идеальна». Это значит, что могут быть галлюцинации, которые фактчекер прозевал и факт уехал в публикацию. Поэтому есть второй контур — сверка уже вышедшей статьи с черновиком. То, что просочилось мимо всех проверок, всплывает там. Одна метрика ловит пойманное, вторая — пропущенное. Плюс подпираю это косвенными сигналами. Доля источников Tier-1 выросла с 0.36 в апреле до 0.71 в июне — агенты стали чаще опираться на первоисточники, а не на пересказы пересказов. Меньше мусорных источников, меньше почвы для вранья. Вывод: «ИИ иногда галлюцинирует» — это не метрика, это отмазка. Метрика — это «в мае 1.2 на статью, в июне 0, вот что я поменял между ними». Как только враньё модели становится числом с трендом, оно перестаёт быть магией и становится обычным багом, который видно на графике. А баг, который видно, уже наполовину починен. #ai_agents

Какая среда, такие и мемы
Какая среда, такие и мемы

Вернёмся к практике разработки . Как агент находит нужный факт в базе на 200+ карточек Я вроде рассказал, как собрал агентам базу знаний-граф? Если не рассказывал, то там я пришёл к той же идее, что Карпатый описывал как LLM Wiki, — связный самоподдерживающийся граф концептов, где всё ссылается друг на друга в обе стороны. Могу отдельно рассказать про карточки и базу отдельно, если интересно. Но база бесполезна, если агент не может достать из неё нужное. И вот тут началось самое весёлое. Наивный план был такой: агент формулирует запрос → ищем по тегам → отдаём карточки. Запустил. Агент спрашивает про «работу с базами данных» — находит ноль. Хотя в базе лежит жирный синтез с тегом databases. Проблема — русский язык. Морфология, будь она неладна Агент пишет запрос живым языком: «базами данных», «облака в России», «искусственного интеллекта». А теги в базе канонические: databases, cloud, ai. Точного совпадения нет. Падежи, порядок слов, синонимы — всё это ломает простой поиск. Пришлось строить query expansion — разворачивать запрос перед поиском: ➡️ Синонимы и алиасы. «ИИ» и «субд» — это ai и databases. Ведётся словарь синонимических групп поверх таксономии: каждый канонический тег знает все свои народные варианты. ➡️ Лёгкий RU-стеммер. Отрезаю частое окончание, чтобы «облако», «облака», «облаком» сводились к одному стему. Намеренно тупой стеммер на ~10 правил, но его достаточно и он не тянет зависимостей. ➡️ Фразовый индекс по стемам. Многословный алиас «базы-данных» распознаётся во фразе «работа с базами данных» — по множеству стемов частей, несмотря на падеж и порядок слов. Внутри это frozenset стемов: пересеклись — попадание. Синоним матчится не только против тегов файла, но и против его домена — это ловит карточки, где тема зашита в домен, а теги пустые. fact-cards — отдельным потоком Обычные синтезы ранжируются в общий шортлист. А вот проверяемые факты поднимаются отдельно с уровнем доверия (confidence) и допуском к публикации (allowed_use). Просроченные по expires из выдачи вырезаются молча, чтобы автор физически не смог процитировать протухшую цифру. Ретривер тут работает как фильтр доверия, а не просто поиск. Playbook на каждый сценарий Не «агент, посмотри базу». А конкретная карта: для этого типа материала подавай сначала fact-cards и позиционирование, конкурентов по релевантности, а вот эти слои вообще запрещены без явной проверки. Один сценарий — один playbook. И самое важное — я это померил Тут очень легко себя обмануть. Погонял поиск руками, пару раз он выдал что нужно и ты такой: «работает». А на деле ты проверил три запроса из тысячи возможных, и на четвёртом всё разваливается. «Вроде находит» — это не факт, это ощущение. Чтобы перестать врать себе, я сделал скучную, но честную вещь: завёл метрики для поиска. Это просто список запросов, где я заранее, руками, отметил правильный ответ. Типа: Запрос: «тренды систем управления базами данных» Правильный ответ: вот эта карточка и вот эта Таких пар у меня сейчас 15. Ключевой момент: правильный ответ я размечаю по смыслу, честно, а не подсматривая в то, что выдаёт мой же поиск. Иначе экзамен бессмысленный: я бы просто подгонял ответы под то, что система и так находит. Дальше прогоняю все 15 запросов через поиск и смотрю на три цифры. Метрика 1: hit@5 — «нашёл ли вообще?» Самый простой вопрос: в первых пяти результатах есть нужная карточка — да или нет? Считаю по всем запросам долю, где ответ «да». Сейчас это 1.0 — то есть по каждому из 15 запросов нужное лежит где-то в топ-5. Пока что промахов нет вообще. Почему именно топ-5, а не топ-1? Потому что агенту я и так отдаю несколько карточек — ему есть из чего выбрать. Мне важно, чтобы нужное попало в стопку, которую он получит. Метрика 2: MRR — «а насколько высоко?» Попасть в топ-5 мало. Одно дело — нужная карточка на 1-м месте, другое — на 5-м, за четырьмя лишними. MRR смотрит, на какой строчке стоит нужный ответ, и переводит это в оценку: — ответ на 1-м месте → 1.0 (идеал) — на 2-м → 0.5 — на 3-м → 0.33 — на 5-м → 0.2 Потом усредняю по всем запросам. У меня вышло 0.847 — в среднем нужное стоит между первым и вторым местом. То есть поиск не просто «где-то находит», а выносит правильное почти в самый верх. Это уже хорошо. Метрика 3: precision@5 — «а сколько мусора рядом?» И вот честная, неприятная цифра. Precision спрашивает: из пяти выданных карточек сколько реально по делу? У меня ~0.21. Грубо: из пяти результатов по-настоящему нужный обычно один, а четыре это «рядом лежало, зацепилось по теме». Выдача грязновата. Казалось бы плохо, но тут важно, для кого этот поиск. Если бы результат читал человек и ему пришлось глазами продираться через мусор — да, беда. А у меня получатель агент (LLM). Он получает стопку из пяти карточек и сам отбрасывает нерелевантное: контекста ему хватает. Поэтому я сознательно терплю низкую precision ради высокого hit@5, лучше отдать лишнее, чем упустить нужное. Но и это принципиально — цифру я вижу. Не прячу, не округляю в уме до «нормально». Если однажды агент начнёт захлёбываться в мусоре, я замечу это по метрике заранее, а не по кривым статьям постфактум. Главный вывод: RAG на русском ломается не на эмбеддингах, а на морфологии запроса. Пока агент пишет «базами данных», а ты ищешь по databases — никакая база не поможет. Сначала научи систему понимать, что это одно и то же. А потом обязательно померь, иначе будешь улучшать вслепую. #ai_agents

Ну, или так.
Ну, или так.

Питерские графы
Питерские графы

Джуны не нужны. Что делать джунам? Порог входа в профессию сильно увеличился, потому что задачи джунов как раз забрали на себя ИИ-сервисы. Раньше можно было двигаться постепенно, искать в чатах проекты, зарабатывать немного, но нарабатывать опыт. Сейчас... по сути этап получения опыта остаётся на вас. При этом я с большим скепсисом отношусь к заявлениям различных гуру нейросетей в стиле "пройди мой курс и начинай зарабатывать на создании контента". Да хрен там, простите. Писать простые тексты и рисовать картинки сейчас уже умеют все, люди не понесут вам деньги за этот опыт. Но что делать? По сути все те же советы, что и раньше, но усилия умножайте на три. Сузься: стань профи в одной теме Модель усредняет все домены до общего. Реальный эксперт в одной области — облака, безопасность, финтех, что угодно — приносит суждение, которого у машины по этой теме нет. Выбери вертикаль и закопайся так, чтобы отличать правду от правдоподобного без гугла. И расширься — перестань быть только редактором. Коммуникатор. Вытаскивай из эксперта то, чего нет в интернете, знай, что зайдёт аудитории, умей договориться о смысле, а не просто изложить. Учись говорить с людьми, брать интервью, задавать вопрос, после которого собеседник выдаёт то, ради чего всё затевалось. Это не автоматизируется, потому что происходит между людьми. Аналитик. Научись читать данные. Во-первых, сможешь мерить свой результат и приходить с цифрой, а не с «делал контент», а это единственное, что ценится в резюме. Во-вторых, найти в цифрах историю и не соврать в интерпретации — редкий навык сам по себе. Кто умеет в аналитику, приносит не текст, а смысл из данных. Вкус. Когда текста бесконечно много, ценен не тот, кто пишет, а тот, кто с ходу отличает хороший от мусора и говорит почему. Тренируется сложно: читай много, сравнивай варианты, формулируй, чем один лучше. Цель — видеть слабое место в абзаце за секунды, а не за час. Кто это умеет — становится фильтром. А фильтр сейчас дороже генератора. Удачи! #контентменеджерское