Генеративни модели и структура на промпт (prompt engineering)

Генеративните модели (како јазичните модели од типот на трансформери) создаваат нова содржина преку статистичко предвидување на следниот збор/токен врз основа на претходниот контекст. Тие не „знаат“ или „разбираат“ на начинот на кој човекот знае или разбира. Наместо тоа, нивната работа се заснова на пресметување на веројатности. За секој нареден збор или симбол, моделот пресметува која е најверојатната опција врз основа на претходниот контекст и на статистичките обрасци што ги има идентификувано во фазата на обука. Резултатот е текст кој изгледа кохерентно, но чиј квалитет е директно условен од начинот на кој е поставено барањето.

Кога се зборува за „генеративност“ во контекст на јазичните модели, потребно е да се направи јасна разлика од поимот „креативност“. Креативноста кај луѓето подразбира свесно творештво, оригиналност, иновација и подлабоко разбирање на значењата. За разлика од тоа, генеративноста кај јазичните модели се однесува на нивната способност да продуцираат нови, претходно невидени низи од симболи (зборови, реченици или текстови), кои се статистички кохерентни со она што моделот го има научено за јазикот преку анализа на големи количини податоци. Генеративниот модел не „знае”, тој пресметува веројатности.

Што е токен?

Токенот е основната единица со која оперира јазичниот модел. Тој не е нужно еднаков на збор, може да биде цел збор („куќа”), дел од збор („ком” + “плексен”), интерпункциски знак, празно место или специјален симбол. Процесот на претворање на текст во токени се нарекува токенизација, и тој претходи на секое понатамошно пресметување. Секој модел поседува фиксен речник (vocabulary) кој е збир на сите токени кои тој може да ги препознае и произведе. Кај современите модели, овој речник брои десетици илјади токени. Секогаш кога моделот треба да „избере” следен токен, тој всушност пресметува веројатносна дистрибуција над целиот речник, т.е. на секој можен токен му доделува веројатност дека тој е „следниот”.

Структура на промпт (Prompt engineering)

Prompt engineering е систематска практика на конструирање, оптимизација и итерирање на влезни инструкции упатени кон јазичен модел, со цел добивање прецизен, релевантен и проверлив излез. Таа претставува дизајн на комуникацијата помеѓу човекот и веројатносниот систем, притоа земајќи ги предвид архитектурните карактеристики на моделот, неговите ограничувања и неговите стохастички тенденции. Тоа подразбира разбирање на тоа како моделот реагира на различни лингвистички и структурни обрасци.

Системски промпт (System Prompt)

Во системите за вештачка интелигенција, особено кај јазичните модели, однапред се дефинираат насоките и границите во рамките на кои моделот ќе функционира. Ова се прави со цел да се обезбеди доследност, безбедност и соодветност на одговорите што моделот ги генерира. Во овој контекст, системскиот промпт претставува инструкциска рамка која се иницира пред започнувањето на секој разговор. Во типичните имплементации, тој останува невидлив за крајниот корисник и служи како конфигурациски слој што го регулира однесувањето на моделот. Метафорично кажано, системскиот промпт го дефинира карактерот на моделот за дадениот контекст.

Системскиот промпт се поставува од страна на развивачот или операторот на системот. Тој го дефинира персоналитетот, тонот, вредностите и ограничувањата. Системскиот промпт е постојан низ целиот разговор и има приоритет над корисничките инструкции. На пример: „Ти си академски асистент специјализиран за филозофија. Секогаш одговарај формално, во структурирана форма, наведувај извори кога е можно и избегнувај спекулативни тврдења без епистемичко оправдување.”

Кориснички промпт (User Prompt)

Корисничкиот промпт е конкретното барање или прашање кое корисникот го формулира во реално време, најчесто во процесот на комуникација со дигитален асистент, софтвер или друг интерактивен систем. Тој претставува иницијална точка на интеракција преку која корисникот го изразува својот интерес, потреба или проблем. Овој промпт функционира внатре во рамките што ги поставува системскиот промпт.

