6.3

Смотреть на английском

6.3 Генеративный ИИ и приложения на основе LLM

Обзор и мотивация

Генеративный ИИ, и в особенности большие языковые модели (LLM), могут порождать связный текст, код, резюме и структурированные данные по инструкциям на естественном языке. Это делает их мощными строительными блоками для ассистентов, поиска, обработки документов и автоматизации. Но эти сильные стороны приходят с особым профилем рисков. LLM вероятностны. Они могут производить уверенную ложь (галлюцинации). Они чувствительны к тому, как вы их запрашиваете. И они открывают новые поверхности атаки, такие как внедрение через промпт (вредоносные инструкции, протаскиваемые во входы, чтобы захватить поведение модели). Поэтому построение надёжных приложений на LLM меньше о модели и больше об инженерии вокруг неё: как вы поставляете контекст, заземляете ответы в доверенных знаниях, ограничиваете выводы и оцениваете качество.

Для больших команд приложения на LLM требуют новых шаблонов, отличных и от традиционных программ, и от классического машинного обучения. Шага обучения нередко нет. Вместо этого поведение формируется промптами, извлечённым контекстом, определениями инструментов и ограничителями (проверками во время выполнения, сдерживающими входы и выходы модели). Это сдвигает инженерные усилия к управлению контекстом, качеству поиска, оркестрации и оценке. Корпорациям, принимающим LLM в масштабе, нужны общие шаблоны, чтобы каждой команде не приходилось открывать одни и те же режимы отказа трудным путём.

Государственные и регулируемые организации сталкиваются с дополнительными требованиями. LLM, выдумывающая ссылку на политику или допускающая утечку чувствительных данных, не просто ошибка; это может быть юридический инцидент или инцидент безопасности. В таких условиях нужны заземление в авторитетных источниках, строгая проверка выводов, человеческий надзор за значимыми выводами и ясные записи того, о чём систему спросили и что она произвела. Приёмы этой главы (генерация, дополненная поиском, ограничители и строгая оценка) то, что делает LLM достаточно безопасными для развёртывания в контекстах высоких ставок. Модели Claude от Anthropic один ведущий вариант среди нескольких способных провайдеров; описанные здесь практики применимы независимо от выбранной модели.

Ключевые принципы

  • Заземляйте модель в доверенных знаниях, а не полагайтесь на то, что она запомнила.
  • Воспринимайте промпты и контекст как спроектированные версионируемые артефакты, а не одноразовые строки.
  • Предполагайте, что модель может ошибаться или быть подвергнута манипуляции; проверяйте выводы и ограничивайте действия.
  • Давайте модели только нужные контекст и инструменты, не больше, чтобы снизить ошибки и поверхность атаки.
  • Оценивайте непрерывно офлайн-наборами тестов, онлайн-метриками и человеческим суждением.
  • Держите людей в контуре для значимых выводов.
  • Проектируйте, воспринимая модель как недоверенный компонент внутри доверенной системы.

Рекомендации

Проектируйте промпты и управляйте контекстом намеренно

Воспринимайте промпты как код: храните их под контролем версий, рецензируйте изменения и тестируйте на наборе примеров. Структурируйте каждый промпт ясно: роль и задача, ограничения, требования к формату и примеры там, где они помогают. Воспринимайте окно контекста (фиксированный отрезок текста, который модель может рассматривать сразу) как дефицитный ресурс. Включайте самую релевантную информацию, упорядочивайте её продуманно и убирайте шум, потому что нерелевантный или избыточный контекст ухудшает качество и повышает цену. Для многоходовых приложений управляйте состоянием разговора явно, резюмируя или обрезая историю, чтобы оставаться в пределах, сохраняя важное. Предпочитайте ясные инструкции и примеры few-shot (горсть разобранных демонстраций, включённых в промпт) изощрённым трюкам, ломающимся в миг смены модели.

Заземляйте ответы генерацией, дополненной поиском (RAG)

Для задач с большим объёмом знаний извлекайте релевантные документы из доверенного корпуса и подавайте их модели как контекст, велев ей отвечать только из этого материала и цитировать источники. RAG держит знания актуальными без переобучения, ограничивает ответы утверждённым содержимым и позволяет цитирование и проверку. Вкладывайтесь в качество поиска: разумно нарезайте документы на фрагменты, выбирайте эмбеддинги (числовые векторные представления, размещающие схожие смыслы близко), подходящие вашей области, и проверяйте, действительно ли извлечённые фрагменты содержат ответ, потому что связный ответ, построенный на неверном фрагменте, хуже отсутствия ответа. И когда ничего релевантного не найдено, пусть система так и скажет, а не выдумывает содержимое.

