Wprowadzenie do inżynierii poleceń

Modele GPT-3, GPT-3.5 i GPT-4 z usługi OpenAI są oparte na poleceniach. W przypadku modeli opartych na poleceniach użytkownik wchodzi w interakcję z modelem, wprowadzając polecenie tekstowe, na które model odpowiada przez uzupełnienie tekstu. To uzupełnianie jest kontynuacją modelu tekstu wejściowego.

Te modele są niezwykle zaawansowane, jednak ich działanie jest również bardzo zależne od poleceń. To sprawia, że ich szybkie tworzenie jest ważną umiejętnością, którą warto nabyć.

Budowa monitów może być trudna. W praktyce monituje o skonfigurowanie wag modelu w celu ukończenia żądanego zadania, ale jest to bardziej sztuka niż nauka, często wymagając doświadczenia i intuicji, aby stworzyć udany monit. Celem tego artykułu jest pomoc w rozpoczęciu pracy z tym procesem szkoleniowym. Podejmuje próbę przechwycenia ogólnych pojęć i wzorców, które mają zastosowanie do wszystkich modeli GPT. Jednak ważne jest, aby zrozumieć, że każdy model zachowuje się inaczej, więc uczenie może nie mieć równego zastosowania do wszystkich modeli.

Podstawy

W tej sekcji omówiono podstawowe pojęcia i elementy monitów GPT.

Monity tekstowe to sposób interakcji użytkowników z modelami GPT. Podobnie jak we wszystkich modelach językowych generowania, modele GPT próbują utworzyć kolejną serię słów, które najprawdopodobniej będą zgodne z poprzednim tekstem. To tak, jakbyśmy mówili Co jest pierwszą rzeczą, która przychodzi do twojego umysłu, kiedy mówię <prompt>?. W poniższych przykładach pokazano to zachowanie. Biorąc pod uwagę pierwsze słowa znanej zawartości, model jest w stanie dokładnie kontynuować tekst.

Monit Zakończenie
Cztery wyniki i siedem lat temu ojcowie wychowali się na tym kontynencie, nowym narodzie, poczętym w Wolności i oddanym propozycji, że wszyscy mężczyźni są utworzeni. [...]
"Zadzwoń do mnie Ishmael." "Kilka lat temu — nigdy nie ważne, jak długo — mając niewiele pieniędzy w mojej torebki, i nic szczególnego, aby mnie zainteresować na brzegu, myślałem, że popłynąłbym o trochę i zobaczyć wodną część świata." [...]

Podczas opracowywania bardziej złożonych monitów warto pamiętać o tym podstawowym zachowaniu. Niezależnie od podanego monitu model odpowiada po prostu na to, co określa, jest najbardziej prawdopodobne (biorąc pod uwagę dane szkoleniowe i cele szkoleniowe). Jeśli zadajesz pytanie w wierszu polecenia, model nie śledzi oddzielnej ścieżki kodu "Q&A", ale raczej wydaje się odpowiadać na pytanie, ponieważ odpowiedź jest najbardziej prawdopodobnym rodzajem odpowiedzi dla danego pytania jako danych wejściowych.

Monituj składniki

W przypadku korzystania z interfejsu API uzupełniania, gdy nie ma różnicy między różnymi częściami monitu, nadal może być przydatne do nauki i dyskusji w celu zidentyfikowania podstawowych składników monitu. Interfejs API uzupełniania czatu zawiera różne sekcje monitu, które są wysyłane do interfejsu API w postaci tablicy słowników ze skojarzonymi rolami: system, użytkownik i asystent. Te wskazówki koncentrują się bardziej ogólnie na tym, jak myśleć o tworzeniu monitów, a nie na dostarczaniu wskazówek nakazowych specyficznych dla jednego interfejsu API.

Ważne jest również, aby zrozumieć, że chociaż mogą istnieć inne prawidłowe sposoby rozbicia monitów, celem tego podziału jest zapewnienie stosunkowo prostego sposobu myślenia o budowie monitu. W przypadku interfejsu API uzupełniania wszystkie składniki są opcjonalne, ale co najmniej jeden musi być obecny, a większość monitów zawiera więcej niż jeden składnik. Między składnikami może znajdować się szary obszar. Kolejność przedstawiona poniżej w przybliżeniu odpowiada sposobie, w jaki często każdy składnik jest używany, od większości do najmniejszych.

