Inżynieria monitu openAI
Jakość monitów wejściowych wysyłanych do modelu sztucznej inteligencji, podobnie jak te dostępne w usłudze Azure OpenAI, ma bezpośredni wpływ na jakość tego, co otrzymujemy. Starannie tworząc monity wysyłane do modelu, model może zapewnić lepsze i bardziej interesujące odpowiedzi.
Co to jest inżynieria poleceń
Monitowanie inżynieryjne to proces projektowania i optymalizowania monitów o lepsze wykorzystanie modeli sztucznej inteligencji. Projektowanie skutecznych monitów ma kluczowe znaczenie dla sukcesu inżynierii monitów i może znacząco poprawić wydajność modelu sztucznej inteligencji w określonych zadaniach. Zapewnienie odpowiednich, jednoznacznych i dobrze ustrukturyzowanych monitów może pomóc modelowi lepiej zrozumieć kontekst i wygenerować dokładniejsze odpowiedzi.
Jeśli na przykład chcemy, aby model OpenAI wygenerował opisy produktów, możemy podać mu szczegółowy opis opisujący funkcje i zalety produktu. Podając ten kontekst, model może wygenerować dokładniejsze i odpowiednie opisy produktów.
Szybka inżynieria może również pomóc w ograniczeniu stronniczości i poprawić sprawiedliwość w modelach sztucznej inteligencji. Projektując monity, które są zróżnicowane i inkluzywne, możemy zapewnić, że model nie jest stronniczy w stosunku do określonej grupy lub perspektywy.
Ważne
Bez względu na to, jak dobrze można zaprojektować monit, odpowiedzi z modeli sztucznej inteligencji nigdy nie powinny być traktowane jako fakt lub całkowicie wolne od stronniczości. Zawsze używaj sztucznej inteligencji w sposób odpowiedzialny. Aby uzyskać więcej informacji, zobacz Artykuł Microsoft's transparency note on Azure OpenAI and Microsoft's AI principles (Uwaga dotycząca przejrzystości firmy Microsoft w temacie Azure OpenAI i zasad sztucznej inteligencji firmy Microsoft).
Ponadto monity inżynieryjne mogą pomóc nam zrozumieć, które odwołania do modelu używa do generowania odpowiedzi. Modele generowania sztucznej inteligencji mają mnóstwo parametrów, a następująca logika jest w dużej mierze nieznana użytkownikom, więc może być myląca, jak dociera do odpowiedzi, jaką daje. Projektując monity, które są łatwe do zrozumienia i interpretowania, możemy pomóc ludziom lepiej zrozumieć, w jaki sposób model generuje odpowiedzi. Może to być szczególnie ważne w takich dziedzinach jak opieka zdrowotna, w których kluczowe znaczenie ma zrozumienie sposobu podejmowania decyzji przez model.
Istnieją różne metody do wykorzystania podczas inżynierii własnych monitów. Obejmują one dostarczanie instrukcji, kontekstowej zawartości, wskazówek lub przykładów z kilkoma zrzutami oraz prawidłowe porządkowanie zawartości w wierszu polecenia. Metody omówione tutaj nie są wyczerpujące, ponieważ ten obszar jest zniuansowany i płynny temat.
Zagadnienia dotyczące punktów końcowych interfejsu API
W pozostałej części tej lekcji skupimy się na .ChatCompletion
Warto zauważyć, że ChatCompletion
można również użyć w scenariuszach niezwiązanych z czatem, w których wszystkie instrukcje są zawarte w wiadomości systemowej i zawartości użytkownika są udostępniane w komunikacie roli użytkownika. Większość z tych przykładów można zmienić, aby w razie potrzeby używać punktu końcowego Completion
.
Jeśli chodzi o dostępność modelu, Completion
punkt końcowy może być używany z modelami gpt-3
i jego wcześniejszymi wersjami oraz ChatCompletion
może być używany z modelami i nowszymi gpt-35-turbo
.
Dostosowywanie parametrów modelu
Oprócz technik omówionych w tej lekcji dostosowanie parametrów modelu może mieć znaczący wpływ na odpowiedź. W szczególności i top_p
(top_probability) są najbardziej prawdopodobne, temperature
aby wpłynąć na odpowiedź modelu, ponieważ kontrolują losowość w modelu, ale na różne sposoby.
Wyższe wartości generują więcej odpowiedzi kreatywnych i losowych, ale prawdopodobnie będą mniej spójne lub ukierunkowane. Oczekuje się, że odpowiedzi będą fikcyjnymi lub unikatowymi korzyściami z wyższych wartości dla tych parametrów, natomiast zawartość, która ma być bardziej spójna i konkretna, powinna używać niższych wartości.
W szczególności wysoka temperature
pozwala na większą zmienność struktury zdań i wysoki top_p
pozwala na większą zmienność wyrazów, które są używane (przy użyciu różnych synonimów).
Spróbuj dostosować te parametry przy użyciu tego samego monitu, aby zobaczyć, jak wpływają one na odpowiedź. Zaleca się zmianę lub temperature
top_p
jednocześnie, ale nie obie.
Skuteczne monity zapisu
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:
Monit
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.
Monit
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ź.
Zawartość podstawowa, pomocnicza i uziemiająca
Uwzględnienie zawartości modelu do użycia w odpowiedzi pozwala modelowi 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ść uziemiająca umożliwia modelowi dostarczanie 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. Są one często używane z instrukcjami, ale nie zawsze. Wskazówki są szczególnie przydatne w przypadku monitowania modelu o generowanie kodu. Generowanie kodu zostało dokładniej omówione w kolejnej lekcji.