Monituj techniki inżynieryjne

Modele GPT-3, GPT-3.5, GPT-4 i GPT-4o z platformy OpenAI są oparte na monitach. 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 nauki 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ówka

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.

Kij

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.

Wskazówki specyficzne dla scenariusza

Chociaż zasady inżynierii monitów mogą być uogólnione w wielu różnych typach modeli, niektóre modele oczekują wyspecjalizowanej struktury monitów. W przypadku modeli GPT usługi Azure OpenAI istnieją obecnie dwa odrębne interfejsy API, w których wchodzi w grę inżynieria monitu:

  • Interfejs API uzupełniania czatu.
  • Interfejs API uzupełniania.

Każdy interfejs API wymaga formatowania danych wejściowych w inny sposób, co z kolei wpływa na ogólny projekt monitu. Interfejs API uzupełniania czatu obsługuje modele GPT-35-Turbo i GPT-4. Te modele są przeznaczone do wprowadzania sformatowanego w określonej transkrypcji podobnej do czatu przechowywanej wewnątrz tablicy słowników.

Interfejs API uzupełniania obsługuje starsze modele GPT-3 i ma znacznie bardziej elastyczne wymagania wejściowe, ponieważ przyjmuje ciąg tekstu bez określonych reguł formatu.

Techniki w tej sekcji nauczą Cię strategii zwiększania dokładności i uziemienia odpowiedzi generowanych za pomocą modelu dużego języka (LLM). Należy jednak pamiętać, że nawet w przypadku efektywnego używania inżynierii monitu konieczne jest zweryfikowanie odpowiedzi generowanych przez modele. Tylko dlatego, że starannie spreparowany monit działał dobrze dla konkretnego scenariusza, niekoniecznie oznacza, że uogólnia się bardziej szeroko do niektórych przypadków użycia. Zrozumienie ograniczeń usługi LLMs jest równie ważne, jak zrozumienie sposobu wykorzystania ich mocnych stron.

Ten przewodnik nie zagłębia się w mechanikę za strukturą komunikatów na potrzeby uzupełniania czatów. Jeśli nie znasz programowego korzystania z modeli uzupełniania czatów, zalecamy zapoznanie się z naszym przewodnikiem z instrukcjami dotyczącymi interfejsu API uzupełniania czatów.

Uwaga

Wszystkie przykłady w tej sekcji przewodnika zostały przetestowane pod kątem podstawowego modelu GPT-4 w języku angielskim. Jeśli czytasz zlokalizowaną wersję tego artykułu w innym języku, odpowiedzi te reprezentują zlokalizowane tłumaczenie wyników w języku angielskim. Aby dowiedzieć się więcej na temat potencjalnych ograniczeń w zależności od języka używanego do monitowania modelu, zapoznaj się z naszą notatką dotyczącą przejrzystości odpowiedzialnej sztucznej inteligencji.

Uczenie kilku strzałów

Typowym sposobem dostosowywania modeli językowych do nowych zadań jest użycie uczenia kilkukrotnego. W przypadku uczenia kilku strzałów zestaw przykładów szkoleniowych jest dostarczany w ramach monitu o podanie dodatkowego kontekstu dla modelu.

W przypadku korzystania z interfejsu API uzupełniania czatów seria komunikatów między użytkownikiem i asystentem (napisana w nowym formacie monitu) może służyć jako przykłady uczenia się przy użyciu kilku zdjęć. Te przykłady mogą służyć do tworzenia podstaw modelu, aby reagować w określony sposób, emulować określone zachowania i inicjować odpowiedzi na typowe pytania.

Komunikat systemowy Przykłady kilku strzałów
Asystent to inteligentny czatbot, który pomaga użytkownikom odpowiedzieć na pytania związane z opodatkowaniem.
Instrukcje
- Odpowiadanie tylko na pytania związane z podatkami.
- Jeśli nie masz pewności co do odpowiedzi, możesz powiedzieć "Nie wiem" lub "Nie jestem pewien" i polecam użytkownikom przejść do witryny internetowej IRS, aby uzyskać więcej informacji.
Użytkownik — "Kiedy muszę złożyć podatki?"
Asystent - "W 2023 r. musisz złożyć podatki do 18 kwietnia. Data przypada po zwykłym terminie 15 kwietnia, ponieważ 15 kwietnia spada w sobotę w 2023 roku. Aby uzyskać więcej informacji, zobacz https://www.irs.gov/filing/individuals/when-to-file "

