Jak lepiej zadawać pytania chatGPT

Obecnie zawodowo zajmuję się projektem, w którym używam modelu GPT z openAI. Praca z ”czystym” modelem GPT wygląda trochę inaczej niż prowadzenie rozmowy z chatemGPT – czat jest „nakładką” na model, przez co używanie go sprawia wrażenie prowadzenia zwykłej, ludzkiej rozmowy. Czat jest już poinstruowany jak ma się zachowywać i odpowiadać na pytania, podczas gdy doprowadzenie czystego modelu GPT do takiego stanu wymaga wiedzy z tzw. prompt engineeringu. Nie będę wchodzić w szczegóły co to znaczy, w skrócie model trzeba bardziej naprowadzić i poinstruować, aby zwrócił to, czego oczekujemy. Doprowadziło to do tego, że musiałam nauczyć się pewnych trików jak powinno rozmawiać z modelem i okazuje się… że na chatGPT też część z nich działa! Dlaczego więc się z wami nimi nie podzielić.

Zamiast dywagować czy wkrótce AI zabierze nam pracę albo kłócić się czy chatGPT działa czy nie działa… warto spróbować zrobić coś pożytecznego i nauczyć się jak z nim rozmawiać. Rzeczywistość się zmienia, nasza praca też się pewnie wkrótce zmieni, zatem co jest bardziej praktyczniejsze od próby dostosowania się do tej nowej rzeczywistości.

Post inspirowany jest kursem “ChatGPT prompt engineering for developers”, który powstał w kolaboracji openAI z deeplearning.ai. Jego przerobienie zajmuje ok. 3h, jednak skupia się on przede wszystkim na prompt engineeringu, czyli bardziej pracy z czystym modelem, a nie rozmowy z chatGPT. Mój artykuł podsumowuje wszystkie rady wspomniane w kursie, które przetestowałam i działają także z chatemGPT.

ChatGPT jest jak inteligentny student pierwszego roku

Jeżeli dobrze zadamy mu pytanie, wytłumaczymy kontekst i przybliżymy sytuację to są większe szanse, że dobrze odpowie na to pytanie. Może za to nie znać odpowiedzi na źle sprecyzowane pytanie wyrwane z kontekstu. W dodatku, tak jak student, fakt, że źle odpowiedział za pierwszym razem nie wyklucza, że jest w stanie dojść do poprawnej odpowiedzi. Co więcej (i tu zaczyna się naprawdę ciekawie), jeżeli damy mu za mało czasu na odpowiedzenie na trudne pytanie, to może się pomylić. Tak jak student wywołany do tablicy nie jest w stanie szybko rozwiązać trudnego zadania w krótkim czasie, tak chatGPT może potrzebować więcej czasu. Wkrótce się dowiesz jak mu to umożliwić.

W kursie legenda uczenia maszynowego Andrew Ng porównuje zadawanie pytań czatu do tworzenia modelu ML – rzadko kiedy uda nam się zrobić to dobrze za pierwszym razem. Budowanie modelu jest procesem iteracyjnym, który polega na kilkukrotnym przebudowywaniu, ulepszaniu, zmienianiu i poprawianiu modelu. Z prompt engineeringiem i zadawaniem pytań jest podobnie. Nie ważne jak ci wyjdzie za pierwszym razem, ważne jaki rezultat uzyskasz na końcu.

Disclaimer: chatGPT nie jest deterministyczny oraz nieustannie się zmienia, dlatego możesz otrzymać inne odpowiedzi na tak samo zadane pytania lub poniższe wskazówki mogą z czasem zacząć działać gorzej lub nawet przestać działać.

1. Dodaj kontekst do pytania

W każdym poradniku jak zadawać pytania na pierwszym miejscu przeczytasz „zadawaj precyzyjne pytania„. Jest to oczywiście rada numer jeden, ale może ona doprowadzić do myślenia, że im mniej słów tym lepiej. Precyzyjne nie zawsze znaczy zwięzłe i krótkie. Czasami wręcz odwrotnie – rozbudowanie pytania i zapewnienie kontekstu pozwoli ci osiągnąć lepszy rezultat. Wyobraź sobie, że zadajesz jednozdaniowe pytanie studentowi versus wyobraź sobie, że zadajesz je uprzednio tłumacząc kontekst i jakiego typu odpowiedzi oczekujesz. W którym scenariuszu student lepiej sobie poradzi? Pewnie w drugim, ponieważ dodanie kontekstu raczej pomoże niż zaszkodzi. Tak samo zadziała chatGPT. I żeby było jasne – nie chodzi o to, żeby nadmiernie lać wodę i niepotrzebnie się rozpisywać, chodzi o to, że model wie tylko tyle ile mu przekażesz i kondensowanie pytania może nie być zawsze najlepszą strategią.