Динамичноста и индивидуалноста на корисничкиот промпт произлегува од конкретната интеракција и потребите на корисникот. Дихотомијата помеѓу системскиот промпт и корисничкиот промпт овозможува флексибилност во комуникацијата, но истовремено гарантира дека одговорите и обработката на информациите се во согласност со поставените правила и стандарди на системот.

Еден добро конструиран промпт типично содржи четири компоненти:

Улога — Дефинирање на идентитетот и регистарот на моделот. Му се доделува идентитет на моделот („Ти си експерт за…”), со цел активирање на соодветен регистар и знаење.

Задача — Специфицирање на очекуваниот излез, односно јасно и прецизно формулирање на она што се очекува да биде произведено.

Контекст — обезбедување на релевантните позадински информации. Тоа се информации кои го ограничуваат или насочуваат просторот на можни одговори.

Ограничувања — Поставување на границите на одговорот: должина, формат, теми кои треба да се избегнат, ниво на сложеност итн.

Корисничкиот промпт се поставува од страна на корисникот и потребно е да биде специфичен, контекстуален и вообичаено е еднократен. За да се активира генеративниот процес во рамките на веќе дефинираните параметри, препорачливо е да содржи прашање, задача, барање за анализа или примери. Вклучувањето на овие елементи корелира со квалитетот на генерираниот одговор иако не е задолжително сите да се опфатени при креирањето на промптот.

Интеракцијата помеѓу двата типа

Системскиот промпт и корисничкиот промпт не функционираат независно, нивната поврзаност е таква каде што едниот може да има предност или да влијае на другиот создавајќи т.н. „хиерархиска тензија“. Тоа значи дека кога ќе се зададе инструкција на системот, моделот истовремено ги обработува обете инструкции и ги зема во предвид и двата промпта па генерира одговор кој ги задоволува барањата и на двете инструкции. Доколку корисничкиот промпт е во конфликт со системскиот, моделот типично дава приоритет на системската инструкција.

Системскиот промпт е местото каде на суптилен и невидлив начин се вгнездуваат вредностите, пристрасностите и нормативните рамки на оние кои го дизајнираат системот. Тие се носители на одредени општествени, политички и аксиолошки ставови. Во нив се судираат различните етички, политички и идеолошки позиции и тие директно влијаат на начинот на кој ВИ ќе се однесува кон различни групи, идентитети или општествени прашања.

Формат на Излез и Проверливост

Формулињето на промптот се сведува на тоа која содржина се бара и начинот на кој одговорот треба да биде претставен. Во промптот може јасно да се наведе форматот на излезот, дали одговорот треба да биде структуриран текст со наслови, кратко набројување со точки, тебела или во машински читлив формат, како што е JASON. Форматот на излезот е важен кога податоците треба да се зачуваат, споредуваат, обработуваат со помош на програма или да се интегрираат во поголем систем, како што се апликации, извештаи, аналитички процеси или автоматизирани одлучувачки системи.

Една од предностите на вака структурираниот излез е тоа што ја подобрува проверливоста на информациите. Доколку одговорот е организиран на јасен начин тврдењата лесно се издвојуваат од објаснувањата, претпоставките и заклучоците и со тоа се олеснува проверката на точноста на тврдењата. На пример, ако се користи табела во која посебно се наведени тврдење, доказ/извор и метод на проверка, текстот станува појасен и полесен за разбирање.

Проверливоста на дадените тврдења подразбира дека тие можат да се потврдат или побијат преку надворешни извори или преку логичка и методолошка анализа, односно дали заклучокот следи од претпоставките, дали има скриени генерализации, дали термините се користат конзистентно итн. Треба да се направи дистинкциија помеѓу проверливоста и убедливоста на излезите. Еден одговор може да звучи убедливо, но истовремено да е тешко проверлив доколку е напишан без јасни криетриумим, извори и разграничувања помеѓу факти и интерпретации. Во овој контекст, конректетниот формат на промпт го насочува моделот да ги артикулира тврдењата експлицитно, да ги одвои од агрументацијата и да посочи како одговорот може да се провери.

