Как работи бързият инженеринг
Поради начина, по който моделите на OpenAI се обучават, има конкретни формати на подкани, които работят особено добре и водят до по-полезни резултати от модела. Официалното ръководство на OpenAI за бърз инженеринг обикновено е най-доброто място да започнете за съвети относно подканите.
По-долу представяме няколко формата на подкани, които според нас работят добре, но можете свободно да изпробвате различни формати, които може да паснат по-добре на задачата ви.
Практически правила и примери
Забележка: „{текстов вход тук}“ е запазено място за действителен текст/контекст
1. Използвайте най-новия модел
За най-добри резултати обикновено препоръчваме да използвате най-новите и най-способни модели. По-лесно е да се прави бърз инженеринг за по-новите модели.
Забележка: Има някои разлики, които трябва да се вземат предвид при подканване на модел със структурирано анализиране спрямо подканване на GPT модел. Повече подробности тук.
2. Поставете инструкциите в началото на подканата и използвайте ### или """ за разделяне на инструкцията и контекста
По-малко ефективно ❌:
Обобщете текста по-долу като списък с водещи точки на най-важните моменти.
{text input here}По-добре ✅:
Обобщете текста по-долу като списък с водещи точки на най-важните моменти.
Текст: """
{text input here}
"""3. Бъдете възможно най-конкретни, описателни и подробни относно желания контекст, резултат, дължина, формат, стил и т.н.
Бъдете конкретни относно контекста, резултата, дължината, формата, стила и т.н.
По-малко ефективно ❌:
Напишете стихотворение за OpenAI. По-добре ✅:
Напишете кратко вдъхновяващо стихотворение за OpenAI, като се фокусирате върху скорошното пускане на продукта DALL-E (DALL-E е ML модел за преобразуване на текст в изображение) в стила на {famous poet}4. Формулирайте желания формат на изхода чрез примери
По-малко ефективно ❌:
Извлечете същностите, споменати в текста по-долу. Извлечете следните 4 типа същности: имена на компании, имена на хора, конкретни теми и общи теми.
Текст: {text}Покажете и кажете — моделите реагират по-добре, когато им се покажат конкретни изисквания към формата. Това също улеснява програмното надеждно извличане на множество изходи.
По-добре ✅:
Извлечете важните същности, споменати в текста по-долу. Първо извлечете имената на всички компании, след това имената на всички хора, после конкретни теми, които съответстват на съдържанието, и накрая извлечете общите водещи теми
Желан формат:
Имена на компании: <списък_с_имена_на_компании_разделени_със_запетаи>
Имена на хора: -||-
Конкретни теми: -||-
Общи теми: -||-
Текст: {text}5. Започнете с подход без повторение, после с малко повторения; ако нито едно не сработи, направете фина настройка
✅ Без повторение
Извлечете ключови думи от текста по-долу.
Текст: {text}
Ключови думи:✅ С малко повторения - предоставете няколко примера
Извлечете ключови думи от съответните текстове по-долу.
Текст 1: Stripe предоставя API, които уеб разработчиците могат да използват, за да интегрират обработка на плащания в своите уебсайтове и мобилни приложения.
Ключови думи 1: Stripe, обработка на плащания, API, уеб разработчици, уебсайтове, мобилни приложения
##
Текст 2: OpenAI е обучила водещи езикови модели, които са много добри в разбирането и генерирането на текст. Нашият API предоставя достъп до тези модели и може да се използва за решаване на почти всяка задача, която включва обработка на език.
Ключови думи 2: OpenAI, езикови модели, обработка на текст, API.
##
Текст 3: {text}
Ключови думи 3:✅Фина настройка: вижте най-добрите практики за фина настройка тук.
6. Намалете „пухкавите“ и неточни описания
По-малко ефективно ❌:
Описанието на този продукт трябва да е сравнително кратко, само няколко изречения и не много повече.По-добре ✅:
Използвайте абзац от 3 до 5 изречения, за да опишете този продукт.7. Вместо само да казвате какво да не се прави, кажете какво да се направи вместо това
По-малко ефективно ❌:
Следното е разговор между Агент и Клиент. НЕ ПИТАЙТЕ ЗА ПОТРЕБИТЕЛСКО ИМЕ ИЛИ ПАРОЛА. НЕ ПОВТАРЯЙТЕ.
Клиент: Не мога да вляза в акаунта си.
Агент:По-добре ✅:
Следното е разговор между Агент и Клиент. Агентът ще се опита да диагностицира проблема и да предложи решение, като същевременно се въздържа от задаване на въпроси, свързани с PII. Вместо да искате PII, като потребителско име или парола, насочете потребителя към помощната статия www.samplewebsite.com/help/faq
Клиент: Не мога да вляза в акаунта си.
Агент:8. Специфично за генериране на код — използвайте „водещи думи“, за да насочите модела към определен шаблон
По-малко ефективно ❌:
# Напишете проста python функция, която
# 1. Да ме попита за число в мили
# 2. Да преобразува мили в километриВ примера с код по-долу добавянето на „import“ подсказва на модела, че трябва да започне да пише на Python. (По подобен начин „SELECT“ е добра подсказка за началото на SQL оператор.)
По-добре ✅:
# Напишете проста python функция, която
# 1. Да ме попита за число в мили
# 2. Да преобразува мили в километри
import9. Използвайте функцията „Генериране на всичко“
Разработчиците могат да използват функцията „Генериране на всичко“, за да опишат задача или очакван изход на естествен език и да получат съобразена подкана.
Научете повече за използването на функцията „Генериране на всичко“.
Параметри
Като цяло установяваме, че `model` и `temperature` са най-често използваните параметри за промяна на изхода на модела.
`model` - По-производителните модели обикновено са по-скъпи и може да имат по-голяма латентност.
`temperature` - Мярка за това колко често моделът извежда по-малко вероятен токен. Колкото по-висока е
temperature, толкова по-случаен (и обикновено по-креативен) е изходът. Това обаче не е същото като „правдивост“. За повечето фактологични случаи на употреба, като извличане на данни и правдиви въпроси и отговори,temperatureот 0 е най-добра.`max_completion_tokens` (максимална дължина) - Не контролира дължината на изхода, а задава твърд лимит за генериране на токени. В идеалния случай няма често да достигате този лимит, тъй като моделът ви ще спре или когато сметне, че е приключил, или когато достигне дефинирана от вас стоп последователност.
`stop` (стоп последователности) - Набор от знаци (токени), които, когато бъдат генерирани, ще спрат генерирането на текст.
За описания на други параметри вижте справката за API.
