← 返回列表

AI серія інтерв'ю 12: Як оптимізувати Prompt?

Оптимізація Prompt (Prompt Engineering / Optimization) — це ключова навичка, щоб змусити велику мовну модель "слухатися", особливо в системах RAG, де вона безпосередньо визначає, чи буде модель добросовісно використовувати отримані дані, уникати галюцинацій і дотримуватися формату виведення.


1. Основні принципи оптимізації Prompt

  1. Чіткість > Складність: прості прямі інструкції часто ефективніші за вигадливі ланцюжки міркувань.
  2. Достатньо обмежень: чітко вказуйте моделі "що можна робити, а що не можна".
  3. Надавайте приклади: Few-shot стабільніший за Zero-shot.
  4. Можливість перевірки: змусьте модель виводити посилання або ймовірності для подальшої оцінки.
  5. Ітеративна оптимізація: починайте з базового рівня, змінюйте лише одну змінну за раз і порівнюйте результати.

2. Конкретні техніки оптимізації (від простого до складного)

1. Задання ролі (System Prompt)

Ви професійний помічник служби підтримки. Ви можете відповідати лише на основі наведеного нижче 【Довідкового матеріалу】.
Якщо ви не знаєте відповіді, просто скажіть "У матеріалах немає відповідної інформації", не вигадуйте самі.
  • Дія: встановлює межі та тон.
  • Точки оптимізації: тон (професійний/дружній), сила обмежень (строгі/м'які).

2. Чітка інструкція

❌ Погано: "Відповідайте на запитання користувача."
✅ Добре: "Лише на основі наведеного нижче 【Довідкового матеріалу】. Якщо довідковий матеріал не містить відповіді, дайте відповідь 'Я не можу відповісти на це запитання'."

3. Контроль формату виведення

Будь ласка, виведіть у наступному форматі JSON:
{
  "answer": "Ваша відповідь",
  "confidence": "висока/середня/низька",
  "sources": [1, 3]
}
  • Призначення: полегшує подальший розбір, посилання та налагодження.

4. Few-shot приклади (дуже ефективно)

Приклад 1:
Питання: Скільки днів відпустки?
Довідковий матеріал: Правила відпусток: 1 рік — 5 днів, 10 років — 10 днів.
Відповідь: 1 рік — 5 днів, 10 років — 10 днів.

Приклад 2:
Питання: Як розраховується понаднормова робота?
Довідковий матеріал: У робочий день — 1.5, у вихідний — 2.
Відповідь: У робочий день — 1.5, у вихідний — 2.

Тепер дайте відповідь:
Питання: {питання користувача}
Довідковий матеріал: {вміст пошуку}
Відповідь:
  • Порада: приклади повинні охоплювати різні рівні складності, краще включити приклад "не можна відповісти".

5. Примусові посилання

Наприкінці відповіді позначайте номер джерела у форматі [citation:X]. Наприклад: "Відпустка становить 5 днів[citation:1]."
Якщо використовуються декілька джерел, позначайте окремо.

6. Встановлення порогу відмови

  • Жорстке обмеження: "Якщо довідковий матеріал абсолютно не пов'язаний з питанням, дайте відповідь 'Матеріал не пов'язаний'."
  • М'яке обмеження: комбінуйте з оцінкою достовірності пошуку; при значенні нижче порогу автоматично переходьте до гілки відмови.

7. Ланцюжок міркувань (Chain-of-Thought) для багатокрокових висновків

Питання: Хто начальник Чжана?
Кроки: 1. Спочатку визначте відділ Чжана. 2. Потім знайдіть керівника цього відділу. 3. Дайте остаточну відповідь.
Будь ласка, подумайте поетапно, а потім виведіть.

8. Негативне підказування (Negative Prompting)

Не вигадуйте відповіді. Не використовуйте нечіткі слова на кшталт "можливо", "може бути". Не виводьте жодних цифр, яких немає в довідковому матеріалі.

3. Як оцінити якість Prompt?

Показник Значення Як виміряти
Вірність (Faithfulness) Чи суворо відповідь базується на довідковому матеріалі Вручну або за допомогою RAGAS Faithfulness
Точність відмови Чи правильно модель відмовляється, коли потрібно Обчислюється на тестовому наборі без відповіді
Частота дотримання формату Чи відповідь відповідає вимогам JSON/посилань Розпізнавання регулярними виразами
Задоволеність користувача Чи корисна відповідь Онлайн-відгуки / A/B тестування

Рекомендація: підготуйте невеликий тестовий набір (20-50 крайових випадків), після кожної зміни Prompt прогоняйте його та записуйте зміни.

4. Поширені пастки та напрями оптимізації

Проблема Можлива причина Метод оптимізації
Модель ігнорує довідковий матеріал і відповідає самостійно Недостатньо сильна інструкція Змінити на "Лише на основі наведених даних" і продемонструвати відмову через few-shot
Модель постійно каже "не знаю" Занадто високий поріг відмови Знизити поріг або перевірити якість пошуку
Хаотичний формат виведення, не відповідає JSON Нечітка інструкція Додати суворий приклад формату або використовувати function calling
Відповідь занадто довга/коротка Не вказана довжина "Дайте відповідь не більше ніж 3 реченнями"
Помилки в багатокрокових висновках Недостатня здатність моделі до міркувань Вимагати покрокового міркування або використовувати сильнішу модель
Галюцинації (вигадані цифри/дати) Модель покладається на власні знання Наголосити: "Не використовуйте жодних цифр з пам'яті, дивіться лише на матеріали"

评论

暂无已展示的评论。

发表评论(匿名)