Стройте агентов и использование инструментов сдержанно

LLM могут вызывать инструменты (поиск, базы данных, калькуляторы, внутренние API) и могут компоноваться в агентов, планирующих и действующих в несколько шагов. Это добавляет реальную возможность, но и умножает риск: каждый инструмент ещё один способ, которым неверная или подвергнутая манипуляции модель может причинить вред. Определяйте инструменты точными схемами, проверяйте каждый аргумент, применяйте наименьшие привилегии и требуйте подтверждения или человеческого утверждения для значимых действий вроде отправки коммуникаций или перевода денег. Держите циклы агентов ограниченными, наблюдаемыми и прерываемыми. Начинайте с узко очерченных инструментов одного назначения, прежде чем тянуться к неограниченной автономии.

Добавляйте ограничители и проверяйте выводы

Оберните модель слоями защиты. На входе фильтруйте и обнаруживайте внедрение через промпт, особенно когда недоверенное содержимое (веб-страницы, документы пользователей) попадает в контекст. На выходе проверяйте структуру по схеме, сверяйте утверждения с источниками, фильтруйте небезопасное или несоответствующее содержимое и отвергайте или повторяйте при провале проверки. Для структурированных выводов разбирайте и проверяйте, а не доверяйте форматированию модели. Никогда не позволяйте сырому выводу модели запускать необратимые действия без проверки. Воспринимайте смягчение галлюцинаций как свойство системы, достигаемое заземлением, цитированием, проверкой и человеческой рецензией, а не то, чем модель управляет сама.

Оценивайте офлайн, онлайн и с людьми

Стройте набор оценки репрезентативных входов с заведомо хорошими или оценёнными по рубрике выводами и запускайте его на каждое изменение промпта или модели (офлайн-оценка). Измеряйте реальное поведение в эксплуатации метриками вроде успеха задачи, доли эскалаций и обратной связи пользователей (онлайн-оценка). Для субъективного качества используйте человеческих рецензентов и, осторожно, оценку на основе моделей. Оценка страховочная сеть, позволяющая менять промпты и модели уверенно. Без неё вы летите вслепую.

Компромиссы: плюсы и минусы

ВыборПлюсыМинусыЛучше всего, когда
Чистый промптингПросто, быстро, дёшево менятьОграниченное заземление, может галлюцинироватьШирокие задачи, низкие ставки
RAGАктуально, заземлено, цитируемоПоиск трудно сделать правильноЗадачи с большим объёмом знаний, фактические
Агенты с инструментамиМощно, могут действоватьБольше поверхность атаки, труднее контролироватьХорошо очерченная автоматизация с ограничителями
Большая, более сильная модельЛучше качество и рассуждениеВыше цена и задержкаСложные задачи или высокие ставки
Меньшая, более дешёвая модельБыстро и недорогоСлабее на трудных задачахБольшой объём, простые задачи

Основное напряжение это возможность против контроля и цены. Больше автономии и большие модели дают больше ценности, но требуют больше ограничителей, больше оценки и больше денег. Заземление через RAG повышает доверие ценой инженерии поиска. Правильный баланс зависит от ставок: приложения высоких ставок склоняются к заземлению, проверке и человеческому надзору, даже когда это стоит дороже.