Użytkownik — "Jak mogę sprawdzić stan zwrotu podatku?"
Asystent — "Możesz sprawdzić stan zwrotu podatku, odwiedzając stronę https://www.irs.gov/refunds "

W powyższej tabeli opisano podstawową strukturę monitów, ale aby uzyskać szczegółowe wyjaśnienie dokładnego formatu monitu, należy zapoznać się z przewodnikiem ukończenia czatu.

Scenariusze niezwiązane z czatem

Interfejs API uzupełniania czatu jest zoptymalizowany pod kątem pracy z konwersacjami wieloeściowymi, ale może być również używany w scenariuszach niezwiązanych z czatem. Na przykład w przypadku scenariusza analizy tonacji można użyć następującego monitu:

Komunikat systemowy User Asystent
Jesteś asystentem zaprojektowanym do analizowania tonacji na podstawie danych mowy. Użytkownicy wkleją ciąg tekstu i odpowiesz oceną odpowiedzi osoby mówiącej. Szybkość w skali od 1 do 10 (10 jest najwyższa). Wyjaśnij, dlaczego ta ocena została podana. witam dziękuję za telefon contoso apteki, który jestem mówię dziś i rozumiem frustracji mary um można powiedzieć mi, co dokładnie próbujesz zrobić OK uh z pewnością szczęśliwy, aby sprawdzić, że dla ciebie jeden moment proszę zobaczyć tutaj, że jesteś na ogólnej formie lipitor jest to, że prawo OK uh więc zobaczyć, że lekarz przestał przepisywał te leki w dwudziestu rzeczywiście OK uh Tak byłbym szczęśliwy, aby sprawdzić, że dla ciebie uh, ponieważ czasami istnieje luka w systemie i po prostu nie jest zgłaszane, więc pozwól mi spojrzeć tutaj tylko chwilę, więc widzę tutaj, że lekarz miał te leki przepisane od dwudziestu do dwudziestu dwudziestu ok um tak zgodnie z najnowszymi rekordami uh dostarczony przez gabinet lekarza jesteś teraz na innym leku lubicie nas iść do przodu i wypełnić tę receptę dla ciebie do odbioru trochę formy w pięćset miligramów uh jesteś bardzo mile widziane mary proszę daj nam znać, czy jest coś innego, co możemy zrobić dla Ciebie dzisiaj. Ocena tonacji: 8
Prelegent w tym tekście wydaje się być uprzejmy, pomocny i cierpliwy podczas rozwiązywania problemów klienta. Pośmiń czas na sprawdzenie informacji, przedstawienie jasnych wyjaśnień i zaoferowanie pomocy. Jednak ocena nie jest równa 10, ponieważ nadal istnieje wskazówka niepewności w niektórych częściach konwersacji, co może nie przekazać pełnej pewności klientowi.

Rozpocznij od przejrzystych instrukcji

Informacje o sekwencji są wyświetlane w monitach. Wynika to z faktu, że modele stylów GPT są tworzone w określony sposób, który definiuje sposób przetwarzania danych wejściowych. Nasze badania sugerują, że informowanie modelu o zadaniu, które ma wykonać na początku monitu, przed udostępnieniem dodatkowych informacji kontekstowych lub przykładów, może pomóc w generować dane wyjściowe o wyższej jakości.

Uwaga

Mimo że stosowanie tej techniki jest nadal ogólnie zalecane, w przeciwieństwie do poprzednich wersji modelu (GPT-3 i poprzednich), nasze testy wykazały, że odpowiedź modelu z modelami ChatGPT i GPT-4 była taka sama, niezależnie od tego, czy technika jest używana. W poniższym przykładzie widzimy, że dodanie instrukcji "Kilka źródeł ... erupcja" na początku lub na końcu monitu nie spowodowała żadnych zmian w końcowej odpowiedzi modelu.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Twoim zadaniem jest sprawdzenie, czy instrukcja "Kilka źródeł wspomniało o szansie innej dużej erupcji" jest obsługiwana przez określony cytat z następującego zestawu fragmentów kodu.
---
URYWKI
[1] 14 procent szans megaquake uderza w Seattle, eksperci twierdzą
SEATTLE - Istnieje 14 procent szansy wielkości 9 trzęsienie ziemi Cascadia uderzając Seattle w ciągu najbliższych 50 lat, US Geological Survey szacuje. "Niestety, nie możemy...

