Podstawy
2 godz. 43 min · OpenAI · Full-stack i Programowanie
Adam GospodarczykChociaż dokładne działanie dużych modeli językowych nie jest zrozumiałe nawet dla twórców tych narzędzi, to i tak istnieje szereg dobrze znanych faktów. Zapoznanie się z nimi pozwoli Ci lepiej wyobrazić sobie sposób działania LLM bez konieczności wchodzenia w głębokie detale techniczne. To z kolei w sposób bezpośredni przełoży się na skuteczność projektowanych promptów. W pierwszej części kursu skupiamy na wysokopoziomowym spojrzeniu na modele firmy OpenAI, uwzględniając ich aktualne możliwości oraz aktualne ograniczenia.
Instrukcje kierowane do modeli takich jak GPT-3.5-Turbo czy GPT-4, mogą realizować najróżniejsze zadania. Pomimo tego ich ogólna struktura uwzględnia pewne schematy z których możemy korzystać. W zależności od celu jaki chcemy osiągnąć, możemy uwzględniać lub pomijać poszczególne elementy promptu. I chociaż wspomniane modele są w stanie świetnie radzić sobie z nieustrukturyzowanymi danymi, to w przypadku projektowania instrukcji, bardzo istotne jest zachowanie precyzji oraz wyraźne oddzielenie jej fragmentów. Na praktycznych przykładach zobaczysz, jak łatwo niewłaściwe formatowanie może negatywnie wpływać na generowaną odpowiedź. Poznasz także ogólne zasady, które pomogą Ci kształtować instrukcje w sposób, który zwiększy prawdopodobieństwo wygenerowania odpowiedzi, której oczekujesz.
Zero-shot, Few-shot, Chain of Thought czy Tree of Thoughts — to techniki projektowania promptów, dzięki którym znacząco zwiększysz ich skuteczność. I choć każda z nich zwykle opiera się o bardzo proste koncepcje, tak ich praktyczne wykorzystanie nie zawsze jest oczywiste. W tym kursie nie tylko poznasz przykłady ich zastosowania, ale także będziesz w stanie połączyć je z ogólnymi zasadami tworzenia promptów, co jeszcze bardziej ulepszy tworzone przez Ciebie instrukcje. Ciekawostka: Technika Tree of Thoughts w niektórych przypadkach zwiększa skuteczność GPT-4 z 4% do nawet 74%.
Ostatnia część kursu uwzględnia kilka przykładów, których celem jest pokazanie Ci szerokiego kontekstu w którym umiejętność projektowania promptów, umożliwia wyjście daleko poza zwykłe odpowiadanie na pytania i generowanie tekstu. Zobaczysz, jak tworzone przez Ciebie instrukcje mogą zostać wykorzystane w aplikacjach webowych oraz systemach uwzględniających realizujących złożone zadania z pomocą dużych modeli językowych. Mowa tutaj o pamięci długoterminowej, embeddingu danych oraz nawet autonomicznych agentach, zdolnych do posługiwania się narzędziami. Pamiętaj jednak, że wszystkie z wymienionych tematów zostały omówione tylko z szerokiej perspektywy, ponieważ ich faktyczna implementacja, wykracza poza zakres tego kursu.
Ten kurs został zaprojektowany z myślą o osobach chcących rozpocząć naukę projektowania promptów dla dużych modeli językowych, takich jak GPT-3.5-Turbo czy GPT-4. Wcześniejsze doświadczenie oraz zaawansowane umiejętności techniczne czy programistyczne nie są wymagane. Wiedza z tego kursu da Ci podstawy do dalszej nauki projektowania promptów oraz pozwoli Ci uzyskać szerszą perspektywę na temat roli promptów przy codziennej pracy z narzędziami takimi jak ChatGPT czy integracjami dużych modeli językowych z aplikacjami.
Patrząc na technikę Chain of Thoughts możesz pomyśleć, że przygotowanie przykładów,
które będą przeprowadzać model przez konkretny schemat jest bardzo wymagające.
Jest to oczywiście prawda, natomiast nic
nie stoi na przeszkodzie, aby kolejne kroki generował sam model.
Coś takiego może okazać się szczególnie
przydatne w sytuacji, gdy nie mamy jasno określonego schematu, według którego
chcemy się poruszać, a jednocześnie chcemy zwiększyć skuteczność działania modelu.
Przykładem zadanie, które wymyśliłem na potrzeby tego filmu jest bardzo proste
zadanie logiczne, z którym nawet GPT-4 nie jest w stanie sobie poradzić.
Zadanie to polega na przekazywaniu sobie jabłek pomiędzy trzema osobami.
Pomimo tego, że logika, którą tutaj mamy
jest niesamowicie prosta, to na pytanie gdzie są teraz jabłka?
GPT-4 udziela błędnej odpowiedzi.
Okazuje się jednak, że jeżeli dodamy wyłącznie jedną frazę w postaci Think step
by step, czyli myśl krok po kroku, to sprawi to, że model zamiast podając nam odpowiedź
bezpośrednio rozbije rozwiązywanie tego zadania na mniejsze kroki.
Tylko coś takiego w tym przypadku
doprowadziło do uzyskania poprawnej odpowiedzi.
Także w tej chwili moglibyśmy tak naprawdę
zakończyć tę lekcję ze względu na to, że w pełni zaadresowaliśmy jej temat.
Konkretnie mowa tutaj o technice Zero-Shot CoT, czyli w roszerzeniu Zero-Shot
Chain of Thoughts, w przypadku którego to model generuje sobie ciąg myśli, którymi
podąża i w ten sposób dochodzi do znacznie lepszego rozwiązania.
Bardzo istotną ciekawostką jest tutaj
fakt, że to określenie również możemy rozbudowywać.
Konkretniej, jeżeli zajrzymy do tej oto publikacji, która pokazuje zachowanie
modelu właśnie w przypadku Zero-Shot CoT, czyli konkretnie określenia Let's think
step by step, to okazuje się, że możemy tę frazę nieco rozbudować i
uzyskiwać w niektórych przypadkach znacznie lepsze wyniki.
Rozbudowanie tej frazy polega na tym, aby dodać fragment mówiący o tym, że
rozbijamy zadanie na mniejsze kroki, aby uzyskać poprawną odpowiedź.
Choć wydaje się to bardzo banalne, a nawet
brzmi jak bardzo oczywiste, to okazuje się, że w testach wypada całkiem dobrze.
Tutaj możemy porównać sobie wyniki dla
poszczególnych promptów i zobaczymy, że ten drugi prompt jest albo trochę lepszy,
albo znacznie lepszy niż wcześniejsza wersja
ale są także przykłady, w przypadku
których to ta prostsza wersja radzi sobie lepiej.
Oznacza to, że nie mówimy tutaj o jakiejś złotej frazie i niesamowitym prompcie, który
odkrywa możliwości GPT-4, ale bardziej o jednej z technik, która może
okazać się przydatna w niektórych sytuacjach.
Warto o tym pamiętać i mieć to na uwadze przy projektowaniu własnych promptów.
Korzystając z tego, że mamy jeszcze chwilę
w tej lekcji, chciałbym pokazać także odwrócenie techniki Zero-Shot CoT.
Mianowicie chodzi mi tutaj o sytuację, w której faktycznie mamy podaną błędną
odpowiedź wygenerowaną przez model, a następnie zachęcamy go do tego, aby
zweryfikował krok po kroku swoje rozwiązanie.
Okazuje się, że coś takiego również ma bardzo pozytywny wpływ na zachowanie
modelu i w tym przypadku również doprowadziło go do poprawnego rozwiązania.
W tym wszystkim szczególnie istotne oraz
nawet bardzo zastanawiające jest to, że podając tutaj zachęcenie do zweryfikowania
rozwiązania nie wskazałem nawet tego, czy jest poprawne czy też nie.
Model był w stanie samodzielnie odkryć
luki w swoim rozumowaniu, a następnie podać poprawne rozwiązanie.
Więcej na temat takiego zachowania możesz
przeczytać w publikacji o nazwie Reflexion, która dokładnie opisuje
zjawisko polegające na tym, że model jest w stanie samodzielnie zauważać swoje
pomyłki i co więcej nierzadko wprowadzać poprawne rozwiązanie.
W praktyce najważniejsze jest tutaj to, że
nie musimy w żaden sposób sugerować, czy podane rozwiązanie jest poprawne, czy też
nie oraz nawet tego, na jakie elementy ma zwrócić uwagę.
Modele takie jak konkretnie GPT-4 są w
stanie samodzielnie przeanalizować swoje rozwiązanie względem naszych początkowych
wymagań i następnie w razie potrzeby wprowadzić wymagane zmiany.
Jeżeli chodzi o technikę Zero-Shot Cot oraz Reflexion to było na tyle.
Pamiętaj tylko proszę o tym, że możesz po
nie sięgać w momencie, gdy model ma do rozwiązania np.
zadanie logiczne bądź inne wymagające
zadanie, z którym nie jest w stanie poradzić sobie za pierwszym razem.
Tymczasem dzięki za uwagę i do usłyszenia w kolejnej lekcji.