Przykład:

  • Jak zostać analitykiem danych?” generuje właściwą, ale bardzo długą i zachowawczą odpowiedź: najpierw uzyskaj wykształcenie, naucz się umiejętności technicznych, praktykuj, ucz się na bieżąco itd.
  • „Obecnie pracuje z excelem, ale chciałabym zostać analitykiem danych. Czego powinnam się nauczyć, aby nim zostać? Jakie umiejętności doceniają pracodawcy? Jakie narzędzia są najważniejsze?” listuje konkretne umiejętności: programowanie, bazy danych i SQL, statystyka, narzędzia do wizualizacji danych itd.

2. Podaj przykłady odpowiedzi

Przykład mówi więcej niż tysiąc słów (to chyba nie tak szło?). Dlaczego w szkole i na kursach online podają przykłady? Ba, dlaczego ja w tym artykule podaje przykłady? Bo dzięki nim rozumiemy duuuużo więcej. ChatGPT też. To szczególnie ważna zasada podczas prompt engineeringu – jeżeli instrukcje to za mało, pokaż jak powinna wyglądać zamierzona odpowiedź na podstawie przykładu. Studentowi też by pomogła przykładowa odpowiedź, prawda?

Przykład:

  • Jaki pomysł na biznes z rękodziełem proponujesz? zwraca mało konkretną odpowiedź typu sklep z rękodziełami, warsztaty, sklep online…
  • Jaki pomysł na biznes z rękodziełem proponujesz? Myślałam nad stworzeniem unikatowych krzeseł. Połączyłabym malarstwo z stolarstwem. Czy możesz zaproponować coś podobnego? .Czat rozumie za pomocą przykładu w którym kierunku powinien podążać. Jego odpowiedź to podobne pomysły: meble artystyczne, akcesoria wnętrzarskie, przedmioty do ogrodu, restauracja mebli.

3. Unikaj wielokrotnych pytań i wątków

Zadaj jedno pytanie w danym czasie, inaczej czat zaczyna wariować. Jak zareaguje student na 3 różne pytania? Nie będzie wiedział od czego zacząć i zacznie odpowiadać na jedno z nich. Czat jest jeszcze gorszy w tym aspekcie, zaczyna zwracać odpowiedź mieszając różne pytania, przez co może nawet nie odpowiedzieć na żadne z nich.

Przykład:

  • „Jak się nauczyć analizy danych? Myślałam o SQL, co o tym myślisz?” . Wprawdzie czat odpowiada, że to dobra decyzja, ale następnie szczegółowo punktuje jak się nauczyć SQL, a przecież nie o tym było pytanie.

4. Daj czatowi czas pomyśleć

To moje ulubione. Choćby student był niesamowicie jak inteligentny, to jeżeli weźmiesz go do tablicy i każesz na szybko rozwiązać trudne zadanie w krótkim czasie, to może nie dać rady. Czy to znaczy, że student jest za głupi na rozwiązanie tego zadania? Nie, po prostu dostał za mało czasu. I uwaga… podobnie jest z modelem GPT! Jak dasz mu skomplikowane zadanie i zapytasz od razu o rozwiązanie, to może nie być w stanie zwrócić poprawnej odpowiedzi. Jak temu zaradzić? Rozpisz krok po kroku co trzeba zrobić, aby rozwiązać zadanie. Czat podąży za wypisanymi krokami, co zwiększy prawdopodobieństwo, że rozwiąże zadanie poprawnie. 

Przykład:

  • Wrzucając fragment tekstu po angielsku i każąc czatowi przetłumaczyć tekst na język polski i wyliczyć ile razy pojawia się jakie słowo czat głupieje. Zwraca odpowiedź, która jest niepoprawna – część słów jest przetłumaczona, a część zostawiona w języku angielskim. Dla czata to zadanie jest za trudne, żeby je od razu rozwiązać.
  • Wrzucając fragment tekstu po angielsku, a następnie wypisując kroki: 1) przetłumacz tekst na język polski, 2) wypisz wszystkie słowa, 3) policz ile razy występuje każde słowo. Czat zwraca poprawną odpowiedź.

Kolejnym przykładem jak dać mu czas pomyśleć jest napisanie, aby spróbował najpierw sam rozwiązać zadanie zanim podejmie decyzję o odpowiedzi.

Przykład:

Na tak zadane pytanie czat zwraca odpowiedź, że rozwiązanie jest prawidłowe, mimo iż matematycznie jest ono błędne. Dodanie tekstu: „To solve the problem do the following: – First, work out your own solution to the problem. – Then compare your solution to the student’s solution and evaluate if the student’s solution is correct or not. Don’t decide if the student’s solution is correct until you have done the problem yourself.” powoduje, że sam rozwiązuje problem i zauważa, że jego rozwiązanie różni sie od rozwiązania studenta, przez co poprawnie odpowiada, że student zrobił błąd.

5. Ogranicz halucynacje jednym zdaniem

