← 返回列表

AI серия интервю 12: Как да оптимизираме Prompt?

Оптимизацията на подкани (Prompt Engineering / Optimization) е ключово умение, за да накараме големите езикови модели да „слушат“, особено в RAG системите, където директно определя дали моделът ще се придържа вярно към извлеченото съдържание, ще избегне халюцинации и ще спазва стандартния изходен формат.


1. Основни принципи на оптимизация на подкани

  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. Как да оценим качеството на подкана?

Показател Значение Как да измерим
Вярност Отговорът строго ли се основава на референтните материали Ръчно или с RAGAS Faithfulness
Точност на отказ Отказва ли, когато трябва Изчислете върху тестов набор без отговор
Степен на спазване на формат Извежда ли JSON/цитати според изискванията Регулярен израз
Потребителско удовлетворение Полезен ли е отговорът Онлайн обратна връзка / A/B тестване

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

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

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

评论

暂无已展示的评论。

发表评论(匿名)