Tydzień temu swoją premierę miał nowy model GPT-o1, który wprowadził nową jakość w dziedzinie generatywnej sztucznej inteligencji. Poniżej kilka moich uwag i spostrzeżeń na temat tego modelu.
-
W modelu o1 wydłużona została inferencja, czyli czas tworzenia odpowiedzi. Mówiąc kolokwialnie dłużej myśli zanim odpowie. Rozwiązywanie zadanego problemu zostało podzielone na etapy dzięki czemu model daje dużo lepsze wyniki w przypadku problemów wymagających wnioskowania.
-
W modelu bardzo mocno wykorzystywana jest technika CoT (ang. Chain of Thought), czyli łańcucha rozumowania. Tutaj należy zaznaczyć dwie rzeczy. Po pierwsze technika CoT nie jest nowością, bo pojawiała się już w modelach serii GPT-3.5 i GPT-4, jednak w dużo mniejszym stopniu. Po drugie, zadawanie sekwencji pytań przez użytkownika nie daje takich samych efektów jak technika CoT wbudowana w model. Nie jest prawdą twierdzenie, że model o1, to jest to samo co wcześniejsze modele, którym damy kilka zapytań. Należy podkreślić, że model o1 dobrze radzi sobie z krótkimi i zwięzłymi zapytaniami, ponieważ sam rozwija je na szereg zapytań. Oszczędza to czas i daje dużo lepsze wyniki niż poprzednie modele.
-
Psycholog Daniel Kahneman w swojej książce Thinking, Fast and Slow opisał dwa sposoby ludzkiego myślenia. System 1 odpowiada za myślenie szybkie, instynktowne i emocjonalne, natomiast system 2 za myślenie analityczne. Drugi system jest wolniejszy, wymaga czasu. Model o1 jest właśnie krokiem w kierunku tego rodzaju myślenia. Dowodem tego są kilkukrotnie lepsze wyniki w zagadnieniach matematycznych czy generacji kodu źródłowego.
-
Jeśli chodzi o liczbę tokenów, to w porównaniu do GPT-4o wygląda to tak:
o1-preview 32 768 tokenów, o1-mini 65 536 tokenów, GPT-4o 16 384 tokeny.
- Wiele osób próbuje udowodnić, że model o1 nie potrafi rozumować i daje mu zadania obliczeniowe. LLMy nie są stworzone do wykonywania obliczeń i takie zapytania w niektórych przypadkach zakończą się wygenerowaniem błędnej odpowiedzi. Jeżeli chcemy, aby ChatGPT coś policzył, to poprośmy o wygenerowanie i uruchomienie kodu w języku Python. W takim przypadku obliczenia będą przeprowadzane przez program, a nie przez sieć neuronową, co da dużo lepsze wyniki.