Instrukcje

Instrukcje są prawdopodobnie najczęściej używanym składnikiem monitu. Instrukcje są po prostu następujące: instrukcje dotyczące modelu na temat tego, co należy zrobić. Chociaż jest to proste w koncepcji, mogą być złożone w praktyce. W poniższej tabeli przedstawiono to, przedstawiając zarówno proste, jak i bardziej złożone instrukcje w dwóch różnych formach.

Typ instrukcji Monit Zakończenie
Proste instrukcje Napisz wprowadzenie do tygodniowego biuletynu. Witamy w naszym cotygodniowym biuletynie. W tym tygodniu skupiamy się na produktywności. Podzielimy się wskazówkami i wskazówkami dotyczącymi tego, jak być produktywnym we wszystkich obszarach twojego życia. Mamy nadzieję, że cieszysz się i podziel się ze znajomymi!
Złożone instrukcje Napisz wprowadzenie do tygodniowego biuletynu dla mojej firmy o nazwie Contoso. Należy wspomnieć o wielkim spotkaniu z rękami, które mieliśmy w zeszłym tygodniu i podziękować zespołowi za całą ciężką pracę w ciągu trudnych kilku miesięcy. Witamy w cotygodniowym biuletynie firmy Contoso! Mieliśmy wspaniałe spotkanie wszystkich rąk w zeszłym tygodniu i chcę podziękować zespołowi za całą ich ciężką pracę w ciągu trudnych kilku miesięcy. Nie możemy się doczekać jasnej przyszłości i jestem przekonany, że z zaangażowaniem i zaangażowaniem naszego zespołu osiągniemy wielkie rzeczy. Dziękuję za to, że jest częścią naszego zespołu i czekam na współpracę z tobą wszystkim w najbliższych tygodniach i miesiącach. Szczerze, [Twoje imię].
Instrukcje złożone Napisz wprowadzenie do cotygodniowego biuletynu, w tym następujące:
— Moja firma nosi nazwę contoso
- Radochne powitanie
- Podziękowanie zespołowi za ciężką pracę w ciągu kilku trudnych miesięcy
- Pozytywne perspektywy na nadchodzący kwartał
- Podpisane przez SLT
Witaj, zespół firmy Contoso! Chciałem chwilę podziękować za całą ciężką pracę w ciągu ostatnich kilku miesięcy. To było trudne kilka miesięcy, ale wszyscy zebraliśmy się i wykonaliśmy niesamowitą pracę. Jestem z was naprawdę dumny. Patrząc do następnego kwartału, czuję się naprawdę pozytywny. Myślę, że osiągniemy kilka wspaniałych rzeczy. Dzięki ponownie, starszy zespół kierowniczy.

Zawartość podstawowa

Zawartość podstawowa odnosi się do pewnego rodzaju tekstu przetwarzanego lub przekształcanego przez model. Zawartość podstawowa jest zwykle używana w połączeniu z instrukcjami. Prostym przykładem jest tłumaczenie języka. W poniższym przykładzie tekst w języku angielskim będzie traktowany jako podstawowa zawartość, podczas gdy instrukcja "Translate to French:" (Tłumaczenie na język francuski: ).

Monit Zakończenie
Czy możesz mi powiedzieć, jak dostać się do muzeum?
Tłumaczenie na język francuski:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Zawartość podstawowa może być również znacznie dłuższa. W poniższym przykładzie podstawowa zawartość jest sekcją wprowadzającą z wpisu w Wikipedii na temat złożoności czasu, która jest prawie 300 wyrazów długa. Ta zawartość została skrócona w naszej tabeli, aby ułatwić wyświetlanie.