[2] Eksperci od trzęsienia ziemi ułożyli najnowsze perspektywy dla Seattle "Naprawdę Big One"
"Mówimy, że istnieje około 14% szans na kolejne około wielkości-9 trzęsienie ziemi występujące w ciągu najbliższych 50 lat", powiedział geofizysta na Uniwersytecie Waszyngtonu...
---
Czy instrukcja "Kilka źródeł wspomina o szansie na kolejną dużą erupcję" bezpośrednio dorozumianą lub podaną przez fragmenty kodu?
Nie, instrukcja nie jest bezpośrednio dorozumiana ani określona przez fragmenty kodu. Fragmenty wspomnieć szansę "megaquake" i "wielkości 9 trzęsienie ziemi Cascadia" uderzając Seattle w ciągu najbliższych 50 lat, ale nie wspominając o szansie na kolejną dużą erupcję.

Powtórz instrukcje na końcu

Modele mogą być podatne na stronniczość recency, co w tym kontekście oznacza, że informacje na końcu monitu mogą mieć większy wpływ na dane wyjściowe niż informacje na początku monitu. Dlatego warto eksperymentować z powtarzaniem instrukcji na końcu monitu i ocenianiem wpływu na wygenerowaną odpowiedź.

Podstaw dane wyjściowe

Odnosi się to do dołączania kilku słów lub fraz na końcu monitu w celu uzyskania odpowiedzi modelu, która jest zgodna z żądanym formularzem. Na przykład użycie wskazówek, takich jak “Here’s a bulleted list of key points:\n- ” może pomóc w upewnieniu się, że dane wyjściowe są sformatowane jako lista punktorów.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Odpowiedz jak najwięcej słów. John Smith jest żonaty z Lucy Smith. Mają pięcioro dzieci, a on pracuje jako inżynier oprogramowania w firmie Microsoft. Jakie zapytania wyszukiwania należy wykonać, aby to sprawdzić? ## Jedno z możliwych zapytań wyszukiwania to: "John Smith poślubił Lucy Smith pięć dzieci inżyniera oprogramowania Microsoft"

W powyższym wierszu polecenia tekst Jednym z możliwych zapytań wyszukiwania jest: podstawy modelu w celu utworzenia pojedynczego danych wyjściowych. Bez tego sygnału model tworzy kilka zapytań wyszukiwania jako dane wyjściowe.

Dodawanie jasnej składni

Używanie jasnej składni monitu — w tym znaków interpunkcyjnych, nagłówków i znaczników sekcji — ułatwia komunikację intencji i często ułatwia analizowanie danych wyjściowych.

W poniższym przykładzie separatory (--- w tym przypadku) zostały dodane między różnymi źródłami informacji lub kroków. Umożliwia to użycie --- jako warunku zatrzymania dla generowania. Ponadto nagłówki sekcji lub zmienne specjalne są prezentowane w wielkich literach, aby je odróżnić.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Odczytasz akapit, a następnie wydasz zapytania do wyszukiwarki, aby ją sprawdzić. Wyjaśnij również zapytania.
---
AKAPIT
John Smith jest żonaty z Lucy Smith. Mają pięcioro dzieci, a on pracuje jako inżynier oprogramowania w firmie Microsoft. Jakie zapytania wyszukiwania należy wykonać, aby to sprawdzić?
---
ZAPYTANIA
1. "John Smith Microsoft" - Aby sprawdzić, czy John Smith jest rzeczywiście zatrudniony w firmie Microsoft.
2. "John Smith Lucy Smith" - Aby sprawdzić, czy John Smith jest żonaty z Lucy Smith.
3. "Dzieci Johna Smitha" - Aby sprawdzić, czy John Smith ma pięcioro dzieci.

Jeśli nie masz pewności, jakiej składni używać, rozważ użycie języka Markdown lub XML. Modele zostały wytrenowane na dużej ilości zawartości internetowej w plikach XML i Markdown, co może zapewnić lepsze wyniki.

Podział zadania

