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

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

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

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

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

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

import

9. Използвайте функцията „Генериране на всичко“

Разработчиците могат да използват функцията „Генериране на всичко“, за да опишат задача или очакван изход на естествен език и да получат съобразена подкана.


Научете повече за използването на функцията „Генериране на всичко“.

Параметри

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

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

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

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

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

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

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