Галоўная / Артыкулы

Інжыніярство запросаў: кераванне LLM-амі без дакладнай налаштовкі

Ўзайце ролі, прыклады з некальколькіма кейсамі, метод «ланцуга мыслей» і правіла форматавання, каб направляць модэлі — і разумейце, калі сама просьба досягае свайго мерагу, а калі трэба фін-налаштаванне.

Выдавец: REACTAPP.TOP4 хв чытання866 слоў

Крыніцы: Prompt Engineering: Getting LLMs to Do What You Want Without Training Anything

Тонкая наладка адаптуюе ўжо прадзейснаваны мадэль паляганням на дальшай адучэнні на прызначаных для гэтага прыкладах. Шырокі спосаб адучэння застаецца эфектываў, пры тым ён не завжды неабходны. Сучасныя большыя мовныя мадэлі часта добра рэагуюць на толькі адзінакавыя інструкцыі — без адучэння, без прызначанага корпусу дадзеных, без GPU. Гэта практыка называецца інжынерыяю запросаў, і яна стала адной з найпрактычнейшых навыкаў у сучасных стэках NLP.

Два спосабы керавання модэлью

Тонкая наладка і інжынерыя запросаў прагледзяць тую ж мэту — корыстнае паведанне модэлью — але за протыяўнымі спосабамі.

Тонкая наладка змінюе вагі мадэлі. Вікорыстанне запітаў не прабывае змінюваць вагі, а ўзамен надае болей чысткія інструкцыі і кантэкст, каб мадэль могла болей точна застосаваць тое, што яна ужо знае. Мадэлі, такія як сістэмы класу GPT, прабраўшы такі масів тэксту, ужо маюць вялікі потэнцыял; запіты часта служыць для адкрывання правільнага ўзлока гэтага потэнцыялу. Практычны наследк — швальнасць: каманды можаць прыменіць змяны ў поведэнні за калькі хвілін, замест таго, каб чакалаць на працэс тонкай наладкі.

from openai import OpenAI
client = OpenAI()response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a helpful sentiment classifier. Respond with only 'positive' or 'negative'."},
        {"role": "user", "content": "I loved this movie"}
    ]
)print(response.choices[0].message.content)

Zero-shot vs Few-shot Prompting

Аднам з першых рашэнняў у дызайне ёсць тое, сколькі прыкладоў, якіх-небудзь, паказваць перад асалоджэнням справжнім заведам.

У запрасе з нулявым прыемам задача выказваецца, і пакладаецца толькі на прадзейнаванне мадэлі. Гэта дывоважнаюча чыніця для распашчых задач, такіх як атрыбутаванне настрою чытача або простая структураванне тэксту. У запрасе з калькамі спачатку паказваюцца калькі пар «вхід–выход», якія вказываюць фармат, тон і спосаб рашэння складных сітуацый — особліва для нестандартных або спецыялізаваных задач. Кожны прыклад купуе токены, што падвайшае вітраты і зменшвае прастор для справжньего вхіднага тэксту. Звычайна крашчэ заставіць наборы калькамі быць короткімі і рэпрэзентатыўнымі, чым даваць множлівасць багато майжэ ідэнтычных пар.

prompt = """
Classify the sentiment of each review as positive or negative.
Review: "Absolutely fantastic, exceeded expectations!"
Sentiment: positiveReview: "Complete waste of money, broke in a week."
Sentiment: negativeReview: "I loved this movie"
Sentiment:
"""response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": prompt}]
)print(response.choices[0].message.content)

Структура хорашага запрасу

Паралельна выбору між запрасамі з нулявым/калькамі, надзеяныя структуры дапамагаюць, калі запрасы вікорыстоўваюцца ў рэальных прыкладнах, а не толькі для едынаковых запытанняў.

Вызначэнне чыстае ролі задае тон і практычны падход. Канкрэтныя інструкцыі усунуць неяснасці ўжо па частках апэктыўнага рэзультата. Раздзелэнне кантэксту чы інпута ад інструкцыйяў дапамагае модэлю разлічваць іх. Чыстае сяродавыцтво фармата — напрыклад, JSON з іменаванымі ключамі — робіць адпаведзі лёгкімі да парасэнавання, калі не спадзявацца на адносна стабільны прозаўскі стыл. Калькі добра выбраных прыкладоў могу ўсё больш задаць частківасць пры выкарыстоўванні модэля ў незвычных задачах.

Тэхнікі стварэння запытанняў, якія вартуе знаць

Дзеякія патэрны выдзеляюцца для сложнейшых задач:

  • Запытанняў з алгорытамам разваг — прасіце модэль рассуждаваць па шагам пры выдачы фінальнай адпаведзі; гэта часта дапамагае ў рашэнні матэматычных задач і логічных працэсаў з калькама шагоў.
  • Запытанняў з вызначэннем ролі — задаце персанажа (“Вы ўполномочаны аўдытар безпекі”) каб сформаваць глубіну і стыл адпаведзі.
  • Абмежэнняя фармата выходных даных — прасіце JSON чы XML, калі іншая сістэма павінна прымець адпаведзь.
  • Самацэнсія — адзначыце калькі вароў на адной і той жа запытку і застаўце найбольш падзейны рэзультат, калі вары разніцяюцца.
  • Калі запыткі недастатковы

    Запыткі маюць строгіяя ліміты. Яны не можуць ствараць факты, якія мадэль ніколі не бачыла; яны обмежаны вікнам кантэксту, а для задач з вялікым об’ёмам і спецыфічнымі вакарамі тонканалёваная мадэль часта ўсьмішней і стабільней, чым мільйоны разоў адрыхтаваныя запыткі. Багатыя сістэмы выкарыстоўваюць аба падходы: тонканалёвуюць основную задачу, а потым дадаюць запыткі для гнучкасці і рэшэння спецыяльных вакараў. Спрыймайце запыткі як срэдство керавання, а тонканалёванне — як падыгранне ўместнасці, калі самае керавання перастае дапамагаць у расшырэнні.

    Куда гэта ведае

    Інжыніярство запросаў скрацвае шлях ад ідэі да рабочага пратотыпу — работу, якой раней былі патрэбны атрыбутаваныя даны і навчанне, часта можна адрабатваць за каліксты з дапамогою якіснага запроса. Аднак сам запрос застаецца з мерыямі, боўш чым у тых случаях, калі адпаведзіць трэба на базе інфармацыі, якой мадэль ніколі не навчалася.

    Наступны прыем — пошук па значэнні, а не па ключоўым словам, а потым ввод запрашанага тэксту ў працэс генеравання — яўляе ся сферай вбудоўваў і генеравання з дапамогою падтрымкі пошуку (RAG).