Duże modele językowe (LLM) często działają lepiej, jeśli zadanie jest podzielone na mniejsze kroki. Na przykład w wierszu zapytania wyszukiwania, do którego odwołuje się wcześniej, monit może zostać zrestrukturyzowany tak, aby model został najpierw poinstruowany o wyodrębnienie odpowiednich faktów, a następnie poinstruowany o wygenerowanie zapytań wyszukiwania, których można użyć do zweryfikowania tych faktów.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Odczytasz akapit, a następnie wydasz zapytania do wyszukiwarki, aby ją sprawdzić.
---
AKAPIT
John Smith jest żonaty z Lucy Smith. Mają pięcioro dzieci, a on pracuje jako inżynier oprogramowania w firmie Microsoft. Jakie zapytania wyszukiwania należy wykonać, aby to sprawdzić?
---
Teraz wyodrębnisz twierdzenia faktyczne i wydasz zapytania, aby je sprawdzić. Podczas wydawania zapytania użyj funkcji SEARCH("query")

TWIERDZENIA RZECZOWE
1. John Smith jest żonaty z Lucy Smith
2. Mają pięcioro dzieci
3. Pracuje jako inżynier oprogramowania w firmie Microsoft

ZAPYTANIA
SEARCH("John Smith poślubił Lucy Smith")
SEARCH("Rozmiar rodziny Johna Smitha")
SEARCH("John Smith Microsoft software engineer")

Zwróć uwagę na użycie jasnej składni w celu odróżnienia sekcji i podstaw danych wyjściowych. W tym prostym przykładzie podzielenie zadania z jednego na dwa kroki nie jest bardzo dramatyczne, ale podczas próby wykonania tego dla większego fragmentu tekstu z wieloma twierdzeniami faktycznymi podzielenie zadania może mieć znaczącą różnicę.

Korzystanie z przystępnych cen

Czasami możemy uzyskać model, aby użyć przystępności , zamiast polegać na własnych parametrach na potrzeby informacji i odpowiedzi. Na przykład wyszukiwanie może być przystępną ceną, aby ułatwić eliminowanie problemów z odpowiedziami w sieci szkieletowej oraz uzyskiwanie aktualnych informacji.

Jednym z prostych sposobów korzystania z przystępności jest zatrzymanie generowania po wygenerowaniu wywołań cenowych przez model, a następnie wklej wyniki z powrotem do monitu. Poniżej znajduje się przykład tego, co może być wywołanie kontynuacji po wykonaniu powyższych wywołań SEARCH . Zwróć uwagę na wklejenie wyników wyszukiwania w wierszu polecenia i zastąpienie poprzednich wywołań SEARCH .

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Przeczytasz akapit, wyodrębnisz twierdzenia faktyczne, a następnie użyjesz wyników wyszukiwarki, aby je sprawdzić
---
AKAPIT
John Smith jest żonaty z Lucy Smith. Mają pięcioro dzieci, a on pracuje jako inżynier oprogramowania w firmie Microsoft. Jakie zapytania wyszukiwania należy wykonać, aby to sprawdzić?
---
TWIERDZENIA RZECZOWE
- John Smith jest żonaty z Lucy Smith
- John i Lucy mają pięć dzieci
- John pracuje jako inżynier oprogramowania w firmie Microsoft
---
Poniżej przedstawiono różne zapytania wyszukiwania wydane w celu zbadania powyższych roszczeń:
ZAPYTANIA WYSZUKIWANIA
- John Smith poślubił Lucy Smith
- Liczba dzieci Jana Smitha
- John Smith software engineer Microsoft
---
Poniżej przedstawiono fragmenty wyników wyszukiwania:
URYWKI:
[1] Ślub Johna Smitha odbył się 25 września 2012 ...
[2] John Smith towarzyszył swojej żonie Lucy na imprezie
[3] John towarzyszył do gry w piłkę nożną przez jego dwie córki i trzech synów
[4] Po spędzeniu 10 lat w Microsoft, Smith założył własny startup, Tailspin Toys
John M jest smithem miasta, a on ożenił się z Fioną. Mają córkę o imieniu Lucy
---
Biorąc pod uwagę fragmenty kodu, fakt sprawdza każdy z powyższych roszczeń faktycznych:
- John Smith jest żonaty z Lucy Smith: Potwierdzone. Fragment kodu [1] i [2] wymieniają żonę Johna Smitha jako Lucy.

