Онлайн час в Google Meet
Лого на 91. НЕГ „Проф. Константин Гълъбов“

12. клас · Избираем модул · Урок 17

Prompt engineering

Как се пише задача към езиков модел: роля, контекст, примери, ограничения, формат, стъпка по стъпка. Защо „бъди по-добър“ не работи и защо промптът се пази като код — с версии.

Промптът е програма

В урок 16 видяхте, че моделът продължава текста по най-вероятния начин. Следствието е просто: това, което получавате, зависи от това, което сте написали. Досега програмирахте с точни инструкции на C# и SQL. Промптът е друг вид програмиране — описвате задачата на естествен език, а моделът я изпълнява по начина, който сметне за най-вероятен. Затова формулировката има толкова голямо значение.

Промпт (prompt)

Целият текст, който подаваме на модела: указания, контекст, примери и самият въпрос.

Градивните части

ЧастЗа какво служиПример
Ролязадава гледна точка и речникТи си администратор на бази от данни.
Задачакакво точно да се направи, с глаголНапиши SQL заявка, която …
Контексткакво знаем за случаяТаблиците са students(id, name, class_id) и marks(student_id, mark).
Примери (few-shot)показват желания изход вместо да го описват„Иван от Пловдив“ → име: Иван, град: Пловдив
Форматкак да изглежда отговорътСамо кодът, без обяснения. Колоните с псевдоними на латиница.
Ограничениякакво да не правиБез функции, специфични за MySQL. Ако нещо липсва — попитай.
Слаб промптДобър промпт
ТекстНапиши заявка за средна оценка по класовеТаблици: classes(id, name), students(id, name, class_id), marks(id, student_id, mark). Напиши SQL заявка (SQLite), която за всеки клас връща името му и средната оценка, закръглена до 2 знака, подредено по средната низходящо. Само кодът.
Какво липсваимена на таблици, колони, диалект, сортиране, формат—
Резултатизмислени имена на колони, обяснения около кодазаявка, която се изпълнява направо

Похвати, които наистина работят

Примери в самия промпт

Най-силният похват. Вместо да описвате какъв да е изходът, покажете два-три примера — моделът ще продължи по образец. Това се нарича few-shot („с няколко примера“).

Извлечи име и град:
"Иван Петров от Пловдив" → {"ime": "Иван Петров", "grad": "Пловдив"}
"Мария от Варна" → {"ime": "Мария", "grad": "Варна"}
"Георги Иванов, живее в Бургас" →

Стъпка по стъпка

За задачи с няколко хода добавете „разсъждавай стъпка по стъпка“. Всеки написан токен е част от контекста за следващия — така моделът си строи опора. Прескочи ли към отговора веднага, шансът за грешка е по-голям. Видяхте го в урок 16 при умножението.

Разрешение за незнание

Добавете изрично: „ако информацията не се съдържа в текста, отговори „не знам“.“ Без това моделът предпочита да измисли отговор, защото вероятностното разпределение винаги предлага нещо.

Изискван формат на изхода

„До 100 думи“, „само JSON, без обяснения“, „таблица с три колони“ — конкретните ограничения намаляват разсейването и правят отговора използваем от програма. В урок 20 това ще стане задължително.

Какво не работи

  • „Бъди по-добър“, „бъди точен“, „не греши“ — няма какво да променят: моделът и без това тегли най-вероятното продължение.
  • Заплахи и обещания за награда — това е ритуал, не механизъм.
  • Много задачи в един промпт — качеството пада; разделете ги.
  • Разчитане, че моделът помни предишен разговор — той вижда само това, което е в контекстния прозорец сега.

Промптът като код: версии и критерий

Един промпт рядко става от първия път. Работи се както при програмите: измерване, хипотеза, промяна, ново измерване. За да има измерване, трябва критерий за качество — списък от проверими условия, на които отговорът или отговаря, или не.

  1. Напишете критерия преди промпта: 3–5 условия с отговор „да/не“.
  2. Напишете версия 1 и вижте какво излиза.
  3. Открийте най-дразнещия проблем — измислена колона, обяснения около кода, грешен диалект.
  4. Добавете едно изречение срещу точно този проблем. Това е версия 2.
  5. Пуснете всяка версия поне 3 пъти — заради температурата отговорите се различават.
  6. Запишете таблица „версия → какво промених → ефект“. Пазете версиите като код, не ги презаписвайте.

Какво трябва да запомниш

  • Промптът е програма на естествен език: роля, задача, контекст, примери, формат, ограничения.
  • Примерите (few-shot) са най-силният начин да зададете формат; „стъпка по стъпка“ помага при задачи с няколко хода.
  • Разрешете на модела да каже „не знам“ — иначе ще измисли.
  • „Бъди по-добър“ не променя нищо; конкретното изречение срещу конкретния проблем — да.
  • Качеството се измерва по предварително записан критерий и при няколко пускания, не по един късметлийски отговор.
  • Промптът се пази с версии, като код. Лични данни в него — никога.