Вопросы для обсуждения с командой

  1. Какую планку точности и заземления должна пройти функция на LLM, прежде чем предстанет перед обществом, и кто подписывает? Связный ответ, цитирующий неверный источник или выдумывающий политику, хуже отсутствия ответа, а в государстве сфабрикованная цитата юридический инцидент, а не ошибка. Для большой команды явная планка не даёт каждой группе устанавливать свой частный порог на глаз. Принесите ваше определение «достаточно заземлено»: должно ли каждое утверждение прослеживаться до извлечённого проверенного источника, должна ли система отказывать, когда поиск пуст, и что на самом деле покрывает ваш набор состязательной оценки. Сигнал, за которым стоит следить: может ли кто-либо сейчас выпустить изменение промпта прямо к пользователям без прогона регрессии. Если ставки юридические или касаются безопасности, ответ должен направлять самые рискованные выводы через человеческого рецензента с реальными полномочиями до выпуска.

  2. Какие из наших функций на LLM втайне агенты и получил ли каждый инструмент наименьшие привилегии и человеческий барьер на необратимые действия? Любая функция, позволяющая модели вызывать инструменты или действовать в несколько шагов, перешла в территорию агентов, и каждый инструмент ещё один способ, которым неверная или подвергнутая манипуляции модель причиняет вред. Для корпораций, подключающих LLM к внутренним API, этот вопрос выявляет риск, который скрывает ярлык «простой ассистент». Принесите опись каждого инструмента, который модель может вызвать, его проверку аргументов, область привилегий и какие действия (отправка коммуникаций, перевод денег, изменение записей) требуют подтверждения. Обсудите, ограничены ли циклы агентов, наблюдаемы и прерываемы. Ответ должен ужесточить области и добавить барьеры человеческого утверждения везде, где значимое или необратимое действие сейчас достижимо без него.

  3. Как мы узнаем за день, что качество нашего поиска упало, учитывая, что уверенный ответ, построенный на неверном фрагменте, выглядит нормально? RAG делает ответы заслуживающими доверия, только когда поиск действительно выводит фрагмент, содержащий ответ, а поиск тихо гниёт, когда документы меняются, фрагменты устаревают или эмбеддинги отходят от вашей области. Поскольку модель по-прежнему пишет связно поверх плохого контекста, пользователи могут не жаловаться, пока доверие уже не потеряно. Принесите ваши текущие меры задержки и полноты поиска, как вы проверяете, действительно ли извлечённые фрагменты содержат ответ, и как свежесть индекса поспевает за изменениями документов. Для развёртываний высоких ставок или публичных обсудите журналирование извлечённых источников для аудита, чтобы вы могли проследить плохой ответ до плохого фрагмента. Если у вас вообще нет оценки поиска, вы заземляетесь на вере.

  4. Воспринимаем ли мы промпты, контекст и наборы оценки как версионируемые рецензируемые артефакты или как строки, разбросанные по блокнотам и журналам чатов? Когда промпты расползаются по командам без версий и дублируются, исправление в одном месте никогда не доходит до других, и никто не может воспроизвести, о чём систему просили в прошлом квартале. Для большой команды общий реестр промптов и набор регрессии, запускаемый на каждое изменение, то, что позволяет сменить модель или отредактировать инструкцию, не сломав молча функцию двумя командами дальше. Конкурирующее тяготение скорость: инженеры итерируют быстрее всего, вставляя промпт и выпуская, поэтому договоритесь, где проходит линия между быстрыми экспериментами и всем, что касается пользователей. Принесите, где ваши промпты живут сегодня, управляет ли набор оценки изменениями и как вы версионируете корпус поиска рядом с промптом. В корпоративной и государственной среде добавьте требование аудита: вам может понадобиться показать, какой именно промпт и какие источники произвели данный вывод месяцами позже, а промпт, который вы не можете реконструировать, запись, которую вы не можете защитить.

  5. По мере роста объёма как мы будем контролировать стоимость вывода, не деградируя молча качество, и кто владеет решением о выборе модели? TCO функций на LLM доминирует цена вывода за вызов, а затраты, кажущиеся пустяковыми в пилоте, быстро накапливаются в масштабе эксплуатации, соблазняя команды тихо перейти на более слабую модель и надеяться, что никто не заметит скольжения качества. Для большой организации позволение каждой команде выбирать модели и пределы затрат на глаз порождает и неожиданные счета, и несогласованное качество. Подлинный компромисс возможность против цены и задержки: большая модель лучше рассуждает на трудных задачах, меньшая дешевле и быстрее на простых, а кэширование, маршрутизация и охват поиска двигают число. Принесите цену на решённую задачу, качество по уровню модели на вашем наборе оценки и где раздутие промпта или контекста завышает расход токенов. В корпоративном и государственном бюджетировании назовите, кто утверждает выбор модели и потолок расходов, потому что статья затрат, которой никто не владеет, та, которую никто не контролирует, когда трафик утраивается.

  6. Какие чувствительные данные могут достичь модели, куда эти данные уходят и можем ли мы доказать, что они остались в границах? Каждый промпт, извлечённый документ и результат инструмента может нести персональные или конфиденциальные данные в модель и, у размещённого провайдера, за ваш периметр, а утечка здесь юридический инцидент или инцидент безопасности, а не заявка на ошибку. Для большой команды, подключающей LLM к внутренним системам, риск прячется в сантехнике: корпус поиска, включающий записи, которые данный пользователь никогда не должен видеть, или журналы, захватывающие сырые входы. Напряжение это возможность против экспозиции, поскольку редактирование и тугое ограничение охвата могут притупить функцию, которую вы пытаетесь построить. Принесите карту потоков данных того, что попадает в контекст, условия хранения и обучения провайдера и как вы редактируете, ограничиваете и журналируете чувствительные поля. В регулируемой и публичной среде свяжите это с правилами местонахождения данных, обязанностями по хранению записей и договорными ограничениями на то, как поставщик может использовать ваши данные, потому что надзор, который вы не можете засвидетельствовать, надзор, которого у вас нет.