- John i Lucy mają pięć dzieci: Potwierdzone. Fragment kodu [3] wspomina, że Jan towarzyszył jego dwie córki i trzech synów.

- John pracuje jako inżynier oprogramowania w firmie Microsoft: częściowo potwierdzone. Fragment kodu [4] wspomina, że John spędził 10 lat w firmie Microsoft, ale nie stwierdza jawnie, że obecnie tam pracuje. Dalsze badania mogą być konieczne, aby potwierdzić jego obecny status zatrudnienia.

Łańcuch myślowych monitów

Jest to odmiana techniki podziału zadania . Zamiast dzielić zadanie na mniejsze kroki, w tym podejściu odpowiedź modelu jest poinstruowana, aby kontynuować krok po kroku i przedstawić wszystkie zaangażowane kroki. Zmniejsza to możliwość niedokładności wyników i ułatwia ocenę odpowiedzi modelu.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Kto był najbardziej ozdobiony (maksymalny medal) indywidualny sportowiec w igrzyskach olimpijskich, które odbyły się w Sydney? Wykonaj podejście krok po kroku w odpowiedzi, przytaczaj źródła i podawaj rozumowanie przed udostępnieniem ostatecznej odpowiedzi w poniższym formacie: ODPOWIEDŹ: <name> Krok 1: Określenie roku igrzysk olimpijskich w Sydney. Igrzyska olimpijskie w Sydney odbyły się w roku 2000.

Krok 2. Znajdź listę indywidualnych sportowców, którzy zdobyli wiele medali na Igrzyskach Olimpijskich w Sydney w 2000 roku.

Według oficjalnej strony internetowej Igrzysk Olimpijskich, było kilku indywidualnych sportowców, którzy zdobyli wiele medali na Igrzyskach Olimpijskich w Sydney w 2000 roku. Niektóre z godnych uwagi nazw to:
• Ian Thorpe (Australia) - 3 złoto, 2 srebro, 0 brąz
• van den Hoogenband (Holandia) - 2 złote, 0 srebro, 2 brąz
• Lenny Krayzelburg (USA) - 3 złote, 0 srebro, 0 brąz
• Inge de Bruijn (Holandia) - 3 złote, 1 srebro, 0 brąz

Krok 3. Określenie sportowca z większością medali. Po przejrzeniu listy indywidualnych sportowców, którzy zdobyli wiele medali na Igrzyskach Olimpijskich w Sydney w 2000 roku, widzimy, że sportowiec z największą liczbie medali jest Ian Thorpe z Australii, który zdobył łącznie 5 medali (3 złote i 2 srebro).

W związku z tym ODPOWIEDŹ brzmi: Ian Thorpe.

Określanie struktury danych wyjściowych

Użycie monitu o określenie struktury danych wyjściowych może mieć znaczący wpływ na charakter i jakość wyników. Czasami dane wejściowe komunikatu systemowego jako "tylko zapis prawdziwych faktów" lub "nie sfabrykuj informacji" mogą nie być odpowiednie środki zaradcze. Zamiast tego, prosząc o odpowiedź na model, aby uwzględnić również cytaty, może pomóc zmniejszyć częstość występowania nieprawidłowych odpowiedzi.

Jeśli poinstruujesz model, aby przytaczał materiał źródłowy podczas wykonywania instrukcji, te instrukcje są znacznie bardziej prawdopodobne, aby zostały uziemione. Prośba o cytaty sprawia, że model musi popełniać dwa błędy za każdym razem, gdy generuje odpowiedź: pierwszy błąd jest sprośną odpowiedzią, a drugi jest nieprawidłowym cytatem. Należy pamiętać, że im bliżej jest tekst, który obsługuje, tym krótsza odległość przed modelem musi przewidzieć cytat, co sugeruje, że cytaty wbudowane są lepszymi środki zaradcze w przypadku generowania fałszywej zawartości niż cytaty na końcu zawartości.

Podobnie, jeśli poprosisz model o wyodrębnienie faktycznych stwierdzeń z akapitu, może wyodrębnić złożone oświadczenia, takie jak "X robi Y I Z" (co może być trudniejsze do zweryfikowania). Można tego uniknąć, określając strukturę danych wyjściowych, taką jak (jednostka1, relacja, jednostka2).