Дефинирањето на форматот на одговорите го прави текстот поуреден и појасен и има основа за валидирање, автоматизација и интеграција. Структурираниот излез придонесува за полесно споредување на одговорите, препознавање на можните противречности и вклучување на одговорите во работните процеси.

Техники на структура на промпт (prompt engineering)

Few-shot учење

Во промпт-инженерството, few-shot учење е техника во која генеративниот модел не се обучува експлицитно на нова задача, тоа значи дека во самиот промпт на моделот му се даваат неколку јасни примери од типот влез-излез парови во рамките на самиот промпт. Оваа техника најчесто се нарекува учење од контекстот (in-context learning), моделот го препознава образецот и го применува аналогно, но не се дообучува трајно само се ориентира според примерите што ги има во моментот.

Chain-of-thought (ланец на мисли)

Chain-of-thought (CoT) во промпт-инженерство е техника со која се насочува моделот да размислува чекор по чекор наместо веднаш да даде финален одговор. Кај задачи што бараат логика, пресметки, план, споредување или дедукција, подобро работи ако моделот вака размислува отколку да „погоди“ одговор. Ваквиот начин на размислување често ја подобрува точноста кај математика, логички задачи, сложени класификации, анализа на текст и сл. Кога задачата е составена од повеќе под-чекори CoT го тера моделот да не прескокнува важни „меѓучекори“, помалку да халуцинира врски што не следат логички, да биде поконзистентен кога има услови и ограничувања, подобро да „држи“ контекст на подолги проблеми.

Самокритика (self-critique) и Итерација

Еден од понапредните пристапи е самокритика на моделот, тоа значи дека по иницијалниот одговор, на моделот му се бара да го оцени сопствениот излез, да идентификува слабости и да го ревидира. Со овој пристап од моделот се бара да идентификува потенцијални слабости, нејаснотии или недостатоци во дадениот одговор, да предложи подобрувања или корекции врз основа на сопствената анализа и да го ревидира одговорот, со цел да ја зголеми неговата точност, релевантност и јасност.

Итерацијата подразбира дека промптот не е финален при првото испраќање. Наместо тоа промптот се усовршува врз основа на добиените резултати, односно одговорите што ги генерира моделот. Се врши постепено прецизирање на барањето, со додавање на нови детали или со коригирање на формулацијата и процесот продолжува сè додека не се постигне посакуваниот квалитет или релевантност на одговорот.

Со комбинирањето на самокритика и итерација се добиваат поквалитетни, поточни и поадекватни резултати. Најчесто се користат при развој на производи, графички дизајн, архитектура, за анализа на резултати и повторување на експерименти, подобрување на текстови, уметнички дела и други креативни процеси, подобрување на код, функционалности и корисничко искуство. Во суштина, овие техники се дел од процесот на континуирано подобрување (continuous improvement), каде што се анализира сопствената работа, се бараат недостатоци и се прават повторени измени со цел постигнување повисок квалитет.

Заклучок

Во ерата на вештачката интелигенција, промптот е место каде што се среќаваат инженерството и хуманистиката. Поради комуникацијата со веројатносен систем, prompt engineering е истовремено инженерска дисциплина и културна/критичка писменост. Ваквиот вид на писменост се појавува таму каде што традиционалната претстава за „софтвер“ почнува да попушта пред нешто повеќе налик на јазичен соговорник. Наместо на компјутерот да се дават јасни, детерминистички инструкции што секогаш даваат ист резултат, се разговара со модел што генерира, што предвидува следна можност, во зависност од контекст, тон, ограничувања и примери.

Добриот промпт е композиција на контекст, цел, ограничувања и критериуми. Prompt engineering личи на инженерство затоа што бара тестирање, итерација и валидација, но истовремено личи и на реторика поради јазичните избори како редоследот на инструкции, прецизноста на поимите, примерите што се даваат го менуваат исходот.