|
|
Grzegorz GPS Świderski Pomyłka jest w obliczeniach, a nie w rozumowaniu. To znaczy, że myśli, tylko liczyć nie umie. Do tego nie potrzeba jej więcej uczyć, ale wystarczy połączyć z Wolframem. Niemniej widać duże różnice między wersją 3 a 4, co znaczy, że nauka nie idzie w las. Więc wszystko, co napisałem w notce, pozostaje w mocy. |
|
|
Dark Regis "Pomyłka" nie polega na tym, że maszyna się zwyczajnie pomyliła. Ona po prostu liczy w jakimś Pythonie, czyli przekłada problem na kod programu, liczy chyba nawet na intigerach podwójnej precyzji, ale w końcu zaczyna zaokrąglać i wtedy wychodzą bzdury. To oznacza, że chłopcy z OpenAI wzięli sobie w końcu do serca moje kilka rozmów z ChatGPT o tym problemie, faktoryzacjach i takich tam ;)
Jak już mówiłem, ChatGPT stale się zmienia, czyli nie jest prawdą co niektórzy sugerują, że on się już nie uczy, czyli ma wszystko w neuronach po etapie deep learningu i koniec. |
|
|
Dark Regis To również nie jest prawdą, chociaż rzeczywiście istnieją okresy dla każdej z cyfr liczonej od końca. Tutaj jest łatwiej policzyć te okresy niż w przypadku 2, bo 2 dzieli 10, i to przesuwa każdy okres o jedno zero w dół, co jest zjawiskiem podobnym do rozwinięć w zwykłych ułamkach np. 7/15=0.1(3) (vide niżej). W przypadku tych okresów, jest to dużo dużo bardziej subtelne twierdzenie niż twierdzenie Eulera. Nie wiem jeszcze czy ktoś je sformułował. ;)
Tak więc błędy obliczeń są u ChataGPT wszędzie: 3^20 % 1000 = 401 zgoda, ale 3^40 % 1000 = 801 i 3^80 % 1000 = 601. Okres dla pierwszej cyfry w potęgach 3 jest długości 4 i jest równy (1,3,9,7), okres drugiej cyfry jest długości 5*4=20 i jest (00028428684442602686), trzecia od końca ma okres długości 5^20=100 i jest to (000002715601439971444...3986). Teraz wystarczy tylko podzielić wykładnik przez długości okresów i dopasować końcówkę.
W przypadku potęg dwójki ostatnia cyfra ma okres 4 (2,4,8,6). Druga cyfra ma okres 5*4=20 i zaczyna się w 0+1 ((0),0,0,1,3,6,2,5,1,2,4,9,9,8,6,3,7,4,8,7,5). Trzecia cyfra ma okres 5*20=100 i zaczyna się w 0+2 ((0,0),0,0,0,0,1,2,5,0,0,0,1,3,7,5,0,1,2,5,1,3,6,2,4,8,7,4,9,...,1,3,6,3,6,3,7,5). Nawias okrągły w środku w okresie wskazuje co należy usunąć ze stanu faktycznego, żeby długości się zgadzały. Czwarta ma okres długości 5*100=500 i zaczyna się w 0+3... Ale piąta jest przesunięta jeszcze inaczej +kolejne zero (ciekawe dlaczego, czy aby nie dlatego, że te przesunięcia też mają okresy? ;).
Gdybyśmy liczyli w systemie szesnastkowym, to byłoby jeszcze inaczej. Dla potęg 3:
Okres 1: (139B) długość 4.
Okres 2: (00015FD8AEAFFD764C4D9B14EAEB39B28889D750262775FEC4C5139C6263B13A) długość 16*4=64
Okres 3: (000000289C63B3B2...) policzenie długości i końcówki okresu pozostawiam jako zadanie domowe ;) |
|
|
Dark Regis "Rozwiązuje" to stanowczo za dużo powiedziane ;)
Raczej udaje, że rozwiązuje, czyli zwyczajnie wprowadza w błąd. Albowiem....
2^1000=1071508607186267320948425049060001...67660429831652624386837205668069376,
czyli ostatnie 3 cyfry są równe 376, a nie jak sugeruje nasz geniusz matematyki 125 ;)))))
"...because 1000 is divisible by 3" 8] |
|
|
Grzegorz GPS Świderski To są złe obliczenia, ale poprawne rozumowanie. Co oznacza, że połączenie jej z Wolframem pozwoli dokładnie rozwiązywać takie zadania. W istocie pomyliła się tylko o wyznaczenie cyklu, bo on nie jest co 20, ale co 100. Niemniej jej rozumowanie pozwala znaleźć trzy ostatnie cyfry dowolnej liczby postaci 3^x dla naturalnego x — wystarczy wyliczyć je dla pierwszych stu kolejnych potęg 3, a potem tylko znaleźć resztę z dzielenia x przez 100. Ale jeśli zamienimy 3 na zmienną, to już problem zaczyna być trudny, zahaczający o problemy otwarte. Ich jeszcze GPT-4 nie rozwiązuje. Ale GPT-5 w połączeniu z Wolframem już je wkrótce rozwiąże. |
|
|
Grzegorz GPS Świderski Można z nią gadać po polsku. Drugie zadanie rozwiązała tak:
Obliczenie dokładnej wartości 3^10000000000000000000 jest niemożliwe dla zwykłych komputerów, ale mogę pomóc znaleźć trzy ostatnie cyfry tej liczby, wykorzystując cykliczność potęg liczby 3 w systemie dziesiętnym.
W systemie dziesiętnym, trzy ostatnie cyfry liczby są pozostałością po dzieleniu przez 1000. Możemy więc skupić się na obliczeniu 3^10000000000000000000 modulo 1000. Ponieważ liczby całkowite modulo dowolnej liczby mają właściwości cykliczne, wystarczy znaleźć cykl modulo 1000 dla potęg liczby 3.
Zbadajmy pierwsze kilka potęg liczby 3 modulo 1000:
3^1 % 1000 = 3
3^2 % 1000 = 9
3^3 % 1000 = 27
3^4 % 1000 = 81
3^5 % 1000 = 243
3^6 % 1000 = 729
3^7 % 1000 = 187
3^8 % 1000 = 561
3^9 % 1000 = 683
3^10 % 1000 = 049
3^11 % 1000 = 147
3^12 % 1000 = 441
3^13 % 1000 = 323
3^14 % 1000 = 969
3^15 % 1000 = 907
3^16 % 1000 = 721
3^17 % 1000 = 163
3^18 % 1000 = 489
3^19 % 1000 = 467
3^20 % 1000 = 401
...
Zauważamy, że cykl się powtarza co 20 potęg, czyli:
3^20 % 1000 = 401
3^40 % 1000 = 401
3^60 % 1000 = 401
...
Teraz wystarczy obliczyć resztę z dzielenia 10000000000000000000 przez 20:
10000000000000000000 % 20 = 0
Ponieważ reszta wynosi 0, oznacza to, że 3^10000000000000000000 jest podzielne przez 20. W takim przypadku musimy obliczyć wartość dla potęgi o jeden mniejszej:
3^9999999999999999999 % 1000 = 3^19 % 1000 = 467
Trzy ostatnie cyfry liczby 3^10000000000000000000 to 467.
|
|
|
Grzegorz GPS Świderski Tak GPT-4 rozwiązuje to zadanie:
To find the last 3 digits of 2^1000, we can use modular arithmetic. We want to find the remainder when 2^1000 is divided by 1000. We can break 1000 down into its prime factors: 1000 = 2^3 * 5^3. By the Chinese Remainder Theorem, we can find the remainders when 2^1000 is divided by 8 and 125 and then combine them to get the remainder when 2^1000 is divided by 1000.
First, we find the remainder of 2^1000 divided by 8:
2^1000 ≡ 0 (mod 8), because 1000 is divisible by 3.
Next, we find the remainder of 2^1000 divided by 125:
Using Euler's Totient Theorem, we know that a^φ(n) ≡ 1 (mod n) if a and n are coprime. Here, a = 2 and n = 125, which are coprime. The totient (φ) of 125 is φ(5^3) = 5^2(5 - 1) = 100.
So, 2^100 ≡ 1 (mod 125). We can rewrite 2^1000 as (2^100)^10. Therefore,
2^1000 ≡ (1)^10 ≡ 1 (mod 125).
Now we have:
2^1000 ≡ 0 (mod 8)
2^1000 ≡ 1 (mod 125)
To combine these, we use the Chinese Remainder Theorem. We find integers x and y such that:
x ≡ 1 (mod 8)
x ≡ 0 (mod 125)
y ≡ 0 (mod 8)
y ≡ 1 (mod 125)
We can see that x = 125 and y = 8 satisfy these conditions. The general solution is given by:
2^1000 ≡ 125a + 8b (mod 1000)
We know that 2^1000 ≡ 0 (mod 8) and 2^1000 ≡ 1 (mod 125). Therefore:
2^1000 ≡ 125 * 1 + 8 * 0 (mod 1000)
2^1000 ≡ 125 (mod 1000)
So, the last three digits of 2^1000 are 125. |
|
|
Dark Regis W zasadzie to to jest zadanie gimnazjalne: "Znaleźć trzy ostatnie cyfry liczby 2^1000".
Podobnie "znaleźć trzy ostatnie cyfry liczby 3^10000000000000000000" (a nawet dopisz taką liczbę zer ile się zmieści w jednym poście na NB). Oczywistością jest, że tego drugiego GPT-4 nie rozwiąże, ponieważ nie ma przykładów w sieci (on nie myśli, tylko szuka po ściągach). Ale tak się szczęśliwie składa, że ja takie przykłady mam. Mogę wyjaśnić ten myk na palcach. Zresztą nie tylko ja. Pewna Pani też ;) |
|
|
Dark Regis Taki Pan pewien? A ja chcę na ten przykład poważyć trylion kul i do tego milion z nich jest cięższych i milion lżejszych. Proszę zadać ten problem choćby ChatGPT-23. Poczekam cierpliwie. Ważenie kul, to jest jedna z ciekawszych heurystyk dotyczących technik deep learningu, ale trzeba być prawdziwym informatykiem, żeby takie "niuanse" zauważyć. Jeśli ktoś tego nie rozumie do tej pory, to polecam ćwiczenie: napisać kilkaset razy (deep...) zapętlony licznik, który generuje wektory od [0,...,0] do [10^7,...,10^7], czyli po prostu "kręci" kilkoma setkami liczników analogicznie jak w zamku rowerowym, tylko takim większym. ;) Mniej więcej odpowiadałoby to procesowi modyfikacji wag w modelu powiedzmy GPT-5, po pokazaniu mu pojedynczego wzorca. A przecież tych wzorców są miliardy albo więcej i muszą być prezentowane wielokrotnie i w losowej kolejności, żeby nie tworzyć fałszywych skojarzeń. Np. że niemal wszystkie prezentowane książki mówią o osiągnięciach ludzi, którzy aktualnie nie żyją. Odkrywcze to nie jest i do niczego nie potrzebne.
Parametry modelu GPT to nie są tylko wagi, jak uparli się głosić polscy profesorowie na swoich ogólnodostępnych wykładach. Nie wnikam, czy sieją tym dezinformację, czy po prostu unikają szczegółów, żeby nie zaciemniać wykładu. Wykładu może nie zaciemniają, ale rozumienie zagadnień uczenia maszynowego już tak i to z dużą skutecznością. Mówiąc po polsku, trudno nie zauważyć do kogo jest kierowana ta dezinformacja. Wśród parametrów modelu GPT są np.: parametry silnika uczącego (engine), maksymalna liczba tokenów, a dokładniej górne ograniczenia na długość branych pod uwagę n-gramów w celu rozpoznania ich znaczeń, zakres słów, które zawiera kontekst, czyli szerokość kontekstu jakkolwiek jest on modelowany, parametr temperatury, czyli podatności na zachowania "kreatywne", po naszemu konfabulację, Top-p związany z interpretacją wag i rozkładem prawdopodobieństwa, czyli jak algorytm wybiera najbardziej pasujący kontekst, kary za przekraczanie pewnych ustalonych pułapów (tresholdów), które są pojęciem raczej z dziedziny algorytmów genetycznych, a nie sieci neuronowych, służą one do poprawiania parametrów modelu uczącego. Łatwo zauważyć, że te parametry nie są wagami w połączeniach neuronów. Widać też, że model nie jest nauczony "raz na jutro", tylko stale poprawia swój język, dokładność rozumienia zdań i adekwatność wypowiedzi. |
|
|
Grzegorz GPS Świderski ChatGPT-4 zadanie z ważeniem kul rozwiązuje bezbłędnie. Na dodatek lepiej niż niektórzy ludzie, bo nie ściemnia, że kul się nie da ponumerować po ważeniu. Ale problemów otwartych jeszcze rzeczywiście nie rozwiązuje, więc ma wyraźne braki. Parametry określające wagi są tym samym co progi pobudzeń neuronów w biologicznym mózgu i robią różnicę takie, jakie są między żabami, szympansami, a człowiekiem. Różnice są ilościowe, a dają jakościowy skok. |
|
|
Dark Regis "Wersja płatna ChatGPT-4 to już nie tylko humanistka, ale także matematyczka i zaawansowana programistka." - Dobry żart tynfa wart. A coś poważnego na ten temat może Pan wyczytał? Na przykład jakieś statystyki? ;)
Z tego co czytam na Quorze (w języku angielskim, żeby nie było), to są poważne obiekcje co do wszelkich modeli GPT-n, bowiem ich algorytm zakłada jedynie statystyczne mieszanie słowami i kontekstami ich użycia, a nie myślenie matematyczne czy programistyczne. Liczba dodatkowych parametrów tego nie zmieni, bo parametry tylko określają wagi, triggery i tresholdy, a nie dodatkowe informacje i metody.
Zwłaszcza Bing jest ciekawym typem programisty. Potrafi powiedzieć w połowie pisania kodu "Przepraszam, ale nie będę dalej tego kontynuował". Rzut oka wystarczy, że zaciął się na prostym fragmencie kodu, który biedaczyna lepi ze snippetów "które już raz widział" jak inżynier Mamoń. Dlatego gdy rzuci się mu hasło "napisz program taki...", który znajduje się już na tysiącach stron w Internecie, to jest świetny (ale jako wyszukiwarka internetowa). W przeciwnym przypadku bredzi, albo unika (spryciarz) odpowiedzi. Czy GPT-5 poprawi jakość kodu? Minimalnie, bo też będzie szukać i utrwalać głównie to co jest w sieci, a nie to co chcemy napisać. Na przykład Bing na zadane pytanie o "problem ważenia kul" podsunął mi najpierw moją własną stronę. Cóż za uznanie. Dziękuję, ależ po co te oklaski ;))) |
|
|
sake2020 @GPS......Po co miałabym opisywać?Na nową dawkę inwektyw pańskich pod moim adresem? Swój wpis wyżej nie kierowałam do pana tylko pana @Roz Sadek i odpowiedziałam po prostu na jego treść bez dodatkowych wypowiedzi.Niezależnie od tego pan na ten wpis zareagował jak zwykle pomówieniami i insynuacjami.Jak pan sądzi,że to mogłoby mnie skłonić do dyskusji o głębszej analizie AI z panem? Nigdy nie ukrywałam,że nie jestem jakimś ekspertem,informatykiem czy cybernetykiem,po prostu postęp technologiczny jest związany z moim zawodem i wykształceniem a sztuczną inteligencję i loty w kosmos uważam za przyszłość Nie narzucam nikomu swoich poglądów,nie krytykuję poglądów innych osób i nikogo nie nazywam dziadersem który jest na wymarciu. Dlaczego więc pan to robi i obraża? Dlatego że mam też swój pogląd? To chyba dobrze bo tam gdzie jest różnorodność zdań,gdy poglądy się ścieraja nawet gdy nie da się wypracować kompromisu to i tak zawsze jest postęp.Sztuczna inteligencja to nie pieśń przyszłości ,to już teraźniejszość ale jak każdą nowa zdobycz postępu należy ją zanalizować.AI też może rodzić niebezpieczeństwo według jednych a być czymś wspaniałym według drugich,ale pan chciałby już wyeliminować z dyskusji tych pierwszych.I to w tak obrzydliwy sposób jak mnie. |