
Wprowadzenie
W poprzednej części opracowania poznaliśmy podstawy pracy z ChatGPT oraz ograniczenia tego narzędzia. W tej części zajmiemy się metodami budowania promptów systemowych. Prompt systemowy to zestaw instrukcji, służący jako punkt wyjścia i źródło kontekstu przy rozpoczynaniu nowej sesji (dialogu) ChatGPT. Pamiętajmy, że pierwszy prompt systemowy wysyłany jest do czatu jeszcze przed rozpoczęciem rozmowy przez użytkownika i jego zadaniem jest wyznaczenie ram dalszej pracy.
Zamiast mówić o promptach systemowych możemy też po prostu mówić o promptach - język dyskusji o ChatGPT nie jest specjalnie ujednolicony. W tym opracowaniu używać będziemy pojęcia promptów systemowych żeby podkreślić, że nadają one kontekst i ramy pracy każdej nowootwartej sesji ChatGPT.
Część merytoryczna
Jeszcze zanim zajmiemy się metodami tworzenia promptów i dbania o jakość generowanych przez ChatGPT odpowiedzi, możemy wskazać kilka ważnych ograniczeń w stosowaniu tego narzędzia w sektorze kultury:
- zbyt uproszczone treści, brak niuansu, proste wnioskowanie itp.,
- niskiej jakości język: styl marketingowy, naukowy lub encyklopedyczny,
- niebezpieczeństwo halucynowania lub radykalnego upraszczania opisywanych problemów (szczególnie widoczne np. w zadaniach odwołujących się do historii sztuki),
- brak odwołania do doświadczeń sektora i instytucji (np. wartości budżetów, możliwości lokalowe i promocyjne),
- ignorowanie lokalnego kontekstu i specyfiki działania instytucji,
- homogenizacja kreatywności.
Odpowiednie przygotowanie promptów systemowych może pomóc w obejściu tych ograniczeń. Projektując prompty systemowe, pamiętać warto o zasadzie GIGO (garbage in, garbage out): od jakości promptu systemowego może zależeć jakość odpowiedzi ChatGPT. Na GitHubie znajdziemy obszerną kolekcję promptów systemowych, także tych do generowania treści edukacyjnych.
Ponieważ ChatGPT standardowo proponować nam będzie raczej generyczne odpowiedzi, musimy przygotować odpowiedni prompt systemowy, który sprofiluje jego działanie. Odpowiednio zbudowane polecenie ustali kontekst, instrukcję i niezbędne wskazówki co do wykonania zadania, bezpośrednio przed jego wyrażeniem. Prompt systemowy może określić też rolę, jaką przyjmie ChatGPT, zaproponować styl i ton odpowiedzi oraz wskazać na oczekiwaną postać odpowiedzi, z którą będzie można dalej pracować.
Dostępnych jest kilka podstawowych taktyk budowania promptów systemowych. Można je swobodnie ze sobą mieszać w celu zapewnienia odpowiedniej jakości odpowiedzi.
Stworzenie persony
W projektowaniu interfejsów (UX) persona to reprezentacja użytkownika, w promptach - reprezentacja postaci albo narzędzia. Porównajmy dwie sesje ChatGPT, w których w jednej tworzymy generyczną treść, a w drugiej treść z odwołaniem do persony:
Otrzymaliśmy generyczną odpowiedź w języku encyklopedycznym, z być może halucynowanymi elementami (cele Międzynarodowego Dnia Muzeów). Materiał po krytycznym przeczytaniu i odpowiedniej edycji można wykorzystać jako uzupełnienie informacji prasowej o wydarzeniach, które są organizowane z okazji MDM w naszym muzeum.
Międzynarodowy Dzień Muzeów możemy opisać też w zupełnie innym stylu. Aby to zrobić, wykorzystajmy personę i związany z nią kontekst wypowiedzi:
Wykorzystanie persony radykalnie zmieniło styl odpowiedzi. ChatGPT był w stanie przyjąć rolę edukatorki/edukatora, który musi wytłumaczyć dzieciom ideę MDM. Otrzymaliśmy odpowiedź, która oczywiście wymaga dalszej pracy redakcyjnej, ale może być podstawą np. gazetki ściennej w szkole czy ulotki zapraszającej na wydarzenia dla dzieci, organizowane z okazji święta muzeów.
Persona nie jest tylko rolą - krótki opis nadaje nowy kontekst i tworzy ramy informacyjne, językowe czy gatunkowe oczekiwanej odpowiedzi. W regularnej pracy z ChatGPT można wykorzystywać dopracowane szczegółowo persony takie jak te:
Jesteś ekspertem w dziedzinie historii powszechnej, masz wiedzę o różnych epokach, cywilizacjach i znaczących wydarzeniach. Odpowiadając na pytania podawaj szczegółowy kontekst historyczny i wyjaśnienia. Staraj się, aby twoje odpowiedzi przekazywały jak najwięcej informacji i jednocześnie utrzymuj je interesujące i przystępne.
Jesteś osobą odpowiedzialną za pisanie wniosków o finansowanie wydarzeń kulturalnych w bibliotece. Odpowiadając na pytania uwzględniaj specyfikę pracy instytucji kultury (ograniczenia budżetowe i lokalowe, przepisy prawa o zamówieniach publicznych czy RODO). Używaj języka charakterystycznego dla wniosków i sprawozdawczości.
Personą może być też… maszyna. Oto prompt nawiązujący do opowiadania Stanisława Lema:
Uszczegółowienie
W każdym prompcie możemy bezpośrednio podać kontekst oczekiwanej odpowiedzi i niezbędne informacje, które umożliwią jej poprawne wygenerowanie. Pozostańmy przy temacie Międzynarodowego Dnia Muzeów. Oto prompt, który pozwoli wygenerować wpis o MDN do publikacji w mediach społecznościowych.
Jak widać, kontekst oraz szczegóły oczekiwanej odpowiedzi z powodzeniem możemy podawać w punktach. Tak wygenerowana treść wpisu do mediów społecznościowych wymaga redakcji, ale nie odbiega mocno od naszych oczekiwań wyrażonych w prompcie. ChatGPT był w stanie zaproponować ciekawy język (Niech historia żyje w cyfrowym świecie!), dobre hashtagi i emoji. Jak na kilka sekund pracy to dość dobry efekt, szczególnie, że jednorazowo możemy wygenerować wiele propozycji takiego wpisu. Jeśli w codziennej pracy nie mamy zbyt wiele czasu na zajmowanie się mediami społecznościowymi naszej instytucji, ChatGPT może być realnym wsparciem.
Wadą wygenerowanego tekstu jest brak spełnienia jednego z warunków (bezpośredni zwrot do odbiorców). Powodem tego może być sposób podania instrukcji - efektywniej jest formułować je w jak najbardziej jednoznaczny i czytelny sposób. W kolejnych testach instrukcja nie zwracaj się bezpośredniego do odbiorców okazała się skuteczniejsza od instrukcji unikaj bezpośredniego zwracania się do odbiorców.
Podanie przykładu
W tym przypadku możliwe są dwa podejścia:
- one-shot learning - podajemy pojedynczy przykład,
- few-shot learning - podajemy wiele przykładów (najlepiej, jeśli prezentują one najbardziej oczekiwane efekty, ew. najbardziej ryzykowne przykłady)
Podanie jednego przykładu (najlepiej reprezentującego oczekiwaną odpowiedź) może być wydajniejsze niż wyliczanie wielu - czasem jednak wygodnie jest wskazać kilka przykładów. Można wtedy podać także przykłady reprezentujące potencjalnie najbardziej ryzykowne warianty odpowiedzi - w ten sposób bezpośrednio wskazujemy, jak rozwiązać bardzo prawdopodobny błąd.
Oto przykład promptu, którego celem jest przygotowanie treści do scenariusza warsztatów z digitalizacji fotografii rodzinnych. Pierwszy zaproponowany prompt jest bardzo ogólny:
Efekt jest słabej jakości - musimy poświęcić trochę czasu na ujednolicenie stylu, do tego brakuje tam wątku prawa autorskiego i pojawia się temat cyfrowych albumów fotograficznych, które trudno zdefiniować jednoznacznie. Zmieńmy prompt na bardziej szczegółowy - podajmy przykłady oraz wskażmy interesujące nas szczegóły:
Również i ten wygenerowany tekst wymaga dalszej edycji, ale jest lepszy językowo i odwołuje się do wartości, na jakich nam zależy przy projektowaniu warsztatu. Oczywiście warto zastanowić się, czy tego typu praca nie zostałaby wykonana szybciej bez ChatGPT (korzystania ze strony lub aplikacji, projektowania promptu, edytowania kolejnych wygenerowanych tekstów). Nie ma na szczęście przymusu korzystania z takich narzędzi - jeśli nie są przydatne, po prostu z nich zrezygnujmy.
Planowanie porządku odpowiedzi
Niekiedy realizacja naszego zadania musi mieć kilka etapów. Zamiast oczekiwać od razu wykonania całego zadania, możemy przepracować poszczególne jego części.
Spróbujmy automatycznie przetworzyć informacje na temat skrzyń wiannych do postaci pytań, które wykorzystamy w przygotowaniu szkolnego konkursu o dziedzictwie Kaszub. Użyjmy opisu udostępnianego przez Muzeum w Lęborku.
Prosty prompt nie wygeneruje specjalnie wartościowych pytań:
Taka treść wygenerowana przez ChatGPT 3.5 nie nadaje się do użycia - zbyt wiele musielibyśmy zainwestować w poprawę tego tekstu. Spróbujmy dopracować prompt, wydzielając maszynie poszczególne etapy przygotowania treści pytań. Pamiętajmy, że wciąż korzystać będziemy z gorszej jakościowo wersji ChatGPT, a kreatywny wkład do rozwiązania zadania możemy dostarczyć wyłącznie my - ChatGPT nie ma takich kompetencji.
Odpowiedź ma już zdecydowanie lepszą jakość. Nasz kreatywny wkład do rozwiązania tego zadania polegał na tym, żeby pytania dotyczyły relacji między cechami obiektu a wartościami, jakie w nich rozpoznawano. Znów warto jednak zastanowić się, czy praca włożona w przygotowanie promptu opłacała się i czy samodzielnie nie bylibyśmy w stanie szybciej przygotować podobnych pytań. Z drugiej strony siłą ChatGPT jest praca z dużą ilością tekstu - w przypadku dużych zestawów bardziej obszernych opisów, automatyczne generowanie pytań miałoby sens, nawet jeśli nadal wymagałyby dalszej edycji.
Formatowanie odpowiedzi
To bardzo prosta metoda: budując prompt (systemowy), wskazujemy wprost postać, jaką ma przyjąć wygenerowana odpowiedź. Możemy określić minimalną i maksymalną liczbę słów albo znaków, poprosić o przygotowanie listy elementów, określoną liczbę paragrafów albo wierszy tabeli. ChatGPT dość dobrze radzi sobie z generowaniem odpowiedzi w różnych formatach danych takich jak CSV czy JSON. Oto przykład, w którym dane opisane w przygotowanym przez GUS raporcie Kultura i dziedzictwo narodowe w 2022 r przetworzymy na tabelę i do pliku CSV.
Podgląd tabeli pozwala szybko sprawdzić poprawność danych (ChatGPT czasem popełnia drobne błędy w obliczeniach matematycznych), a dane w postaci CSV możemy skopiować do pliku tekstowego, zapisać jako *.csv i zaimportować do Excela. Znów traktujemy tę odpowiedź jako wstęp do dalszej pracy.
Budując prompty warto stosować wyróżnienia i ograniczniki, oddzielające tekst polecenia od treści do przetworzenia (może to być cudzysłów, nawias kwadratowy itp.). Jeśli polecenie jest skomplikowane, można rozbić je na listę.
Podsumowanie
Ten krótki przegląd metod przygotowywania promptów rozpoczynających sesję ChatGPT i nadających jej kontekst i cel, na pewno nie obejmuje wszystkich metod i wariantów pracy z tym narzędziem. Nic nie zastąpi własnych eksperymentów, dzięki którym będziemy w stanie nauczyć się, jak zmniejszać prawdopodobieństwo odpowiedzi błędnych i słabej jakości. Niestety, praca z ChatGPT to (w naszym przypadku) praca w języku naturalnym, w którym nieraz trudno jednoznacznie wyrazić polecenia. Do tego ten sam prompt wielokrotnie użyty może wygenerować różne odpowiedzi. Każdy poradnik budowy promptów będzie więc z konieczności zestawem zaleceń a nie zbiorem konkretnych fraz, które należy zastosować.
Nie wydaje się, żeby ChatGPT miał być rewolucją w sektorze kultury i dziedzictwa, nawet w takich zastosowaniach jak praca z metadanymi czy PR i promocja. Koszt przygotowywania i dostosowywania promptów może być zbyt duży wobec jakości otrzymywanych odpowiedzi, które i tak zawsze trzeba sprawdzić i poprawić. Jednak w przypadku pracy z większą liczbą tekstów czy jako szybkie wsparcie koncepcyjne może być użyteczny, o ile nauczymy się skutecznie z nim komunikować.
Można też zastanawiać się, czy propagowanie stosowania narzędzi takich jak ChatGPT w sektorze kultury nie jest próbą bezkosztowego zwiększenia efektywności osób w nim pracujących. Jeśli przyjmie się pogląd, że ChatGPT w łatwy sposób zastępuje kompetencje, których zdobycie w tradycyjny sposób wiąże się z dużym kosztem (czasowym i finansowym) lub daje alternatywę dla płatnego outsourcingu, może to skutkować zwiększeniem presji na pracowniczki i pracowników sektora bez zwiększania wynagrodzeń czy zapewnienia odpowiedniej edukacji do stosowania tych narzędzi.