Шаблони використання LLM - Перевернута взаємодія
Це третя стаття стаття із серії яка описує шаблони будування запитів до LLM систем. Інші статті в серії
Перевернута взаємодія
Намір і контекст
Ви хочете, щоб LLM ставив запитання, щоб отримати інформацію, необхідну для виконання деяких завдань. Таким чином, замість того, щоб користувач керував розмовою, ви хочете, щоб LLM керував розмовою, щоб зосередити її на досягненні конкретної мети. Наприклад, ви можете захотіти, щоб LLM провів для вас короткий тест або автоматично ставив запитання, поки не отримає достатньо інформації для створення сценарію розгортання вашої програми в певному хмарному середовищі.
Мотивація
Замість того, щоб користувач керував бесідою, LLM часто має знання, які може використовувати для більш точного отримання інформації від користувача. Мета шаблону Flipped Interaction полягає в тому, щоб перевернути потік взаємодії, щоб LLM ставив користувачеві запитання для досягнення бажаної мети. LLM часто може краще вибрати формат, кількість і зміст взаємодій, щоб забезпечити досягнення мети швидше, точніше та/або використовуючи знання, якими користувач може (спочатку) не володіти.
Структура та ключові ідеї
Основні твердження для контексту:
Я хотів би, щоб ти ставила мені запитання, щоб досягти X
Ти повинна задавати запитання, поки ця умова не буде виконана або досягнеш цієї мети (або нескінченно)
(Необов’язково) став мені питання по одному, по два за раз тощо
Підказка для перевернутої взаємодії завжди має визначати мету взаємодії. Перша ідея (тобто, ви хочете, щоб LLM ставила запитання для досягнення мети) повідомити про цю мету LLM. Не менш важливим є те, що запитання мають бути зосереджені на конкретній темі чи результаті. Надаючи мету, LLM зможе зрозуміти, чого віна намагається досягти за допомогою взаємодії, і відповідним чином адаптувати свої запитання. Ця «інверсія контролю» забезпечує більш цілеспрямовану та ефективну взаємодію, оскільки LLM задаватиме лише ті питання, які віна вважає доречними для досягнення визначеної мети.
Друга ідея предоставити контекст того, як довго має тривати взаємодія. Перевернуту взаємодію можна завершити відповіддю на кшталт «перестань задавати запитання». Однак часто краще охопити взаємодію розумною довжиною або лише настільки, наскільки це необхідно для досягнення мети. Ця мета може бути доволі відкритою, і LLM продовжуватиме працювати над досягненням мети, ставлячи запитання, як у випадку з прикладом «поки ви не отримаєте достатньо інформації для створення скріпта Python».
За замовчуванням LLM, ймовірно, генеруватиме кілька запитань за одну ітерацію. Третя ідея абсолютно необов’язкова, але може покращити зручність користання шляхом обмеження (або розширення) кількості запитань, які LLM генерує за цикл. Якщо точну кількість/формат опитування не вказано, опитування буде напіввипадковим і може призвести до запитань по одному або по десять запитань. Таким чином підказка може бути налаштована таким чином, щоб включати кількість запитань, які задаються одночасно, порядок запитань і будь-які інші аспекти форматування/впорядкування для полегшення взаємодії з користувачем.
Приклад реалізації
Нижче наведено запиту для зразка взаємодії:
“Відтепер я хотів би, щоб ти задавала мені запитання, щодо розгортання програму Python на AWS. Коли у тебе буде достатньо інформації для розгортання програми, створи сценарій Python для автоматизації розгортання.”
Загалом, чим точніше запит у обмеженнях та інформації, яку потрібно зібрати, тим кращий результат. Наприклад, наведений вище приклад підказки може надати меню можливих служб AWS (таких як Lambda, EC2 тощо), за допомогою яких можна розгорнути програму. В інших випадках LLM може бути дозволено просто зробити відповідний вибір самостійно щодо речей, щодо яких користувач явно не приймає рішень. Одним із обмежень цього запиту полягає в тому, що після надання іншої контекстної інформації щодо завдання воно може знадобитися експериментувати з точним формулюванням, щоб змусити LLM ставити запитання у відповідній кількості та послідовності, щоб найкраще відповідати завданню, наприклад, задавати декілька запитань одночасно, а не одне запитання за раз.
Наслідки
Однією річчю про яку потрібно ретельно розмірковувати під час розробки запита є те, скільки інформації потрібно вказувати LLM щодо того, яку інформацію збирати для отримання результату. У наведеному вище прикладі перевернута взаємодія є відкритою та може суттєво відрізнятися в кінцевому згенерованому артефакті. Ця відкритість робить підказку загальною та багаторазовою, але потенційно може викликати додаткові запитання, які можна пропустити, якщо надавати більше контексту.
Якщо конкретні вимоги відомі заздалегідь, краще ввести їх у підказку, а не сподіватися, що LLM отримає необхідну інформацію. Інакше LLM вирішуватиме недетермінованим шляхом чи запитувати у користувача інформацію чи робити обґрунтоване припущення щодо відповідного значення.
Наприклад, користувач може сказати, що він хотів би розгорнути програму в Amazon AWS EC2, а не просто вказати «хмара» і потім мати кількох взаємодій, щоб звузити ціль розгортання. Чим точніша початкова інформація, тим краще LLM може використовувати обмежені запитання, на які користувач, ймовірно, готовий відповісти, щоб отримати інформацію для покращення своїх результатів.
Розробляючи запити для перевернутої взаємодії, важливо враховувати рівень знань користувача, його залучення та контролю. Якщо мета полягає в тому, щоб досягти мети з якомога меншою кількістю взаємодії з користувачем (мінімальний контроль), це має бути вказано явно. І навпаки, якщо мета полягає в тому, щоб переконатися, що користувач знає про всі ключові рішення та підтверджує їх (максимальне залучення), це також має бути вказано явно. Подібним чином, якщо очікується, що користувач матиме мінімальні знання та має поставити запитання, націлені на його рівень знань, цю інформацію слід включити до підказки.