Jak działa inżynieria poleceń
Ze względu na sposób trenowania modeli OpenAI istnieją określone formaty poleceń, które działają szczególnie dobrze i prowadzą do bardziej użytecznych wyników modelu.
Oficjalny przewodnik OpenAI po inżynierii poleceń jest zwykle najlepszym miejscem, od którego warto zacząć, jeśli szukasz wskazówek dotyczących poleceń.
Poniżej przedstawiamy kilka formatów poleceń, które naszym zdaniem sprawdzają się dobrze, ale zachęcamy do testowania różnych formatów, które mogą lepiej pasować do Twojego zadania.
Praktyczne zasady i przykłady
Uwaga: „{text input here}” to symbol zastępczy rzeczywistego tekstu/kontekstu
1. Używaj najnowszego modelu
Aby uzyskać najlepsze wyniki, zwykle zalecamy używanie najnowszych, najbardziej zaawansowanych modeli. Nowsze modele są zwykle łatwiejsze w inżynierii poleceń.
Uwaga: Warto uwzględnić pewne różnice między tworzeniem poleceń dla modelu rozumującego a tworzeniem poleceń dla modelu GPT. Więcej szczegółów tutaj.
2. Umieszczaj instrukcje na początku polecenia i używaj ### lub """ do oddzielenia instrukcji od kontekstu
Mniej skuteczne ❌:
Podsumuj poniższy tekst w formie listy punktowanej z najważniejszymi punktami.
{text input here}Lepiej ✅:
Podsumuj poniższy tekst w formie listy punktowanej z najważniejszymi punktami.
Tekst: """
{text input here}
"""3. Bądź konkretny, opisowy i możliwie jak najbardziej szczegółowy w kwestii pożądanego kontekstu, wyniku, długości, formatu, stylu itp.
Podawaj konkrety dotyczące kontekstu, wyniku, długości, formatu, stylu itp.
Mniej skuteczne ❌:
Napisz wiersz o OpenAI. Lepiej ✅:
Napisz krótki inspirujący wiersz o OpenAI, koncentrując się na niedawnym wprowadzeniu produktu DALL-E (DALL-E to model ML zamieniający tekst na obraz), w stylu {famous poet}4. Określ pożądany format wyjściowy za pomocą przykładów
Mniej skuteczne ❌:
Wyodrębnij encje wymienione w poniższym tekście. Wyodrębnij następujące 4 typy encji: nazwy firm, imiona i nazwiska osób, konkretne tematy oraz motywy.
Tekst: {text}Pokaż i opisz — modele lepiej odpowiadają, gdy widzą konkretne wymagania dotyczące formatu. Ułatwia to również programistyczne, niezawodne parsowanie wielu wyników.
Lepiej ✅:
Wyodrębnij ważne encje wymienione w poniższym tekście. Najpierw wyodrębnij wszystkie nazwy firm, następnie wszystkie imiona i nazwiska osób, potem konkretne tematy pasujące do treści, a na końcu ogólne nadrzędne motywy
Pożądany format:
Nazwy firm: <lista_nazw_firm_oddzielonych_przecinkami>
Imiona i nazwiska osób: -||-
Konkretne tematy: -||-
Ogólne motywy: -||-
Tekst: {text}5. Zacznij od bez przykładów, potem kilka przykładów, jeśli żadne z nich nie zadziała, dostrój model
✅ Bez przykładów
Wyodrębnij słowa kluczowe z poniższego tekstu.
Tekst: {text}
Słowa kluczowe:✅ Kilka przykładów — podaj kilka przykładów
Wyodrębnij słowa kluczowe z odpowiadających im poniższych tekstów.
Tekst 1: Stripe udostępnia API, z których programiści webowi mogą korzystać, aby integrować przetwarzanie płatności ze swoimi witrynami i aplikacjami mobilnymi.
Słowa kluczowe 1: Stripe, przetwarzanie płatności, API, programiści webowi, witryny, aplikacje mobilne
##
Tekst 2: OpenAI wytrenowało najnowocześniejsze modele językowe, które bardzo dobrze rozumieją i generują tekst. Nasze API zapewnia dostęp do tych modeli i może być używane do rozwiązywania praktycznie każdego zadania związanego z przetwarzaniem języka.
Słowa kluczowe 2: OpenAI, modele językowe, przetwarzanie tekstu, API.
##
Tekst 3: {text}
Słowa kluczowe 3:✅Dostrajanie: zobacz najlepsze praktyki dostrajania tutaj.
6. Ogranicz „lanie wody” i nieprecyzyjne opisy
Mniej skuteczne ❌:
Opis tego produktu powinien być dość krótki, tylko kilka zdań i niewiele więcej.Lepiej ✅:
Użyj akapitu składającego się z 3 do 5 zdań, aby opisać ten produkt.7. Zamiast tylko mówić, czego nie robić, powiedz, co robić zamiast tego
Mniej skuteczne ❌:
Poniżej znajduje się rozmowa między agentem a klientem. NIE PYTAJ O NAZWĘ UŻYTKOWNIKA ANI HASŁO. NIE POWTARZAJ.
Klient: Nie mogę zalogować się na swoje konto.
Agent:Lepiej ✅:
Poniżej znajduje się rozmowa między agentem a klientem. Agent spróbuje zdiagnozować problem i zasugerować rozwiązanie, jednocześnie powstrzymując się od zadawania jakichkolwiek pytań związanych z PII. Zamiast pytać o PII, takie jak nazwa użytkownika lub hasło, odeślij użytkownika do artykułu pomocy www.samplewebsite.com/help/faq
Klient: Nie mogę zalogować się na swoje konto.
Agent:8. Specyfika generowania kodu — używaj „słów wprowadzających”, aby naprowadzić model na określony wzorzec
Mniej skuteczne ❌:
# Napisz prostą funkcję w Pythonie, która
# 1. Poprosi mnie o liczbę w milach
# 2. Przeliczy mile na kilometryW poniższym przykładzie kodu dodanie „import” podpowiada modelowi, że powinien zacząć pisać w Pythonie. (Podobnie „SELECT” jest dobrą wskazówką na początku instrukcji SQL.)
Lepiej ✅:
# Napisz prostą funkcję w Pythonie, która
# 1. Poprosi mnie o liczbę w milach
# 2. Przeliczy mile na kilometry
import9. Korzystaj z funkcji Generate Anything
Programiści mogą używać funkcji „Generate Anything”, aby opisać zadanie lub oczekiwany wynik w języku naturalnym i otrzymać dopasowane polecenie.
Dowiedz się więcej o korzystaniu z funkcji „Generate Anything”.
Parametry
Zazwyczaj uważamy, że model i temperature to najczęściej używane parametry do zmiany wyniku modelu.
model- Modele o wyższej wydajności są zwykle droższe i mogą mieć większe opóźnienia.temperature- Miara tego, jak często model generuje mniej prawdopodobny token. Im wyższa wartośćtemperature, tym bardziej losowy (i zwykle bardziej kreatywny) jest wynik. Nie jest to jednak to samo co „prawdziwość”. W większości zastosowań opartych na faktach, takich jak ekstrakcja danych i rzetelne pytania i odpowiedzi, najlepsza jest wartośćtemperaturerówna 0.max_completion_tokens(maksymalna długość) - Nie kontroluje długości wyniku, lecz stanowi twardy limit odcięcia dla generowania tokenów. Najlepiej, jeśli rzadko będziesz osiągać ten limit, ponieważ model zatrzyma się albo wtedy, gdy uzna, że skończył, albo gdy napotka zdefiniowaną przez Ciebie sekwencję stop.stop(sekwencje stop) - Zestaw znaków (tokenów), których wygenerowanie spowoduje zatrzymanie generowania tekstu.
Opisy innych parametrów znajdziesz w dokumentacji API.