Monit Zakończenie
W nauce komputerowej złożoność czasowa to złożoność obliczeniowa, która opisuje czas potrzebny na uruchomienie algorytmu. Złożoność czasu jest często szacowana przez [...]
Podsumuj poprzedni tekst w kilku zdaniach:
Złożoność czasowa to miara czasu uruchomienia algorytmu. Zazwyczaj jest wyrażona jako funkcja rozmiaru danych wejściowych. Najczęstszą miarą jest złożoność czasu najgorszego przypadku, czyli maksymalny czas wymagany dla danych wejściowych danego rozmiaru.
W nauce komputerowej złożoność czasowa to złożoność obliczeniowa, która opisuje czas potrzebny na uruchomienie algorytmu. Złożoność czasu jest często szacowana przez [...]
TL;DR (Zbyt długo nie przeczytaliśmy)
Złożoność czasowa algorytmu to czas potrzebny na uruchomienie algorytmu. Złożoność czasu jest często szacowana przez zliczanie liczby operacji podstawowych wykonywanych przez algorytm, co oznacza, że każda operacja podstawowa zajmuje stałą ilość czasu do wykonania. Złożoność czasu jest zwykle wyrażana jako funkcja rozmiaru danych wejściowych.

Modele GPT mogą również obsługiwać zawartość podstawową, która jest ustrukturyzowana. W poniższym przykładzie TSV dotyczący piw w Belgii (skrócony do wyświetlania w tym artykule) jest przekazywany do modelu w ramach monitu. Jest w stanie prawidłowo interpretować zawartość i odpowiadać na pytania dotyczące danych.

Monit Zakończenie
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[...]
Jak wiele piw jest mniejszych niż 6% ABV, odwołując się do powyższej tabeli?
W tabeli znajduje się 10 piw, które są mniejsze niż 6% ABV.

Przykłady

Pomyślne monity często polegają na praktyce "jeden strzał" lub "kilka strzałów" uczenia. Odnosi się to do dołączenia jednego lub kilku przykładów żądanego zachowania modelu, zazwyczaj przez dołączenie par wejściowych i wyjściowych. Nie uczy się to w sensie, że model jest trwale zmieniony, ale raczej że przykłady lepiej warunkują, aby model odpowiadał zgodnie z potrzebami tylko dla bieżącego wnioskowania. Używanie monitów bez przykładów jest czasami określane jako nauka "zero-shot". Należy pamiętać, że przy użyciu interfejsu API uzupełniania czatu przykłady uczenia kilka strzałów są zwykle dodawane do tablicy komunikatów w postaci przykładowych interakcji użytkownika/asystenta po początkowym komunikacie systemowym.

typ Edukacja Monit Zakończenie
Zero-shot Nagłówek: Trener pewny kontuzji nie wykolei Warriors
Temat:
Trener jest przekonany, że kontuzja nie wykolei sezonu Warriors. Zespół nadal koncentruje się na swoich celach i że będą nadal ciężko pracować, aby je osiągnąć.
Kilka strzałów Nagłówek: Twins Correa do korzystania z rezygnacji, test bezpłatnej agencji
Temat: Baseball
Nagłówek: Katar World Cup mieć strefy do otrzeźwiania się
Temat: Piłka nożna
Nagłówek: Yates: Fantasy football intel na tydzień 6
Temat: Piłka nożna
Nagłówek: Trener pewny kontuzji nie wykolei Warriors
Temat:
Koszykówki

W powyższym przykładzie pokazano narzędzie uczenia kilku strzałów. Bez przykładów model wydaje się zgadywać w żądanym zachowaniu, podczas gdy w przykładach czysta pokazać modelowi sposób działania. Pokazuje to również moc modelu, może on wywnioskować kategorię etykiety, która jest poszukiwana, nawet bez etykiety "koszykówka" w przykładach.

Cue

Wskazówki działają jako "jumpstart" dla danych wyjściowych modelu, pomagając skierować model do żądanych danych wyjściowych. Często jest to prefiks, na który może budować model. W poniższym przykładzie przedstawiono wskazówek kierujących historię w celu uwzględnienia kluczowych elementów. Wskazówki są często używane wraz z instrukcjami, ale nie zawsze. W poniższych przykładach model jest używany do podsumowania długiej wiadomości e-mail z ogłoszeniem. Wskazówka jest używana w jednym przypadku, aby pomóc skupić dane wyjściowe modelu i zasugerować określony format danych wyjściowych (punktów punktowych) w drugim.

