← 返回列表

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:
Въпрос: Колко дни годишен отпуск?
Референтни материали: Правила за отпуск: 5 дни след 1 година, 10 дни след 10 години.
Отговор: 5 дни след 1 година, 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
Точност на отказ Отказва ли правилно, когато трябва? Изчисляване върху тестов набор без отговори
Спазване на формат Извежда ли JSON / цитати според изискванията? Регулярен израз
Удовлетвореност на потребителя Полезен ли е отговорът? Онлайн обратна връзка / A/B тестване

Съвет: Подгответе малък тестов набор (20-50 гранични случая), стартирайте го след всяка промяна на prompt и запишете промените.

4. Често срещани капани и насоки за оптимизация

Проблем Възможна причина Метод за оптимизация
Моделът игнорира референтните материали и отговаря сам Инструкцията не е достатъчно задължителна Променете на „само въз основа на следните материали“ и покажете отказ чрез few-shot
Моделът винаги казва „не знам“ Твърде висок праг за отказ Намалете прага или проверете качеството на извличане
Изходният формат е объркан, не следва JSON Инструкцията не е ясна Добавете строги примери за формат или използвайте function calling
Отговорът е твърде дълъг/къс Няма указание за дължина „Отговорете с не повече от 3 изречения“
Грешки при многократно извеждане Недостатъчна способност за разсъждение Изискайте поетапно разсъждение или сменете с по-мощен модел
Халюцинации с числа/дати Моделът разчита на собствените си знания Подчертайте „не използвайте никакви числа от паметта си, гледайте само материалите“

评论

暂无已展示的评论。

发表评论(匿名)