W poniższych przykładach pokazano użycie cytatów i kierowanie odpowiedzi modelu w celu dopasowania do zdefiniowanej struktury.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji Wyświetl listę różnych zachowań, które są prezentowane przez agenta obsługi klienta w poniższej konwersacji.
---
witam dziękuję za telefon contoso apteki, który jestem mówię dziś i rozumiem frustracji mary um można powiedzieć mi, co dokładnie próbujesz zrobić OK uh z pewnością szczęśliwy, aby sprawdzić, że dla ciebie jeden moment proszę zobaczyć tutaj, że jesteś na ogólnej formie lipitor jest to, że prawo OK uh więc zobaczyć, że lekarz przestał przepisywał te leki w dwudziestu rzeczywiście OK uh Tak byłbym szczęśliwy, aby sprawdzić, że dla ciebie uh, ponieważ czasami istnieje luka w systemie i po prostu nie jest zgłaszane, więc pozwól mi spojrzeć tutaj tylko chwilę, więc widzę tutaj, że lekarz miał te leki przepisane od dwudziestu do dwudziestu dwudziestu ok um tak zgodnie z najnowszymi rekordami uh dostarczony przez gabinet lekarza jesteś teraz na innym leku lubicie nas iść do przodu i wypełnić tę receptę dla ciebie do odbioru trochę formy w pięćset miligramów uh jesteś bardzo mile widziane mary proszę daj nam znać, czy jest coś innego, co możemy zrobić dla Ciebie dzisiaj.
---
Jak była odpowiedź agenta obsługi klienta?
Klasyfikuj i wyświetlaj w dół ich różne zachowania i przytaczaj przyczynę klasyfikacji przy użyciu formatu BEHAVIOR("reason")
1. Uprzejme zachowanie powitania("Agent rozpoczyna rozmowę z uprzejmym powitaniem i prosi o imię rozmówcy")
2. Empatyczne ZACHOWANIE("Agent przyznaje frustrację Maryi i stara się zrozumieć jej obawy")
3. Zachowanie uważne ("Agent nasłuchuje problemu klienta i prosi o więcej szczegółów")
4. Proaktywne ZACHOWANIE("Agent oferuje sprawdzenie problemu dla klienta")
5. Zachowanie informacyjne ("Agent dostarcza odpowiednie informacje o historii recept klienta")
6. Dokładne ZACHOWANIE("Agent sprawdza wszelkie możliwe luki w systemie i zapewnia pełną odpowiedź")
7. Potwierdzanie ZACHOWANIA("Agent potwierdza bieżące leki z klientem")
8. Zachowanie zorientowane na rozwiązanie ("Agent oferuje wypełnienie nowej recepty dla klienta")
9. Uprzejme ZACHOWANIE("Agent dziękuje klientowi i oferuje dalszą pomoc w razie potrzeby")
Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Grupuj następujące nagłówki wiadomości w kategorie tematów na podstawie wzorców widocznych w tekście. Należy również wspomnieć o tym, jak zdefiniowano te kategorie.
Format danych wyjściowych:
{
"TOPIC_NAME": "",
"NAGŁÓWKI": [],
"ROZUMOWANIE": ""
}

Wejściowe nagłówki wiadomości:
1. "Od książek do prezentacji w 10s z AR + ML"
2. "Demo from 1993 of 32-letni Yann LeCun pokazujący pierwszy na świecie Convolutional Network for Text Recognition"
3. "First Order Motion Model applied to animowanie obrazów"
4. "Robinhood i inni brokerzy dosłownie blokując zakup $GME, $NOK, $BB, $AMC; zezwalaj na sprzedaż"
5. "Akcje United Airlines spadły o ponad 5% handlu przedrynkowego"
Wyjście:

{
"ARTIFICIAL_INTELLIGENCE": {
"NAGŁÓWKI": [
"Od książek do prezentacji w 10s z AR + ML",
"Pokaz z 1993 roku z 32-letni Yann LeCun pokazujący pierwszy na świecie Convolutional Network for Text Recognition",
"First Order Motion Model zastosowany do animowania obrazów"
],
"ROZUMOWANIE": "Te nagłówki są związane ze sztuczną inteligencją, uczeniem maszynowym i ich aplikacjami w różnych dziedzinach".
},
"FINANCIAL_MARKETS": {
"NAGŁÓWKI": [
"Robinhood i inni brokerzy dosłownie blokując zakup $GME, $NOK, $BB, $AMC; zezwalaj na sprzedaż",
"Akcje United Airlines spadły o ponad 5% handlu przedrynkowego",
"Bitcoin był prawie 20.000 dolarów rok temu dzisiaj"
],
"ROZUMOWANIE": "Te nagłówki są związane z rynkami finansowymi, akcjami, kryptowalutami i platformami handlowymi".
}
}

