OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Найкращі практики тактики складання запитів з API OpenAI

Як давати чіткі й ефективні інструкції моделям OpenAI

Оновлено: yesterday

Як працює тактика складання запитів

Через спосіб навчання моделей 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. Перетворює милі на кілометри

import

9. Використовуйте функцію «Створити що завгодно»

Розробники можуть використовувати функцію «Створити що завгодно», щоб описати завдання або очікуваний результат природною мовою й отримати адаптований запит.


Докладніше про використання функції «Створити що завгодно».

Параметри

Загалом ми вважаємо, що `model` і `temperature` — найчастіше використовувані параметри для зміни результату моделі.

  1. `model` - Моделі з вищою продуктивністю зазвичай дорожчі й можуть мати більшу затримку.

  2. `temperature` - Міра того, як часто модель виводить менш імовірний токен. Що вища temperature, то випадковішим (і зазвичай креативнішим) є результат. Однак це не те саме, що «правдивість». Для більшості фактичних сценаріїв, як-от витягування даних і правдиві відповіді на запитання, найкраще значення temperature — 0.

  3. `max_completion_tokens` (максимальна довжина) - Не керує довжиною результату, а задає жорстку межу для генерування токенів. В ідеалі ви не часто досягатимете цієї межі, адже модель зупиниться або коли вважатиме, що завершила, або коли натрапить на визначену вами стоп-послідовність.

  4. `stop` (стоп-послідовності) - Набір символів (токенів), які, коли будуть згенеровані, зупинять генерування тексту.

Описи інших параметрів див. у довіднику API.

Чи була ця стаття корисною?