W kontekście instrukcji interfejsu API uzupełniania czatu przyjmują postać komunikatu systemowego, a kilka przykładów strzałów jest wskazywanych przez udostępnienie serii przykładowych interakcji użytkownika/asystenta, aby ułatwić przygotowanie modelu.

Liczba wskazówek Monit Zakończenie
0 Przeglądy wydajności są podstawowym składnikiem naszego podejścia do tworzenia i wydajności w firmie Contoso. [...]
Podsumuj powyższą wiadomość e-mail:
Celem tej wiadomości e-mail jest informowanie pracowników o najnowszych zmianach w środowisku przeglądu wydajności, które jest częścią podejścia firmy Contoso do opracowywania i wydajności. Zmiany obejmują ulepszoną strukturę, uaktualnione środowisko użytkownika narzędzia i ukierunkowane monity. Ponadto istnieje teraz opcjonalna sekcja Starter konwersacji dla pracowników, aby oznaczyć tematy, które chcą omówić ze swoimi menedżerami.
1 Przeglądy wydajności są podstawowym składnikiem naszego podejścia do tworzenia i wydajności w firmie Contoso. [...]
Podsumuj powyższą wiadomość e-mail:
Kluczem na wynos wiadomości jest
firma Contoso poprawia środowisko przeglądu wydajności, zwiększając jego priorytet, oczekiwania i wpływ. Ponadto uaktualniają środowisko użytkownika w narzędziu z poradami, zasobami i wskazówkami. Na koniec dodają wskazówki dotyczące aktywowania podstawowych priorytetów dla całej firmy.
2 Przeglądy wydajności są podstawowym składnikiem naszego podejścia do tworzenia i wydajności w firmie Contoso. [...]
Podsumuj powyższą wiadomość e-mail:
Kluczowe kwestie:
Firma Contoso wprowadza zmiany w środowisku przeglądu wydajności na podstawie opinii pracowników.
• Zmiany obejmują nowy nacisk na podstawowe priorytety, oczekiwania i wpływ; uaktualnione środowisko użytkownika; oraz nowe wskazówki dotyczące podstawowych priorytetów dla całej firmy.
• Przeglądy wydajności to czas, aby zastanowić się nad wcześniejszymi wynikami i uczeniem się, a także planować przyszłe priorytety i możliwości rozwoju.
• Pracownicy i menedżerowie powinni pisać komentarze przed spotkaniem przeglądu wydajności.
• W ciągu roku powinny istnieć co najmniej dwa przeglądy wydajności.
• Czas inwestycji w każdy przegląd powinien pozostać taki sam.

Zawartość pomocnicza

Zawartość pomocnicza to informacje, które model może wykorzystać do wpływania na dane wyjściowe w jakiś sposób. Różni się ona od podstawowej zawartości, ponieważ nie jest głównym celem zadania, ale jest zwykle używana wraz z zawartością podstawową. Typowe przykłady obejmują informacje kontekstowe, takie jak bieżąca data, nazwa użytkownika, preferencje użytkownika itd. W poniższym przykładzie użyto zawartości pomocniczej, aby ułatwić organizowanie zestawu planowanych warsztatów dla użytkownika. Bez obsługi (ważnych tematów) model po prostu wymienia warsztaty (obcięte do wyświetlania), po poinformowaniu o moich ważnych tematach model jest w stanie dokładnie zgrupować spotkania.

