Pisanie bardziej efektywnych monitów
Modele usługi Azure OpenAI mogą generować odpowiedzi na zapytania języka naturalnego z niezwykłą dokładnością. Jednak jakość odpowiedzi zależy w dużej mierze od tego, jak dobrze jest napisany monit. Deweloperzy mogą zoptymalizować wydajność modeli Usługi Azure OpenAI przy użyciu różnych technik w swoich monitach, co daje dokładniejsze i odpowiednie odpowiedzi.
Podaj jasne instrukcje
Jasno pytając model usługi Azure OpenAI o to, co chcesz, to jeden ze sposobów uzyskania pożądanych wyników. Ponieważ model jest tak opisowy, jak to możliwe, może wygenerować odpowiedź, która najlepiej pasuje do szukanego elementu.
Załóżmy na przykład, że chcesz utworzyć opis produktu dla nowej butelki wody. Rozważ odpowiedź skojarzona z każdym monitem:
Wierszu
Write a product description for a new water bottle
Response
Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking
for a reliable and sustainable water bottle.
W przeciwieństwie do podobnego monitu z jasnymi instrukcjami.
Wierszu
Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our
oceans
Response
Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from
100% recycled materials and available in natural colors with no dyes, this bottle is not only
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from
our oceans, making it a responsible choice for those who care about the environment. Its durable
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose
this eco-friendly water bottle for your daily hydration needs.
Uwzględnienie szczegółowych informacji, które należy uwzględnić, umożliwia modelowi poznanie informacji, które należy dodać do opisu, dzięki czemu będzie on bardziej dokładny dla nowego produktu.
Tę metodę można ekstrapolować w celu uwzględnienia złożonych instrukcji, takich jak lista punktowana szczegółów do uwzględnienia, długość odpowiedzi lub żądane formaty, które mają zostać uwzględnione w danych wyjściowych. Spróbuj poprosić o dokładnie to, co chcesz zobaczyć w wyniku, i możesz być zaskoczony tym, jak dobrze model spełnia Twoje żądanie.
Formatowanie instrukcji
Sposób formatowania instrukcji może mieć wpływ na sposób interpretowania monitu przez model. Stronniczość recency może mieć wpływ na modele, w których informacje znajdujące się na końcu monitu mogą mieć większy wpływ na dane wyjściowe niż informacje na początku. Możesz uzyskać lepsze odpowiedzi, powtarzając instrukcje na końcu monitu i oceniając, jak wpływa to na wygenerowaną odpowiedź.
Ta stronniczość recency może również wejść w grę w ChatCompletion
scenariuszu czatu, gdzie nowsze wiadomości w konwersacji zawarte w monicie mają większy wpływ na odpowiedź. W następnej lekcji bardziej szczegółowo o korzystaniu z konwersacji w celu poprawy jakości odpowiedzi, ale wprowadzenie ważnych informacji bliżej końca monitu może spowodować lepszą reakcję.
Używanie znaczników sekcji
Konkretną techniką formatowania instrukcji jest podzielenie instrukcji na początku lub na końcu monitu, a zawartość użytkownika zawarta w blokach ---
lub ###
. Te tagi umożliwiają modelowi jaśniejsze rozróżnienie między instrukcjami i zawartością. Na przykład:
Translate the text into French
---
What's the weather going to be like today?
---
Uwaga
Najlepsze rozwiązania dotyczące znaczników sekcji mogą ulec zmianie wraz z przyszłymi wersjami.
Zawartość podstawowa, pomocnicza i uziemiająca
Uwzględnianie zawartości dla modelu, która ma być używana do reagowania, pozwala mu odpowiedzieć z większą dokładnością. Tę zawartość można traktować na dwa sposoby: podstawową i pomocniczą.
Zawartość podstawowa odnosi się do zawartości, która jest przedmiotem zapytania, na przykład zdania do tłumaczenia lub artykułu do podsumowania. Ta zawartość jest często dołączana na początku lub na końcu monitu (jako instrukcja i rozróżniana przez ---
bloki) z instrukcjami wyjaśniającym, co z nim zrobić.
Załóżmy na przykład, że mamy długi artykuł, który chcemy podsumować. Możemy umieścić go w ---
bloku w wierszu polecenia, a następnie zakończyć instrukcją.
---
<insert full article here, as primary content>
---
Summarize this article and identify three takeaways in a bulleted list
Zawartość pomocnicza to zawartość, która może zmienić odpowiedź, ale nie jest fokusem ani tematem monitu. Przykłady zawartości pomocniczej obejmują takie elementy jak nazwy, preferencje, data przyszła do uwzględnienia w odpowiedzi itd. Udostępnianie zawartości pomocniczej umożliwia modelowi bardziej całkowite, dokładne reagowanie i większe prawdopodobieństwo uwzględnienia żądanych informacji.
Na przykład w przypadku bardzo długiej wiadomości e-mail promocyjnej model może wyodrębnić kluczowe informacje. Jeśli następnie dodasz zawartość pomocniczą do monitu określającego coś konkretnego, którego szukasz, model może dostarczyć bardziej przydatną odpowiedź. W takim przypadku wiadomość e-mail jest podstawową zawartością, której specyfiką jest zawartość pomocnicza
---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines
Extract the key points from the above email, and put them in a bulleted list:
Zawartość uziemienia umożliwia modelowi zapewnienie niezawodnych odpowiedzi, dostarczając zawartość dla modelu w celu uzyskania odpowiedzi. Zawartość uziemieniowa może być esejem lub artykułem, który następnie zadajesz pytania, dokumentowi z często zadawanymi pytaniami firmy lub informacjom, które są nowsze niż dane, na których trenowano model. Jeśli potrzebujesz bardziej niezawodnych i bieżących odpowiedzi lub musisz odwołać się do nieopublikowanych lub określonych informacji, zdecydowanie zaleca się uziemienie zawartości.
Zawartość uziemiona różni się od zawartości podstawowej, ponieważ jest źródłem informacji, które odpowiadają na zapytanie monitu, zamiast zawartości obsługiwanej w przypadku takich elementów, jak podsumowywanie lub tłumaczenie. Jeśli na przykład podano nieopublikowaną publikację badawczą dotyczącą historii sztucznej inteligencji, może ona następnie odpowiedzieć na pytania przy użyciu tej zawartości uziemienia.
---
<insert unpublished paper on the history of AI here, as grounding content>
---
Where and when did the field of AI start?
Te dane uziemienia umożliwiają modelowi uzyskanie bardziej dokładnych i świadomych odpowiedzi, które mogą nie być częścią zestawu danych, na który został wytrenowany.
Repliki
Wskazówki są wiodącymi słowami dla modelu do budowania i często pomagają kształtować odpowiedź we właściwym kierunku. Często są one używane z instrukcjami, ale nie zawsze. Wskazówki są szczególnie przydatne w przypadku monitowania modelu o generowanie kodu. Bieżące modele usługi Azure OpenAI mogą generować kilka interesujących fragmentów kodu, jednak generowanie kodu zostanie omówione bardziej szczegółowo w przyszłym module.
Jeśli na przykład potrzebujesz pomocy przy tworzeniu zapytania SQL, podaj instrukcje dotyczące potrzebnych informacji wraz z początkiem zapytania:
Write a join query to get customer names with purchases in the past 30 days between tables named orders and customer on customer ID.
SELECT
Odpowiedź modelu wybiera miejsce, w którym monit został przerwany, kontynuując działanie w języku SQL, mimo że nigdy nie poprosiliśmy o określony język. Inne przykłady mogą pomóc w kodzie języka Python, podając komentarze kodu dotyczące żądanej aplikacji i dołączając import
je jako słowo wiodące na końcu monitu lub podobne w żądanym języku.
Inny przykład, biorąc pod uwagę dużą kolekcję recenzji klientów w wierszu polecenia, a kończąc na:
Summarize the reviews above:
Most common complaints:
-
Następnie model wie, aby ukończyć instrukcje na podstawie kontekstu podanego w recenzjach.