Як працює тактика складання запитів
Через спосіб навчання моделей 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. Використовуйте функцію «Створити що завгодно»
Розробники можуть використовувати функцію «Створити що завгодно», щоб описати завдання або очікуваний результат природною мовою й отримати адаптований запит.
Докладніше про використання функції «Створити що завгодно».
Параметри
Зазвичай для зміни результату моделі найчастіше використовують параметри модель і температура.
модель — Продуктивніші моделі зазвичай коштують дорожче й можуть мати більшу затримку.
температура — Показник того, наскільки часто модель генерує менш імовірний токен. Що вища температура, то випадковішим (і зазвичай креативнішим) буде результат. Однак це не тотожне «правдивості». Для більшості завдань, що потребують точності фактів, як-от вилучення даних і надання правдивих відповідей на запитання, найкраще встановити температуру на 0.
max_completion_tokens (максимальна довжина) — Не керує довжиною результату, а встановлює жорстке обмеження на генерування токенів. В ідеалі модель рідко досягатиме цього обмеження, оскільки зупиниться, коли вважатиме відповідь завершеною або натрапить на визначену вами стоп-послідовність.
stop (стоп-послідовності) — Набір символів (токенів), генерування яких зупиняє створення тексту.
Описи інших параметрів наведено в довіднику API.