Zawartość pomocnicza Monit Zakończenie
Nie zawiera Lista warsztatów:
Opis tytułu
Planowanie rozpoczęcia warsztatów Proszę dołącz do nas, aby rozpocząć nasze warsztaty! Posłuchaj naszych liderów na temat priorytetów i szkoleń między grupami w nadchodzącym roku. Zaproszenie na to wydarzenie zostało już wysłane do wszystkich w [...]
Podsumuj powyższe warsztaty pogrupowane według tematu:
Lista warsztatów:
Planowanie rozpoczęcia warsztatów
-Planowanie warsztatów podsunięcie
- Core MeetUp
— Perspektywy oparte na klientach
-Wpływ i kluczowe obszary fokusu
-Najlepsze rozwiązania
-Przyspieszanie wdrażania aplikacji [...]
With Lista warsztatów:
Opis tytułu
Planowanie rozpoczęcia warsztatów Proszę dołącz do nas, aby rozpocząć nasze warsztaty! Posłuchaj naszych liderów na temat priorytetów i szkoleń między grupami w nadchodzącym roku. Zaproszenie na to wydarzenie zostało już wysłane do wszystkich w [...]
Moje ważne tematy: monitowanie o inżynierię, wyszukiwanie, modele GPT
Podsumuj powyższe warsztaty pogrupowane według moich ważnych tematów:
1. Monituj inżynierię:
- Nowe porady dotyczące inżynierii monitów
- Sztuka inżynierii monitowej
2. Wyszukiwanie:
-Wprowadzenie do wyszukiwania wektorowego z osadzaniem
3. Modele GPT:
- Wprowadzenie do GPT-4
- GPT-35-Turbo dogłębnie.

Najlepsze rozwiązania

  • Bądź konkretny. Pozostaw jak najmniej pola do interpretacji. Ogranicz przestrzeń operacyjną.
  • Bądź opisowy. Używaj analogii.
  • Podwójnie w dół. Czasami może być konieczne powtórzenie się do modelu. Podaj instrukcje przed i po podstawowej zawartości, użyj instrukcji i sygnału itp.
  • Kolejność ma znaczenie. Kolejność prezentowania informacji modelowi może mieć wpływ na dane wyjściowe. Niezależnie od tego, czy umieścisz instrukcje przed zawartością ("podsumuj poniższe..."), czy po ("podsumuj powyższe..."), może mieć wpływ na dane wyjściowe. Nawet kolejność kilku przykładów może mieć znaczenie. Jest to nazywane efektem świeżości.
  • Nadaj modelowi wartość "out". Czasami pomocne może być nadanie modelowi alternatywnej ścieżki, jeśli nie może ukończyć przydzielonego zadania. Na przykład podczas zadawania pytania dotyczącego fragmentu tekstu możesz uwzględnić coś takiego jak "odpowiedź z "nie znaleziono", jeśli odpowiedź nie jest obecna. Może to pomóc modelowi uniknąć generowania fałszywych odpowiedzi.

Wydajne wykorzystanie miejsca

Rozmiar danych wejściowych zwiększa się wraz z każdą nową generacją modeli GPT, jednak nadal będą istnieć scenariusze, które zapewniają więcej danych niż model może obsłużyć. Modele GPT dzielą wyrazy na "tokeny". Chociaż typowe wyrazy wielosypowe są często pojedynczym tokenem, mniej typowe słowa są przerywane w sylabach. Tokeny mogą być czasami intuicyjne, jak pokazano w poniższym przykładzie, które pokazują granice tokenów dla różnych formatów dat. W takim przypadku pisownia całego miesiąca jest wydajniejsza niż w pełni liczbowa data. Bieżący zakres obsługi tokenów pochodzi z 2000 tokenów z wcześniejszymi modelami GPT-3 do 32 768 tokenów z najnowszą wersją 32k najnowszego modelu GPT-4.

Zrzut ekranu przedstawiający ciąg tekstu z wyróżnionymi kolorami delineujący granice tokenu.

Biorąc pod uwagę to ograniczone miejsce, ważne jest, aby używać go tak wydajnie, jak to możliwe.

  • Tabele — jak pokazano w przykładach w poprzedniej sekcji, modele GPT mogą łatwo zrozumieć sformatowane dane tabelaryczne. Może to być wydajny sposób dołączania danych, a nie poprzedzania każdego pola nazwą (np. przy użyciu formatu JSON).
  • Biały znak — kolejne odstępy są traktowane jako oddzielne tokeny, które mogą być łatwym sposobem marnowania miejsca. Spacje poprzedzające wyraz, z drugiej strony, są zwykle traktowane jako część tego samego tokenu co słowo. Uważnie obserwuj użycie białych znaków i nie używaj znaków interpunkcyjnych, gdy tylko miejsce zostanie użyte.

Następne kroki

Dowiedz się więcej o usłudze Azure OpenAI.