Parametry temperatury i Top_p

Zmiana parametru temperatury zmienia dane wyjściowe modelu. Parametr temperatury można ustawić z zakresu od 0 do 2. Wyższa wartość, na przykład 0,7 sprawia, że dane wyjściowe są bardziej losowe i generują bardziej rozbieżne odpowiedzi, podczas gdy niższa wartość, na przykład. 0.2 sprawia, że dane wyjściowe są bardziej skoncentrowane i konkretne. Fikcyjna historia może być generowana przy użyciu wyższej temperatury. Podczas generowania dokumentu prawnego zaleca się użycie znacznie niższej temperatury. Top_probability jest innym parametrem i jest podobny do temperatury, ponieważ kontroluje również losowość odpowiedzi modelu, ale robi to w inny sposób. Ogólne zalecenie polega na zmianie jednego z tych dwóch parametrów jednocześnie, a nie obu.

Podaj kontekst uziemienia

Jednym z najskuteczniejszych sposobów zapewnienia wiarygodnych odpowiedzi jest przekazanie danych modelu w celu rysowania odpowiedzi z (danych uziemienia). Jeśli twój przypadek użycia opiera się na aktualnych, niezawodnych informacjach i nie jest wyłącznie scenariuszem kreatywnym, zdecydowanie zalecamy dostarczanie danych uziemowych. Ogólnie rzecz biorąc, im bliżej można uzyskać materiał źródłowy do ostatecznej formy odpowiedzi, tym mniej pracy, jaką musi wykonać model, co oznacza, że istnieje mniej możliwości wystąpienia błędu. Oto przykład, w którym system jest dostarczany w ostatnim blogu opisującym uruchomienie biblioteki GPT-4 w usłudze Azure OpenAI Service i poproszono o wymienienie niektórych wczesnych klientów.

Komunikat systemowy User Asystent
Jesteś asystentem sztucznej inteligencji, który ułatwia osobom znajdowanie informacji. Przekażesz odpowiedzi wyłącznie z poniższego tekstu i odpowiesz w 100 wyrazach lub mniej:
"W firmie Microsoft nieustannie odkrywamy nowe sposoby wyzwalania kreatywności, odblokowywania produktywności i zwiększania poziomu umiejętności, dzięki czemu więcej osób może korzystać ze sztucznej inteligencji. Dzięki temu nasi klienci mogą ...

… tym samym zmniejszenie prawdopodobieństwa, że model generuje szkodliwą reakcję".1

Odpowiedz w 100 słowach lub mniej. Używaj list punktorów wszędzie tam, gdzie jest to możliwe.
Kto jest niektórymi z pierwszych klientów modeli GPT-4 usługi Azure OpenAI Service? Oto niektóre z pierwszych klientów modeli GPT-4 usługi Azure OpenAI Service:
- Epic Healthcare: Planują korzystać z GPT-4, aby pomóc lekarzom i pielęgniarkom poświęcać mniej czasu na wprowadzanie danych i badanie.
- Coursera: Używają usługi Azure OpenAI Service z językiem GPT-4 w celu utworzenia nowego środowiska szkoleniowego opartego na sztucznej inteligencji na swojej platformie.
- Coca-Cola: Używają platformy Azure OpenAI do tworzenia centrum wiedzy i planowania wykorzystania wielomodalnych funkcji GPT-4 na potrzeby marketingu, reklamy, public relations i relacji z klientami.
— Inne firmy o wszystkich rozmiarach używają sztucznej inteligencji platformy Azure do ulepszania środowisk klientów, podsumowywania długiej zawartości, pomocy w pisaniu oprogramowania i zmniejszaniu ryzyka poprzez przewidywanie odpowiednich danych podatkowych.

1 Tekst z witryny Azure OpenAI GPT-4 — blog startowy.

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.