Як працює тактика складання запитів
Через спосіб навчання моделей OpenAI існують певні формати запитів, які працюють особливо добре й дають корисніші результати моделі. Офіційний посібник OpenAI з тактики складання запитів зазвичай є найкращим місцем, щоб почати з порад щодо запитів.
Нижче ми наводимо кілька форматів запитів, які, на нашу думку, добре працюють, але ви можете експериментувати з різними форматами, які можуть краще підійти для вашого завдання.
Практичні правила та приклади
Примітка: «{text input here}» — це заповнювач для фактичного тексту/контексту
1. Використовуйте найновішу модель
Для найкращих результатів ми загалом рекомендуємо використовувати найновіші й найпотужніші моделі. З новішими моделями зазвичай легше застосовувати тактику складання запитів.
Примітка: під час складання запиту для моделі міркування та для моделі GPT слід враховувати деякі відмінності. Докладніше тут.
2. Розміщуйте інструкції на початку запиту й використовуйте ### або """, щоб відокремити інструкцію від контексту
Менш ефективно ❌:
Підсумуйте текст нижче у вигляді маркованого списку з найважливіших пунктів.
{text input here}Краще ✅:
Підсумуйте текст нижче у вигляді маркованого списку з найважливіших пунктів.
Текст: """
{text input here}
"""3. Будьте якомога конкретнішими, описовішими й детальнішими щодо бажаного контексту, результату, довжини, формату, стилю тощо
Будьте конкретними щодо контексту, результату, довжини, формату, стилю тощо
Менш ефективно ❌:
Напишіть вірш про OpenAI. Краще ✅:
Напишіть короткий натхненний вірш про OpenAI, зосередившись на нещодавньому запуску продукту DALL-E (DALL-E — це ML-модель для перетворення тексту на зображення) у стилі {famous poet}4. Формулюйте бажаний формат виводу через приклади
Менш ефективно ❌:
Витягніть сутності, згадані в тексті нижче. Витягніть такі 4 типи сутностей: назви компаній, імена людей, конкретні теми та загальні теми.
Текст: {text}Показуйте й пояснюйте — моделі краще реагують, коли їм показують конкретні вимоги до формату. Це також полегшує надійний програмний розбір кількох результатів.
Краще ✅:
Витягніть важливі сутності, згадані в тексті нижче. Спочатку витягніть усі назви компаній, потім усі імена людей, далі конкретні теми, що відповідають змісту, і нарешті загальні наскрізні теми
Бажаний формат:
Назви компаній: <список_назв_компаній_через_кому>
Імена людей: -||-
Конкретні теми: -||-
Загальні теми: -||-
Текст: {text}5. Почніть із підходу без прикладів, потім спробуйте з кількома прикладами, а якщо жоден не спрацював — виконайте тонке налаштування
✅ Без прикладів
Витягніть ключові слова з тексту нижче.
Текст: {text}
Ключові слова:✅ З кількома прикладами — надайте кілька прикладів
Витягніть ключові слова з відповідних текстів нижче.
Текст 1: Stripe надає API, які веброзробники можуть використовувати для інтеграції обробки платежів у свої вебсайти та мобільні застосунки.
Ключові слова 1: Stripe, обробка платежів, API, веброзробники, вебсайти, мобільні застосунки
##
Текст 2: OpenAI навчила передові мовні моделі, які дуже добре розуміють і генерують текст. Наш API надає доступ до цих моделей і може використовуватися для розв’язання майже будь-якого завдання, пов’язаного з обробкою мови.
Ключові слова 2: OpenAI, мовні моделі, обробка тексту, API.
##
Текст 3: {text}
Ключові слова 3:✅ Тонке налаштування: див. найкращі практики тонкого налаштування тут.
6. Уникайте «водянистих» і неточних описів
Менш ефективно ❌:
Опис цього продукту має бути досить коротким, лише кілька речень, і не набагато більше.Краще ✅:
Використайте абзац із 3–5 речень, щоб описати цей продукт.7. Замість просто казати, чого не робити, скажіть, що робити натомість
Менш ефективно ❌:
Нижче наведено розмову між агентом і клієнтом. НЕ ЗАПИТУЙТЕ ІМ’Я КОРИСТУВАЧА АБО ПАРОЛЬ. НЕ ПОВТОРЮЙТЕ.
Клієнт: Я не можу увійти до свого облікового запису.
Агент:Краще ✅:
Нижче наведено розмову між агентом і клієнтом. Агент спробує діагностувати проблему та запропонувати рішення, утримуючись від будь-яких запитань, пов’язаних із PII. Замість того щоб запитувати PII, наприклад ім’я користувача чи пароль, скеруйте користувача до довідкової статті www.samplewebsite.com/help/faq
Клієнт: Я не можу увійти до свого облікового запису.
Агент:8. Специфіка генерування коду: використовуйте «початкові слова», щоб спрямувати модель до певного шаблону
Менш ефективно ❌:
# Напишіть просту функцію python, яка
# 1. Запитує в мене число в милях
# 2. Перетворює милі на кілометриУ наведеному нижче прикладі коду додавання «import» підказує моделі, що слід почати писати мовою Python. (Аналогічно, «SELECT» — добра підказка для початку SQL-оператора.)
Краще ✅:
# Напишіть просту функцію python, яка
# 1. Запитує в мене число в милях
# 2. Перетворює милі на кілометри
import9. Використовуйте функцію «Створити що завгодно»
Розробники можуть використовувати функцію «Створити що завгодно», щоб описати завдання або очікуваний результат природною мовою й отримати адаптований запит.
Докладніше про використання функції «Створити що завгодно».
Параметри
Загалом ми вважаємо, що `model` і `temperature` — найчастіше використовувані параметри для зміни результату моделі.
`model` - Моделі з вищою продуктивністю зазвичай дорожчі й можуть мати більшу затримку.
`temperature` - Міра того, як часто модель виводить менш імовірний токен. Що вища
temperature, то випадковішим (і зазвичай креативнішим) є результат. Однак це не те саме, що «правдивість». Для більшості фактичних сценаріїв, як-от витягування даних і правдиві відповіді на запитання, найкраще значенняtemperature— 0.`max_completion_tokens` (максимальна довжина) - Не керує довжиною результату, а задає жорстку межу для генерування токенів. В ідеалі ви не часто досягатимете цієї межі, адже модель зупиниться або коли вважатиме, що завершила, або коли натрапить на визначену вами стоп-послідовність.
`stop` (стоп-послідовності) - Набір символів (токенів), які, коли будуть згенеровані, зупинять генерування тексту.
Описи інших параметрів див. у довіднику API.