Взгляд по секторам

Стартап. Выпустите одну узкую функцию на LLM, касающуюся вашей основной ценности, построенную на размещённой модели с поиском по вашему собственному содержимому, и держите промпты в git за тонким интерфейсом, чтобы можно было менять провайдеров. Запускайте небольшой файл оценки с реальными вопросами перед каждым изменением, фильтруйте вставленный пользователем текст, чтобы притупить внедрение через промпт, и жёстко ограничьте месячные расходы. Сопротивляйтесь агентам и самостоятельному размещению: неограниченный цикл вызова инструментов, который вы не можете контролировать, обязательство, а не демонстрация.

Малый бизнес. У вас, вероятно, нет специалиста по ML, поэтому покупайте функции на LLM, встроенные в уже используемые инструменты, а не комплектуйте построение. Формулируйте риск простым вопросом: где уверенный неверный ответ стоил бы вам клиента и кто проверяет вывод до отправки. Предпочитайте поставщиков, показывающих свои источники, позволяющих держать человека в контуре и делающих ИИ легко отключаемым, когда он ведёт себя плохо.

Крупная организация. Проблема масштаб по многим командам: публикуйте общие шаблоны для RAG, ограничителей и схем инструментов плюс общий стенд оценки и реестр промптов, чтобы каждая группа перестала заново открывать одни и те же режимы отказа. Бюджетируйте цену вывода и человеческой рецензии явно, стандартизируйте слой интерфейса, чтобы модели оставались заменяемыми, и управляйте агентами централизованно с наименьшими привилегиями, ограниченными циклами и журналированием аудита. Управляйте функциями на LLM как портфелем с метриками и критериями убийства, а не россыпью пилотов.

Государственный сектор. Прозрачность, правила закупок и подотчётность определяют каждый выбор. Заземляйте строго в утверждённых источниках с цитатами, отказывайте, когда поиск пуст, и запрещайте модели утверждать закон, который она не может процитировать. Держите подотчётное должностное лицо, рецензирующее значимые выводы, журналируйте входы и извлечённые источники для аудита, запускайте набор состязательной оценки перед каждым выпуском и требуйте в контракте раскрытия ограничений модели и условий обращения с данными.

Примеры

Стартап. Стартап по инструментам для разработчиков из трёх человек добавил чат-помощника по своей документации, чтобы пользователи перестали писать по электронной почте с базовыми вопросами. Он использовал RAG, чтобы каждый ответ цитировал конкретную страницу документации, велел модели говорить «я не уверена, вот к кому обратиться», когда поиск пуст, и держал промпты в git. Перед каждым изменением он прогонял промпты по небольшому файлу реальных вопросов пользователей для ловли регрессий и фильтровал вставленный пользователем текст, чтобы притупить внедрение через промпт. Помощник справлялся с частыми вопросами и тихо передавал остальные в общий ящик основателей.

Крупная организация. Программная компания построила внутреннего ассистента поддержки по документации продукта. Она использовала RAG, чтобы ответы цитировали конкретные страницы документации, велела модели говорить «я не знаю», когда поиск не удался, и проверяла, что каждый цитируемый источник действительно существует. Промпты были под контролем версий и тестировались на наборе реальных вопросов поддержки при каждом изменении. Ассистент разгружал рутинные заявки и эскалировал всё с низкой уверенностью человеческим агентам, а онлайн-метрики отслеживали доли решений и исправлений.

Государственный сектор. Государственное ведомство развернуло ассистента на LLM, помогающего сотрудникам составлять ответы на запросы граждан. Заземление было строгим: модель могла составлять ответы только из утверждённых руководств с цитатами, и ей запрещалось утверждать политику, отсутствовавшую в извлечённых источниках. Подотчётное должностное лицо рецензировало каждый черновик перед отправкой. Фильтрация входов защищала от внедрения через промпт из документов, поданных гражданами, выводы журналировались для аудита, а набор оценки из состязательных и крайних запросов запускался перед каждым выпуском, чтобы подтвердить, что система отказывается домысливать по вопросам закона.

Бизнес-обоснование: мотивы, ROI и TCO

