В мире генеративного искусственного интеллекта (GenAI) ничто не стоит на месте. Системные подсказки (system prompts), которые вы написали для GPT-4 или Llama-3 8B, дают один ответ сегодня, но завтра эти большие языковые модели (LLM) могут сказать вам что-то другое. Это опасность состояния, известного как «привязка к подсказке» (prompt lock-in), рассказал порталу Datanami Луис Сезе, профессор информатики и генеральный директор OctoAI, облачной ИИ-платформы, которая позволяет заказчику запускать различные LLM.
Системные подсказки задают условия и контекст для ответа, который пользователь ожидает получить от LLM. В сочетании с другими методами, такими как тонкая настройка и генерация с расширенным поиском (RAG), системные подсказки являются важнейшим инструментом для получения максимальной отдачи от LLM.
Однако системные подсказки работают не так, как обычные компьютерные программы. «В обычной программе вы пишете шаги, выполняете их, и есть довольно высокая уверенность в том, что вы знаете, что эти шаги делают, — говорит Сезе. — Вы можете их протестировать и подтвердить. Разработка ПО таким образом имеет долгую историю».
По его словам, подсказка — это способ заставить LLM найти в этом суперсложном, высокоразмерном латентном пространстве то, о чем вы запрашиваете, и что вы хотите, чтобы модель сделала, чтобы продолжить завершение начатого предложения.
Это действительно удивительно, что мы можем получить так много от LLM с помощью такой техники, добавляет Сезе. Ее можно использовать для резюмирования текста, для того, чтобы LLM генерировала новый следующий текст на основе входных данных, или даже для демонстрации некоторой формы аргументации при создании подходов к задачам.
Но тут есть одна загвоздка. «Все это сильно зависит от самой модели, — говорит Сезе. — Если вы напишете набор подсказок, которые действительно хорошо работают для определенной модели, а потом замените эту модель на другую, потому что, как мы уже говорили, каждую вторую неделю появляется новая модель, может оказаться, что эти подсказки уже не будут работать так же хорошо. Тогда вам придется их корректировать».
Если не корректировать эти подсказки при смене модели, вы можете стать жертвой привязки к подсказкам. Когда модель меняется, подсказки продолжают работать по-прежнему, давая потенциально худшие результаты, даже если с вашей стороны ничего не изменилось. Это большой отход от прежних шаблонов разработки ПО, к которому должны приспособиться современные разработчики приложений и систем ИИ.
«Это определенно большое изменение в том, как мы создаем ПО. Раньше мы делали это, используя модули, которые можно было легко компоновать. Благодаря ожиданию композитности, комбинируя модуль A и модуль B, вы имеете некоторое представление о том, что будет делать модель, что будут делать объединенные модули с точки зрения поведения ПО, — говорит Сезе. — Но в соответствии с тем, как работают
По его словам, даже если обновление LLM предоставляет больше параметров, большее окно подсказки и в целом лучшие возможности, GenAI-приложение может в итоге стать работать хуже, чем раньше, если не обновить системную подсказку. «Это новая проблема, с которой нужно справиться, — говорит он. — Модель может стать лучше, но результаты могут оказаться хуже, потому что вы не настроили системные подсказки, которые говорят моделям, что они должны делать на уровне базового поведения».
Современная тенденция в области GenAI заключается в том, что разработчики используют множество LLM для решения различных задач, этакий «модельный коктейль», в отличие от использования одной LLM для всего, что привело бы к проблемам со стоимостью и производительностью. Это позволяет разработчикам воспользоваться преимуществами моделей, которые очень хорошо справляются с определенными задачами, например с широким пониманием языка в GPT-4, и при этом использовать меньшие LLM, которые могут быть менее дорогими, но при этом обеспечивать хорошую производительность при решении других задач.
По мере увеличения количества LLM в GenAI-приложении растет и количество системных подсказок, которые разработчик должен поддерживать в актуальном состоянии, что увеличивает затраты. Эти соображения ИИ-разработчики должны иметь в виду, когда они собирают вместе различные компоненты для создания ПО.
«Вы оптимизируете производительность и точность, оптимизируете скорость, а затем и стоимость, — говорит Сезе. — Эти три базовые вещи. И, конечно, сложность системы, потому что чем она сложнее, тем труднее ее поддерживать».