Пролог:
Механизмы (веса) внимания ИИ – еще одна важная часть управления, которую обязательно стоит знать практику. Если вы знаете “как мыслит” и “на что обращает внимание” нейросеть, вы уже по умолчанию чувствуете ее намного лучше.
Для остальных – “ну как-то она сама, а потом сломалась и начала ерунду писать”, для вас – конкретная картина того, что происходит и почему происходит именно так
Ниже – реально важные принципы и механизмы, которые еще не раз помогут вам в работе. Не поленитесь потратить время и изучить, потом еще не раз пригодится. Начнем.
Ситуация:
Дано: человек проверяет через диалог с ИИ входящие коммерческие предложения (КП). Приходят, он вставляет, смотрит. Инструкция собиралась месяц и доросла до двух страниц: как оценивать, что считать подозрительным, как оформлять разбор
Нюанс: среди правил есть критичное: “цены и сроки из КП цитировать дословно, без пересказа”.
Правило работало неделями. А потом, посреди очередной длинной сессии, перестало: модель начала округлять суммы и пересказывать сроки своими словами.
Инструкцию никто не трогал.
В такой момент человек “со стороны” обычно ничего не понимает – с чего это модель вдруг отупела.
Но ИИ-технолог знает, что поломка в другом:
Хотя правило по-прежнему лежит в контексте и модель его в каком-то смысле «видит», но … Но видеть и опираться при генерации не одно и то же. Между этими двумя состояниями стоит механизм, который называется механизмом внимания модели (т.н. “веса внимания”)
И именно это внимание со временем размылось и дало сбой.
Вообще, о нем обычно говорят либо мельком, как о пропускаемой технической детали, а зря: именно этот механизм часто решает, что модель «услышит» в вашем промпте, а что – нет
И сразу главная особенность темы: этот механизм вам не покажут. Ни один обычный интерфейс не отображает, куда модель «смотрела», отвечая вам.
Все управление вниманием – слепое, по косвенным признакам. Тем важнее понимать, что там внутри происходит, – это единственная карта местности, которая у вас будет
Как это устроено (без формул)
Как модель понимает, что в вашем запросе слово «это» относится к третьему абзацу, а не к первому? Как связывает «его» с «клиентом» из пяти предложений назад?
Давайте возьмем фразу:
«Он передал ему книгу, потому что она была тяжелой»
Вроде бы “он”, но “она” … Немного запутано для ИИ, верно? И это ведь не вероятностное “Зимой с неба идет снег” и даже не “король — королева”.
Здесь уже как бы ловушки вроде “он” и “ему” (они очевиднее всего), а ИИ все равно правильно отрабатывает и понимает “она”
Почему так? Почему модель разбирается во всей этой путанице, если ИИ работает с токенами, а явной вероятностной механики здесь нет?
Потому что здесь подключается механизм внимания:
Когда модель решает, как понять и насколько высоко поставить в значениях «она», механизм внимания пробегает по всем словам контекста и назначает каждому вес – насколько это слово важно прямо сейчас, для этого кусочка ответа.
«Книгу» получит высокий вес, «ему» – низкий. И так – заново для каждого нового токена (о токенах и контекстном окне вы уже знаете): распределение пересчитывается динамически, на каждом шаге генерации.
Внимание – это что-то вроде общего бюджета. Доли одного целого. Оно не добавляется – оно делится на всех. И если один кусок контекста получил больше, все остальные вместе получили меньше. Ровно на столько же
Отсюда ВАЖНОЕ следствие, которое стоит прочитать медленно: в контексте не бывает бесплатных слов.
Каждое предложение, добавленное «для надежности», каждый вводный оборот, каждая справка «на всякий случай» – оплачены вниманием ко всему остальному. Немного, незаметно – но оплачены. Пока текста мало, эта арифметика не чувствуется вообще. Когда контекст разрастается, она начинает решать все.
Важные уточнения:
- Карта внимания не одна – их много. Механизм повторен на каждом слое модели, и на каждом слое работает несколько «голов» – параллельных подмеханизмов, каждый со своим распределением
Одни головы держат грамматику, другие – далекие смысловые связи, третьи – повторы. Так что фраза «модель обратила внимание на X» – усреднение поверх огромной машинерии. Для практика усреднение это рабочее, пользуйтесь спокойно, но знать такое все же стоит.
И вот зачем стоит знать: из “мультиголовости” некоторые горячие головы (извините за тавтологию) любят выводить эффектные теории вроде «головы ссорятся, и надо адресовать инструкции разным головам правильно, тогда будет идеальная идеальность»
Проверить это нельзя, головам ничего «адресовать» вы не можете, а вот сумбур и хаос получите точно. А если попробуете еще и “вычислять закономерности”, то и головную боль в придачу.
И даже если вы решите спросить модель, и она скажет вам – какие головы она использовала и насколько, это просто будет вероятностная подстройка под диалог, а не истина. Так что даже не тратьте время на эту уличную магию
Если просто: они есть, но не для нас. Точка.
- Среди голов есть механизмы, которые ловят повторы. Этот факт, кстати, прекрасно объясняет, почему примеры в запросах работают так сильно (модели буквально есть с чего «скопировать» образец).
Плюс – почему все, что лежит в контексте, стремится воспроизвестись (включая то, что вы воспроизводить не хотели). К этому еще вернемся. пока просто информация.
3. Модель смотрит и на свой собственный ответ. Пока модель пишет, то уже написанная ей часть ответа – это для нее такой же контекст, как ваш запрос
То есть фактически она опирается на то, что уже написала, как на инструкцию.
И внимание по этой части написанного тоже работает.
Именно поэтому верно правило, что первые фразы ответа ИИ задают тон всему ответу
Если модель начала с «Конечно! Это отличный вопрос…» – она с высокой вероятностью продолжит в общем безопасном тоне: каждый следующий токен опирается на этот зачин.
И отсюда же вырастет один из самых сильных приемов урока: задавать первую фразу ответа явно. В таком тоне (формате, смысле), который вам лучше подойдет для решения (об этом тоже позже)
Чего из этой механики НЕ следует
- Весов вы не увидите – значит, не сможете «настроить»
Управление вниманием всегда косвенное: вы не крутите веса, вы меняете вход – состав, порядок, объем, заметность кусков.
Единственный доступный вам прибор – поведение модели. Но и это немало: немалая часть приемов промптинга и управления ИИ в целом, если разобрать их до винтиков, окажутся именно перераспределением этого невидимого бюджета
Так что не ждите панели с ползунками (мы их сами будем создавать:)
- Внимание объясняет не все провалы
Его юрисдикция – класс проблем «информация в контексте есть, а в ответе не отработана». Нарушение логики, сбои стиля и т.д и т.п. бывают по массе других причин, во всем их винить не стоит.
Самые больные поломки внимания
Боль №1: инструкция топит сама себя
Самый частый момент. Даже инструкция нашего героя с КП разрослась, возможно, вполне обосновано. Каждое добавленное правило было разумным: тут уточнить, там подстраховаться, здесь оговорить исключение.
Но вспомните: бесплатных слов нет.
В итоге все, что попадает в диалог технически и несет с собой его деградацию. Конечно, не сразу, но со временем и если в больших объемах – точно. Чем больше информации, тем сильнее дробится общий бюджет
Именно поэтому сильные практики со временем начинают очень следить за чистотой диалогов, особенно ценных, где ИИ поймал верный ракурс, пошел по правильному пути и выдает очень толковые вещи. В таких диалогов порой лишний раз подумаешь – дать ли лишнюю “размывающую” информацию или не стоит.
Боль №2: модель теряет середину
Вы дали промпт на страницу: в начале – контекст, в середине – важнейшие ограничения, в конце – формат. Модель отвечает так, будто середины не было.
Причина: в длинных контекстах внимание распределяется примерно U-образно – начало и конец получают непропорционально много, середина проваливается
Откалибруем для верности: сила эффекта разная у разных моделей, новые поколения справляются заметно лучше старых, на коротких контекстах он уже почти не виден. Но это все еще тенденция, с которой надо считаться.
Практический вывод: середина длинного контекста – худшее место для важных данных. Поэтому не удивляйтесь, если модель «не заметила» абзац в центре большого документа.
Заметить-то она может – но шансы получить достаточно внимания там объективно ниже.
Боль №3: в длинном диалоге ранние инструкции выцветают
Вы начали чат мощной ролью и четкими правилами. Первые ответы – идеальные. Проходит двадцать сообщений – и модель ведет себя так, будто роли не было вовсе
Почему так?
Первое: поздние сообщения ближе к точке, где модель прямо сейчас пишет, – и внимание они получают легче. Ранние уходят в тень той самой U-кривой из прошлой боли.
Второе: контекст разбухает. Правила из первого сообщения конкурируют уже не с десятью строками, а с десятью страницами. Инструкцию никто не удалял – просто ее долю бюджета съели соседи 🙂
Важный практический момент (вилка):
Правила, заданные через кастомные инструкции (инструкции пользователей, которые вводятся не в диалоге, а в настройках интерфейсов — системные промпты, правила поведения моделей и т.п) – выцветают заметно медленнее: у них и приоритет повыше (об этом чуть ниже, в приемах), и позиция не размывается историей диалога.
А самые уязвимые правила – те, что живут в первом сообщении обычного чата. Как раз там, куда их кладут чаще всего. Именно это и случилось с нашим героем и правилом про дословные цены
Боль №4: инструкции конфликтуют, и модель выбирает не то
Вы даете три указания разом: «будь вежлив», «ответь кратко», «перечисли все возможные причины». А получаете нечто среднее: не очень вежливо, не очень кратко, и причин явно мало.
Почему так? Потому что все три инструкции конкурируют за один и тот же бюджет внимания. А внутреннего ощущения «вот это здесь главное», которое есть у вас, у модели нет
Если приоритет не задан явно – побеждает самая яркая, самая объемная или самая последняя. Или вообще ассорти.
Боль №5: модель “залипает” – на контексте или на собственном ответе
Здесь два родственных сценария:
Залипание на куске контекста. Внимание модели вцепилось в яркий фрагмент – пример, старый вариант текста, цепкую формулировку, и ИИ тащит его во все ответы подряд. Вполне возможно, что у нашего героя старое КП с характерным оборотом начало прорастать и в другие разборы.
Скажем, где-то раньше была яркая фраза, а рядом какое-то округление. Что-то там у модели коротнуло, и теперь она и подобие такой фразы вставляет везде, и округляет заодно …
* Примечание. Перечитывал урок еще раз, и вот на моменте выше – даже у меня, человека бывалого в ИИ-управлении, возникла мыслишка “Как там все хитро-сложно”
Не нужно бояться. В подавляющем большинстве случаев ИИ все отрабатывают как нужно, особенно при нормальных моделях и не огромных диалогах, но …
Но мы, как сильные практики, должны знать все такие вещи и минимально понимать их природу. Спокойно учитесь и спокойно начинайте управлять ИИ. Свои ошибки вы все равно наделаете (практика без ошибок не бывает), но если будете знать все такие вещи, будете намного увереннее и сильнее.
Залипание на собственном зачине. Модель неудачно начала ответ – и выбраться уже не может: каждый следующий токен опирается на написанное, и казенный тон или ошибка тянутся до самого конца
Ответ, который стартовал с «Это сложный и многогранный вопрос…», почти обречен на общие слова. Колея проложена первым же предложением.
Лечение:
Первое – физическое: вычистить или перефразировать сам кусок, либо уйти в новый чат. Прилипшее не переспоришь – его убирают из-под внимания, а не уговаривают.
Второе – превентивное: задать первую фразу ответа самому или прервать неудачную генерацию сразу и отредактировать запрос, например, добавив требование сразу начинать с анализа без вступления.
Приемы по перераспределению внимания
Это даже, скорее, не приемы, а техники, которые опытный практик применяет “на автомате”, то есть что-то вроде самого очевидного, что нужно просто знать и учитывать всегда
Общее у них одно – ни один из них не требует видеть веса. Все работают через состав и геометрию входа – то есть через то, что нам реально доступно. Это и есть работа ИИ-технолога на уровне механики, а не на уровне заклинаний уличной магии.
- Позиция вместо “ВАЖНО!!!”. Самый дешевый и самый недооцененный рычаг. Переставить – бесплатно. Кричать – дорого. Поясню:
Форматы типа “ВАЖНО!” “КРИТИЧНО!” и т.п. реально работают, но когда их буквально 1-2-3 (и то если промпт большой). Они перетягивают на себя внимание ИИ, но до поры. Если таких “криков” много (а особенно если они повторяются, например, три “ВАЖНО!!!”), ИИ путается и сбивается.
Прежде чем усиливать правило словами, спросите себя: а нельзя ли его просто передвинуть в начало и продублировать в конце? - Явное ранжирование. Не заставляйте модель угадывать, что здесь главное, помогайте.
Вместо: «Напиши мягко, но чтобы понял, что просрочек не потерпим, но не обидеть, главное оплата» → «Главная цель – добиться оплаты. Второстепенно, если не мешает главному, – сохранить ровные отношения. Тон спокойный, без извинений и угроз»
Одна фраза «Главная цель» снимает конфликт инструкций надежнее любых выделений
- Изоляция отдельным сообщением. Правило, вшитое двенадцатым пунктом в простыню, конкурирует с одиннадцатью соседями. То же правило отдельным коротким сообщением работает ощутимо лучше.
Только не из-за магии границ сообщения – для модели это просто разметка. Работают три обычных фактора: правило попадает в самую свежую зону контекста, оно короткое, и рядом нет конкурентов. Для критичного разового требования это стабильно сильнее, чем строчка в общем списке
- Разделяйте данные и инструкции. Когда документ и задача слиты в одно полотно, модель тихо мешает их в кашу: инструкция тонет в данных, а куски данных начинают читаться как указания. Ставьте жесткую границу:
*»### ДАННЫЕ (документ)
ЗАДАЧА
(что с ним сделать)»*
Годятся заголовки, теги, тройные кавычки – форма не важна. Важна однозначная стена между «вот материал» и «вот что с ним делать». В уроке по структуре промптов будут еще дополнительные приемы отсечки и привлечения внимания этого класса (модульность и чек-листы)
- Структурные маяки – но только с плотным смыслом внутри. Заголовки, нумерация, четкие блоки с разделителями типа _________ – размеченный контекст модель отрабатывает стабильнее сплошного полотна. Пользуйтесь.
- Изолируйте примеры – и говорите, что из них брать. Примеры – самый мощный магнит для механизма копирования. Да и вообще примеры – лучшее, что есть в управлении ИИ для максимальной передачи вашего посыла.
Но здесь важно понимать: ИИ часто тянет из примеров без разбора все подряд. Вместе с логикой уедут и стиль, и длина, и даже тема примера. Поэтому отделяйте примеры от задачи и друг от друга явными границами + прямо указывайте, что копировать:
«<пример>… здесь текст …. </пример> Из примера возьми только структуру рассуждения. Стиль, длину и тему копировать запрещено, нам ценна ТОЛЬКО структура рассуждения»
- Задайте первую фразу ответа. Раз зачин прокладывает колею всему ответу (боль №6) – проложите ее сами. Например:
«Начни ответ со слов: ‘Главная причина в том, что…’ – и дальше по существу, без вступлений»
Один заданный зачин через внимание к собственному ответу вытягивает тон и структуру всего текста. Это дешевле, чем расписывать желаемый стиль тремя абзацами.
- Пошаговая фиксация. Требование «распиши решение по шагам, потом дай итог» – не ритуал, а инструмент внимания. Каждый записанный промежуточный шаг ложится в контекст и становится опорой для следующего.
Модель опирается на зафиксированный факт, а не прыгает к вероятностной догадке. Для многоходовой логики – обязательная привычка. - Чистите запрос от мусора. Вводные обороты, справочная шелуха «на всякий случай», самоповторы – все это оттягивает бюджет у важного.
Большой сырой материал выгоднее один раз сжать в плотный слепок фактов и подавать уже слепок. Плотный запрос стабильно точнее раздутого – это прямая арифметика бюджета.
Примечание. Раз уж коснулись мусора – простенький, но ценный прием. Порой стоит посмотреть на диалог и ответить себе – а реально ли весь этот длинный хвост нужен? Если нет – проще всего отследить сообщение, после которого ИИ свернул не туда. Затем отредактировать его (иконка карандашика в большинстве интерфейсов) и снова запустить
Что это даст? ИИ начнет новую ветку и не будет больше учитывать старую, работая только с тем активным контекстом, который есть в диалоге. Дешево и сердито. - Долгоживущие правила – в системный слот. Сегодня, думаю, уже во всех ИИ есть отдельный раздел настроек, где можно установить системные правила. Фактически – это постоянная инструкция действий моделей. Там может быть что угодно: правила стилистики, как делать анализ, запрет на угодничество и тд. и т.п.
Постоянные, рамочные правила, которые вам нужны всегда, лучше размещать именно там.. Во-первых, модели специально дотренированы давать этому слоту повышенный приоритет: указание из системного слота весит больше обычного сообщения. Во-вторых, он не размывается историей диалога так, как ваше первое сообщение.
Разделение труда простое: в системный слот – то, что верно для всех задач (роль, тон, форматные привычки, запреты уровня «никогда»). В сообщение – то, что верно для текущей задачи
Одна оговорка: набивать системный слот слишком многим тоже не нужно. При обработке любого нового ответа ИИ заново учитывает все системные правила, а это … правильно, трата бюджета.
Это многие упускают
Местоимения дороже, чем кажутся. Каждое «он», «это», «там» заставляет модель тратить ресурс на разрешение неоднозначности – и иногда разрешать неверно.
В ключевых местах инструкции меняйте местоимения на конкретные существительные: не «убери это из него», а «убери раздел ‘История компании’ из письма».
Русский язык в токенах дороже английского. Современные токенизаторы к русскому стали заметно добрее, но перекос остался: тот же смысл на русском обычно занимает примерно в полтора-два раза больше токенов.
Русский контекст наполняется быстрее, и вся арифметика бюджета наступает раньше. А вот популярный вывод «дублируйте термины на английском, иначе внимание размазывается» – это уже гипотеза, твердых оснований у приема нет.
* По крайней мере, мы их в NeuroPanda у разработчиков разных ИИ в виде прямого “Да, это работает” не нашли.
Уверенный пересказ – это еще не исполнение. Модель может идеально процитировать ваше правило и тут же его нарушить. Проверяйте поведением, а не опросом.