Приложения на LLM дают ROI автоматизацией работы, насыщенной языком: ответами на вопросы, резюмированием документов, составлением содержимого и извлечением структуры из неструктурированного текста. Ценность проявляется как разгруженные заявки, более быстрое составление, меньше ручной рецензии и новые возможности самообслуживания. Поскольку шага обучения нередко нет, время до первой ценности коротко, что главная привлекательность.

TCO же доминируют постоянные цена вывода, инфраструктура поиска, конвейеры оценки, системы ограничителей и человеческая рецензия. Цена за вызов быстро растёт в масштабе, а немониторимое приложение может дрейфовать в небезопасное или дорогое поведение. Цена непринятия отставание в качестве услуг и производительности персонала. Цена небрежного принятия публичный инцидент с галлюцинацией или утечка данных. Обосновывайте перед руководством, сочетая конкретную цель по производительности с конкретным планом безопасности и оценки и закладывая бюджет на ограничители и человеческий надзор, делающие ценность долговечной.

Антипаттерны и ловушки

  • Доверие связному выводу. Принятие уверенного, хорошо написанного текста за верный текст.
  • RAG без оценки поиска. Допущение, что поиск работает, и никакой проверки, выводит ли он нужные фрагменты.
  • Слепота к внедрению через промпт. Подача недоверенного содержимого в промпты без защит.
  • Неограниченные агенты. Позволение агентам совершать значимые действия без пределов или человеческого утверждения.
  • Нет стенда оценки. Изменение промптов и моделей на глаз без регрессионного тестирования.
  • Расползание промптов. Промпты, разбросанные, без версий и дублированные по командам.
  • Сверхавтоматизация. Удаление людей из решений, несущих юридический вес или вес безопасности.

Модель зрелости

  1. Начальный. Стихийный промптинг в изолированных проектах; нет заземления, ограничителей или оценки; промпты живут там, куда их кто-то вставил, а галлюцинации обнаруживаются в эксплуатации.
  2. Развитие. Некоторые команды добавляют RAG и версионирование промптов, базовую проверку выводов и небольшой ручной набор оценки, но практики различаются по командам и опираются на отдельных чемпионов, а не на общее ожидание.
  3. Стандартизация. Документированные шаблоны для RAG, ограничителей, схем инструментов и версионирования промптов принуждаются по организации; автоматическая офлайн-оценка работает на каждое изменение промпта или модели; потоки высоких ставок несут онлайн-метрики и человеческую рецензию.
  4. Управление. Портфель измеряется относительно базовых значений: полнота поиска, доли галлюцинаций и отказов, покрытие защиты от внедрения, цена и задержка за вызов и доли эскалаций и исправлений отслеживаются на панелях; барьеры выпуска и критерии убийства срабатывают по свидетельствам, а не мнению, а прогон регрессии блокирует любое изменение, двигающее метрику в неверную сторону.
  5. Оркестрация. Непрерывная офлайн- и онлайн-оценка привязана к бизнес-результатам; защиты от внедрения, агенты и заземление управляемы и наблюдаемы; организация регулярно выводит, перенастраивает и пересматривает функции на LLM и меняет модели по мере сдвигов качества, цены и риска.

Идеи для обсуждения

  • Как решить, какие выводы требуют человеческой рецензии перед использованием?
  • Каков ваш стандарт «достаточно заземлено», прежде чем ответ можно показать пользователям?
  • Как защищаться от внедрения через промпт, когда недоверенное содержимое должно попасть в контекст?
  • Когда агент стоит добавленного риска против более простого проекта с одним вызовом?
  • Как оценивать субъективное качество в масштабе, не слишком полагаясь на оценку на основе моделей?
  • Как держать промпты сопровождаемыми и согласованными по многим командам?

Главные выводы

  • Надёжность приходит от инженерии вокруг модели: контекста, заземления, ограничителей и оценки.
  • RAG заземляет ответы в доверенных источниках и позволяет цитирование и проверку.
  • Воспринимайте модель как недоверенный компонент; проверяйте выводы и ограничивайте использование инструментов.
  • Давайте агентам наименьшие привилегии, ограниченные циклы и человеческое утверждение для значимых действий.
  • Оценивайте непрерывно офлайн, онлайн и с людьми; именно это делает изменения безопасными.

Источники и дополнительное чтение

  • Patrick Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks.
  • Jason Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.
  • OWASP Foundation, OWASP Top 10 for Large Language Model Applications.
  • Chip Huyen, AI Engineering: Building Applications with Foundation Models.
  • Anthropic, Building Effective Agents (engineering guidance).
  • Louis-François Bouchard and Louie Peters, Building LLMs for Production.