Misha Ford – Мастерство промт-инжиниринга. Продвинутый уровень (страница 2)
Запишите себе наблюдения: как меняется креативность, чёткость структуры, повторяемость одних и тех же фраз. Это упражнение, сделанное один раз сознательно, намного полезнее десятка абстрактных объяснений про температуру. После него вы уже не будете бездумно оставлять параметр “как есть”, а начнёте подбирать его под задачу.
Второе практическое задание касается контекстного окна. Вам нужно на собственном опыте увидеть, как ограничение контекста ломает задачу, и попробовать обойти это ограничение.
Возьмите большой текст. Это может быть длинная статья, глава из книги, инструкция к продукту – что угодно, что занимает хотя бы несколько тысяч слов. Попросите модель:
“Проанализируйте этот текст и сделайте подробное структурированное резюме, выделив главные разделы, тезисы и выводы. Отвечайте на русском языке, в формате иерархического списка.”
Сначала попробуйте просто целиком вставить текст (если длина позволяет). Затем добавляйте ещё материалы – ещё одну статью, ещё одну главу. В какой‑то момент вы столкнётесь с тем, что модель либо начнёт игнорировать начало, либо ответы станут поверхностнее: она будет “слипать” содержимое, вместо реального анализа.
После этого сделайте то, что делает промт‑инженер: разбейте текст на части. Сформулируйте стратегию “chunking” – деления на блоки. Например, вы можете:
Сначала разделить текст на логические куски и для каждого куска попросить модель сделать локальное резюме. Потом попросить модель взять все эти резюме и, на их основе, сделать итоговое обобщение всего материала.
Таким образом вы превращаете одну задачу, которая не помещается в контекстное окно, в цепочку промтов, каждый из которых укладывается в лимит. По сути, вы ручным образом строите многошаговую схему мышления.
Здесь важно, чтобы вы не ограничивались мыслью “ну да, можно дробить”. Вам нужно реально проделать это руками и увидеть разницу: что даёт прямое скармливание большого текста, а что – подход с разбиением и последующей агрегацией. Тогда контекстное окно перестаёт быть абстрактным ограничением и становится конкретным фактором, который вы учитываете при проектировании любых сложных задач.
Освоив эти два упражнения, вы сделаете первый шаг от “пользователя, который пишет запросы” к специалисту, который строит взаимодействие с моделью осознанно. В следующих главах мы будем накладывать более сложные техники на этот фундамент, но без понимания того, как модель генерирует текст, какие у неё пределы памяти и как управлять её креативностью, двигаться дальше бессмысленно.
ГЛАВА 2. СТРУКТУРА СИЛЬНОГО ПРОМТА
На предыдущем уровне вы увидели, как модель думает в токенах, как на неё влияют температура и контекстное окно. Теперь нам нужно перейти от “понимать модель” к “управлять моделью”. И здесь всё начинается со структуры промта.
Почти все слабые промты выглядят одинаково: короткая, размытая просьба без роли, без цели, без ограничений и без примеров. Пример: «Напиши текст для сайта о юридических услугах». Такие запросы живут в иллюзии: “модель же умная, она должна сама догадаться, что мне нужно”. На практике вы получаете в ответ шаблонный, безликий текст, похожий на тысячу других.
Сильный промт – это маленький технический документ. В нём есть роль, чёткая инструкция, контекст, ограничения и примеры. Как только вы начинаете писать промты в этом формате, качество ответов прыгает на другую высоту, и это не магия, а просто грамотное описание задачи.
Прежде всего вам нужно научиться задавать роли и персону модели. У модели нет “истинного” характера: то, как она с вами общается, определяется тем, какую роль вы ей задали, и насколько последовательно вы её удерживаете. Вы можете обращаться к модели как к юристу, как к маркетологу, как к редактору, как к преподавателю. Вы можете задавать стиль – строгий, ироничный, разговорный, академический.
Роль – это не украшение текста промта, а управляющий параметр. Если вы пишете: “вы – опытный маркетолог, который специализируется на B2B‑юридических услугах и хорошо понимает, как принимают решения директора по правовым вопросам”, вы сразу резко сужаете пространство возможных ответов. Модель перестаёт писать “для всех” и начинает писать для узкой, понятной аудитории.
Персона – это расширение роли. Это уже не просто “маркетолог”, а конкретный тип эксперта: его тон, отношение к риску, стиль речи, даже возраст и культурный контекст. Она задаётся описанием: “вы – практикующий юрист с 15‑летним опытом работы с корпоративными клиентами, который пишет простым, понятным языком для занятых предпринимателей и не терпит канцелярита”. Такая персона позволяет модели ориентироваться в том, какой язык выбирать и какие примеры приводить.
Следующий слой – различие между инструкцией, контекстом и примерами. Большинство промтов всё это смешивают в кашу. Ваша задача как промт‑инженера – разделять эти компоненты в голове, а иногда и явно в тексте.
Инструкция – это то, что вы хотите получить: действие и формат. “Составьте текст”, “проанализируйте”, “сравните”, “создайте структуру”. Это команда.
Контекст – это фон, на котором инструкция должна выполняться: кто вы, для кого это делается, в какой ситуации окажется результат, какие условия рынка или продукта существуют. Без контекста модель вынуждена опираться на среднестатистическую картину мира, и вы получаете усреднённый, ничем не выделяющийся результат.
Примеры – это демонстрация того, что вы считаете удачным. Модель невероятно чувствительна к примерам. Один‑два фрагмента правильного стиля, правильного уровня глубины и нужного формата зачастую влияют на качество ответа больше, чем абстрактное “сделайте профессионально и интересно”.
Наконец, в сильном промте всегда присутствуют явные ограничения и критерии качества. Это то, что отделяет “примерно то, что я хотел” от “ровно то, что нужно”.
Ограничения – это рамки: объём текста, запрещённые и желательные слова, стиль, структура, формат вывода, степень детализации. Например: “не используйте штампы вроде ‘команда профессионалов’, ‘индивидуальный подход’”, “длина текста – до 1200 знаков”, “пишите без канцелярита, короткими предложениями”, “не упоминайте физлиц, только бизнес‑клиентов”.
Критерии качества – это то, по чему можно проверить, удался ли результат. “Текст должен чётко говорить, для кого эта услуга, какую главную проблему она решает, и чем наша компания отличается от конкурентов”, “после прочтения клиент должен понять, что мы специализируемся именно на спорах с госорганами, а не на бытовых вопросах”. Если эти критерии вы формулируете в промте, модель может попытаться на них опираться. Более того, вы можете просить её в конце ответа самооценить, насколько результат соответствует заданным критериям.
Всё это можно собрать в простой, но мощный фреймворк RICCE: Role, Instruction, Context, Constraints, Examples – Роль, Инструкция, Контекст, Ограничения, Примеры.
Роль задаёт, “кто сейчас говорит”.
Инструкция определяет, “что нужно сделать”.
Контекст объясняет, “в какой ситуации это делается”.
Ограничения устанавливают, “что нельзя и что обязательно”.
Примеры показывают, “как выглядит хороший результат”.
Сначала вы будете держать RICCE в голове, постепенно вы начнёте автоматически писать промты так, чтобы все эти элементы присутствовали – иногда в явном виде, иногда встроенными в текст.
Отдельного разговора заслуживает формат ответа.
Для промт‑инженера формат – это не косметика, а инструмент интеграции. Чем более сложные и автоматизируемые задачи вы решаете, тем важнее становиться управлять формой вывода.
Иногда вам нужен простой текст, разбитый на разделы. Иногда – маркированные или нумерованные списки, чтобы вы могли легко ориентироваться и править. Иногда – таблицы в Markdown, чтобы из ответа было удобно собирать отчёты или переносить данные. В более технических задачах вам нужен строго структурированный формат: JSON, YAML или другой формат, который будет дальше автоматически обрабатываться скриптом, сервисом, таблицей.
Когда вы просите: “просто опишите…”, модель делает, что хочет. Когда вы говорите: “ответьте в формате: список из пунктов, каждый пункт содержит заголовок, краткое описание и конкретный пример”, вы существенно ограничиваете спектр возможного хаоса. Когда вы требуете: “верните только JSON по следующей схеме, без пояснений и дополнительного текста”, вы превращаете модель в генератор структурированных данных.
Теперь давайте посмотрим, как слабый промт превращается в сильный с помощью RICCE. Представьте исходный запрос: “Напиши текст для сайта о юридических услугах”.
В такой формулировке нет роли: кто пишет и для кого. Нет инструкции по целям: что должен сделать этот текст – просто рассказать, развлечь, продать? Нет контекста: какие юридические услуги, для кого, какая ниша, какие особенности рынка или компании. Нет ограничений: длина, стиль, запрещённые штампы. Нет примеров того, что вам нравится.
Возьмём этот промт и перепишем по RICCE.
Роль: вы задаёте модели роль маркетолога, специализирующегося на B2B‑юридических услугах. Не “просто копирайтер”, а человек, который понимает, как думают директора, предприниматели, руководители юротделов.
Инструкция: нужно не просто “написать текст”, а, например, “написать текст главного блока для сайта юридической компании, который должен мотивировать B2B‑клиента оставить заявку на консультацию”.