Modele LLM generują odpowiedzi na pytania na podstawie prawdopodobieństwa, przez co potrafią „halucynować” – zwracać zmyślone odpowiedzi, które brzmią prawdopodobnie. Jak się tego pozbyć? Uwaga, czasami wystarczy… dopisać jedno zdanie! Oto ono: „Znajdź najpierw potrzebne informacje, aby odpowiedzieć na to pytanie, a następnie odpowiedź na podstawie tych informacji.

Przykład:

  • Na pytanie”Jakie są najlepsze kursy na courserze do nauki pythona?” dostajemy odpowiedź w postaci 5 kursów: 1. „Python for Everybody” (University of Michigan), 2. „Python Data Structures” (University of Michigan), 3. „Python Crash Course” (Eric Matthes), 4. „Automate the Boring Stuff with Python” (Al Sweigart), 5. „Python for Data Science and Machine Learning Bootcamp” (Jose Portilla). I chociaż wszystkie z nich istnieją, to tylko 2 z nich są kursami ze strony coursery, o które prosiłam.
  • Na pytanie „Jakie są najlepsze kursy na courserze do nauki pythona? Znajdź najpierw potrzebne informacje aby odpowiedzieć na to pytanie, a następnie odpowiedź na podstawie tych informacji.” zwraca 5 kursów, wszystkie ze strony coursery. Dodanie jednego zdania powoduje, że odpowiedź jest poprawna.

6. Spytaj się, czy warunki zostały spełnione

Chociaż wydaje mi się, że chatGPT jest tak poinstruowany, że już aplikuje tę zasadę, to postanowiłam się nią jednak podzielić. Ja nie potrafiłam znaleźć przykładu, w którym ta porada by pomogła, ale może wam się uda. W prompt engineeringu poproszenie model GPT o rozwiązanie zadania (np. napisanie instrukcji na podstawie tekstu) powoduje, że model zawsze próbuje je wykonać, nawet gdy nie mają one sensu (nie da się zrobić instrukcji). Dodanie informacji o sprawdzeniu warunków eliminuje rozwiązywanie zadania, gdy nie ma ono sensu.

7. Eksperymentuj

Dopytuj, zmieniaj zapytanie i tłumacz co masz na myśli. Napisz mu jak ma odpowiedzieć jak nie podoba ci się jego pierwotne wyjaśnienie. Napisz w jakiej formie ma odpisać lub na czym się skupić.

  • „Wspomniałeś o SQL. Możesz doprecyzować o co ci chodzi?”
  • „Skup się na umiejętnościach technicznych”
  • „Odpowiedź zwięźle i konkretnie.” , „Odpowiedź w 50 słowach”
  • Na pytanieCzy lepiej się uczyć pythona czy R, aby zostać data scientistem?” będzie się rozpisywał, że to zależy, ponieważ każdy z języków programowania ma swoje plusy i nie wskaże jasno, który język jest lepszym wyborem. Jak zmienimy jednak pytanie na „Chciałabym jak najszybciej zacząć pracować jako data scientst. Polecasz nauczyć się pythona czy R?” to odpowiada, że… python!

Podsumowanie

Właściwe zadawanie pytań potrafi odblokować możliwości chatGPT. Czasami jedno zdanie lub dodanie instrukcji powoduje, że model zaczyna zwracać bardziej precyzyjne lub właściwe wyniki, a nawet ogranicza halucynacje. Znacie jakieś podobne tricki? Podzielcie się w komentarzu!

keywords: czemu chatgpt nie działa, co chatgpt, co chatgpt potrafi, chatgpt co robi, chatgpt co to znaczy, chatgpt gdzie, chatgpt gdzie znaleźć, jak chat gpt, chat gpt jak działa, chat gpt jak korzystać, chat gpt jak korzystac,  chatgpt jak użyć, chat gpt jak użyć, chatgpt jak zadawać pytania, korzystanie z chatgpt, chatgpt jak zadawac pytania, chatgpt czy warto, czatgpt, chatgpt do czego korzystać, chatgpt do czego wykorzystać, chat gpt podobne, co potrafi chatgpt, co umi chatgpt, czemu chatgpt nie odpowiada, czemu chatgpt nie działa, chatgpt do programowania

2 thoughts on “Jak lepiej zadawać pytania chatGPT”

  1. Świetny artykuł. Sam wykorzystałem GPT-3 żeby rozpisał mi plan nauki SQL-a wraz z linkami do darmowych materiałów online. Natomiast w mojej ocenie Bart od Google w chwili obecnej w ogóle nie zdaje egzaminu w takich kwestiach.

  2. Super artykuł! Ja właśnie zacząłem testować „spotkania” z chatemGPT i stworzyłem z nim grupę mastermind. Jest to trochę eksperyment społeczno-badawczy. Zobaczymy co z tego wyjdzie 😁
    Pozdrawiam!

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *