OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Добри практики за бърз инженеринг с OpenAI API

Как да давате ясни и ефективни инструкции на моделите на OpenAI

Актуализирано: 2 days ago

Как работи бързият инженеринг

Поради начина, по който са обучени моделите на OpenAI, има специфични формати на подкани, които работят особено добре и водят до по-полезни резултати от модела.

Официалното ръководство за бърз инженеринг на OpenAI обикновено е най-доброто място, от което да започнете за съвети относно подканите.

По-долу представяме редица формати на подкани, които според нас работят добре, но не се колебайте да изпробвате различни формати, които може да са по-подходящи за вашата задача.

Основни правила и примери

Забележка: „{text input here}“ е контейнер за действителен текст/контекст

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. Да преобразува мили в километри

import

9. Използвайте функцията Generate Anything

Разработчиците могат да използват функцията 'Generate Anything', за да опишат задача или очакван резултат на естествен език и да получат персонализирана подкана.

Научете повече за използването на функцията 'Generate Anything'.

Параметри

Като цяло установяваме, че model и temperature са най-често използваните параметри за промяна на изхода на модела.

  1. model - Моделите с по-висока производителност обикновено са по-скъпи и може да имат по-голяма латентност.

  2. temperature - Мярка за това колко често моделът извежда по-малко вероятен токен. Колкото по-висока е temperature, толкова по-случаен (и обикновено по-креативен) е резултатът. Това обаче не е същото като „правдивост“. За повечето фактически случаи на употреба, като извличане на данни и правдиви въпроси и отговори, temperature 0 е най-добра.

  3. max_completion_tokens (максимална дължина) - Не контролира дължината на изхода, а е твърда гранична стойност за генериране на токени. В идеалния случай няма често да достигате този лимит, тъй като вашият модел ще спре или когато прецени, че е приключил, или когато достигне зададена от вас стоп последователност.

  4. stop (стоп последователности) - Набор от знаци (токени), които, когато бъдат генерирани, ще накарат генерирането на текста да спре.

За описания на други параметри вижте API справката.

Беше ли Ви полезна тази статия?