И покрај вашите најдобри напори, LLM се уште не се однесува како што се очекуваше. Што треба да се обидете следно? Дали го уредувате повикот? Променете го моделот? Фине-таун? Секое од овие може да биде валидна опција и постои ред во кој можете да ги пробате овие поправки.
Principle V: Follow Prompt-Fix Escalation Ladder
Принцип 5: Следете ја Prompt-Fix скалата за ескалација(Ова е дел од тековната серија Принципи на АИ Инженеринг: види постови
Кога повикот не функционира како што се очекува, ги обидувам следниве поправки по ред на преференција:
-
Expanding and rephrasing instructions.
-
Adding examples.
-
Adding an explanation field.
-
Using a different model.
-
Breaking up a single prompt into multiple prompts.
-
Fine-tuning the model.
-
Throwing the laptop out the window in frustration.
Во некои случаи, редоследот на работите што треба да се пробаат ќе биде различен; сепак, имајќи стандарден пат заштедува време и ја зачува менталната способност за дебагирање.
Првите три паѓаат во кофата на Prompt Engineering и ќе бидат опфатени во поголема длабочина во следното поглавје.
Lightweight Approaches
Лесен пристапAdding Instructions
Првото нешто што треба да се обиде е повторно објаснување на LLM што да се направи преку инстант инструкции. обидете се да додадете појасни насоки, рефразирање или поместување на инструкции.
Немојте да се двоумите да ги повторувате или преформулирате изјавите повеќе пати во различни делови на повикот - LLMs не се вознемируваат од повторување.
Adding Examples
Магистерски студии (LLMs) реагираат многу добро на учење во контекст (примери за влез и излез). Тие се особено важни ако користите помали модели; овие не се толку природно "интелигентни" па бараат многу насоки (
Пример за пратка со 2-shot Inference (Детекција на јазикот):
Detect the language of the text and output it in the JSON format: {“language”: “name_of_language”}. If you don’t know the language, output “unknown” in the language field.
Example I:
Input: Hello
Output: {“language”: “English”}
Example II:
Input: EjnWcn
Output: {“language”: “Unknown”}
Text: {{text}}
Обично ќе користите 1-3 примери, иако во некои случаи може да додадете повеќе.
Adding an Explanation Field
LLMs, како и луѓето, имаат корист од тоа што треба да го објаснат своето размислување. Додадете поле "објаснување" на вашиот JSON излез и излезот обично ќе биде подобар. Ова исто така ќе ви помогне да идентификувате зошто моделот прави одредени одлуки и да ги прилагодите инструкциите и примерите.
Во случаите кога повикот користи внатрешна документација - побарајте од LLM да ги изведе деловите од документацијата што ја користеше за да ги конструира одговорите.
Можете исто така да се обидете да користите
Changing the Model
Различни модели се одликуваат на различни видови задачи. моделот o3 на OpenAI се одликува во анализирањето на кодот, но добрите стари 4o имаат тенденција да произведуваат подобро пишување и покрај тоа што се поевтини по токен.
Оваа експериментација работи многу побрзо и побезбедно кога имате автоматски тестови и метрики за мерење на „соодветноста“ на секој модел за задачата.
Heavyweight Approaches
Тешкиот пристапСекој пристап до сега беше релативно ниска цена да се обиде.
Breaking Up the Prompt
Ако еден повик не може да ја заврши работата - зошто да не пробате систем од два или повеќе повици?
-
Splitting the prompt by area of responsibility.
-
Using a new prompt as a guardrail reviewing output of the previous one.
И двата пристапи се воведуваат во
Fine-Tuning
Финото прилагодување е уште потежок пристап отколку користењето на повеќе повици. За повеќето проблеми, јас го користам како последен лек.
Зошто се двоумам да препорачам фино прилагодување во повеќето случаи? Фино прилагодување е фундаментално пристап кон машинско учење
Размислете за фин-тунинг кога:
- Другите техники не успеаја да ја постигнат целта.
- Проблемот е многу комплексен и специјализиран, а познавањето на LLM не е доволно.
- Имате случај за употреба со висок обем и сакате да заштедите пари со користење на модел со понизок обем.
- Потребна е ниска латенција, така што повеќе повици не можат да се извршат последователно.
Conclusion
ЗаклучокСе надеваме дека оваа статија ја разјаснува редоследот на чекори што треба да ги преземете кога повиците не работат како што треба. Прво, обично би пробале пристап на инстант инженеринг. Ако тоа не функционира, обидете се да го промените моделот и да видите дали тоа помогна. Следниот чекор е да користите повеќе интерактивни повици. Конечно, размислете за фино прилагодување ако сите други методи не успеале.
Ако ви се допадна оваа статија - претплатете се за повеќе.