Raporty o błędach generowane przez AI to bzdury, które marnują czas programistów
ITHardwareZe specjalną dedykacją dla @Piotr_Chlopas, który jeszcze nie tak dawno temu kłócił się ze mną, że AI wkrótce zastąpi programistów
@sierzant_armii_12_malp - apropopopo AI: https://www.hejto.pl/wpis/hallucinate-slowo-ktore-dzieki-swojemu-nowemu-znaczeniu-zostalo-slowem-roku-2023
Obecne AI nie zastąpi niczego, bo to tylko generator tekstu oparty o modele probabilistyczne....
@sierzant_armii_12_malp tak, ale np. jak piszę prosty frontend w popularnym frameworku to dużo "boilerplate" mogę zrobić przy użyciu chatgpt zamiast przeglądać dokumentację i tutoriale.
Nie mniej zgadzam się, że przydatność AI w programowaniu jest mocno ograniczona. Np. komentarze do funkcji proponowane przez copilota do najbardziej generyczne i bezużyteczne gówno jakie widziałem - jeśli komentarz mówi to samo co nazwa, argumenty i wartości zwracane przez funkcję, to jaki jest sens pisać komentarz? Żeby programista mógł sobie więcej poczytać?
@wombatDaiquiri No, ja rzadko kiedy używam popularnych frameworków, ja embeddowcem jestem
A co do tych komentarzy - widziałem projekt, gdzie stosunek ilości komentarzy do ilości linii kodu był sprawdzany, i programiści musieli go w pewnym momencie poprawić. No to poprawili
@wombatDaiquiri współczcuje współpracownikom którzy potem muszą zaglądać do tego boilerplatu...to jest dupa, a nie poprawny html
@cebulion niebawem będziesz miał okazję sam ten kod zrecenzować, więc spokojnie
@sierzant_armii_12_malp Hmm ale ten wpis, jego opis oraz sam podlinkowany artykuł są totalnie bez sensu i na granicy nie wiem manipulacji albo głupoty.
Ale od początku, te "raporty o błędach" z tytuły to chodzi tutaj o program bug bounty od autora curla. To jest normalna praktyka, że do wielu projektów płaci się ludziom za znajdowanie błędów i są ludzie którzy się tym zajmują żeby dorobić. Każdy może poszukać błędu w jakimś znanym oprogramowaniu, np od Googla i jak znajdzie się poważny błąd bezpieczeństwa i powiadomi o tym Google to wypłaci ci za to nagrodę. Czasem jest to marne paręset dolarów, czasem grube tysiące, zależy od powagi błędu.
No i w oryginalnym poście od autora ten żali się, że ostatnio coraz więcej zgłoszeń o błędach to są próby oszustwa przez amatorów wpisujących w chatGPT aby ten "znalazł" jakiś błąd w kodzie źródłowym curla i napisał na podstawie tego zgłoszenie. Oczywistym jest, że na tę chwilę chatGPT nie potrafi w parę sekund przeanalizować całego kodu źródłowego curla, zamiast tego robi to w czym jest najlepszy. Czyli znajduje w swoim modelu podobne zgłoszenia o błędy, nawet nie koniecznie do samego curla ale pewnie też, i na ich podstawie tworzy coś co przypomina takie zgłoszenie ale nie dotyczy żadnego faktycznego błędu, pewnie nawet nie dotyczy samego kodu curla (i sam autor oryginalnego wpisu tak napisał, że w kodzie curla nie było rzeczy o których mówiły te raporty).
Czyli cała ta sytuacja opisuje zwykłych oszustów, którzy używając narzędzia nie przeznaczonego do takich zadań próbują wyłudzić pieniądze. A że te narzędzia stają się coraz lepsze to taki report z każdą kolejną wersją wygląda coraz bardziej autentycznie i trzeba się bardziej wczytać i skupić aby odkryć, że to są same głupoty.
Ale ta cała sytuacja totalnie niczego nie udowadnia w kwestii bezużyteczności AI w programowaniu ponieważ ChatGPT nie służy do szukania błędów w kodzie. Spokojnie o to się nie martwcie ale już na bank trwają prace nad takimi modelami (albo już nawet są prawie gotowe), które służą do takich celów i pewnie z czasem będą w tym lepsze niż człowiek znajdując całą masę błędów. Ale nie traktowałbym tego jako "AI które zastąpi programistów" tylko bardziej kolejne narzędzie które ma nam pomóc, coś w rodzaju lintera, kompilatora i innych które mówią nam o naszych błędach w kodzie. Po prostu za niedługo przy każdym ctrl + s sztuczna inteligencja będzie nam też skanować cały kod i podpowiadać gdzie mogliśmy zrobić błąd i co można było napisać lepiej.
@Catharsis
> Spokojnie o to się nie martwcie ale już na bank trwają prace nad takimi modelami (albo już nawet są prawie gotowe), które służą do takich celów i pewnie z czasem będą w tym lepsze niż człowiek znajdując całą masę błędów
Takie rzeczy istnieją od dziesiątek lat. Nazywają się „statyczny analizator kodu”. QAC, Klocwork, PVS Studio, CppCheck, analizery wbudowane w kompilatory, itd. Żeby wejść na naprawdę wyższy poziom, potrzebujesz czegoś, co będzie w stanie odczytać specyfikacje/normy, wymagania, design (pewnie jeszcze komentarze w kodzie), i je zrozumieć. Daleka droga.
@sierzant_armii_12_malp Ale ja miałem na myśli modele sztucznej inteligencji do analizowania kodu, tego jeszcze nie ma w tej formie ale na bank jest już blisko. Generalnie "na chłopski rozum" to wystarczyło by nauczyć taki model na bazie całego dostępnego kodu źródłowego na świecie i np do tego dołożyć wszelkie książki programistyczne i tutoriale. Na koniec dodać opcje, żeby takie AI mogło w krótkim czasie przeanalizować cały kod jaki mu podamy i voilà mamy teoretycznie gotowe rozwiązanie.
W praktyce jednak musiało to być trudniejsze do zrobienia ponieważ no dalej nie wyszło nic dokładnie takiego. Ale patrząc po tym jak to szybko leci teraz to pewnie kwestia czasu. Nie musi to być jakieś super zaawansowane na start, zwykłe propozycje jak np użycie innej funkcji, optymalizacja algorytmu czy innej pętli. Z czasem pewnie będzie coraz lepsze i będzie dawało coraz lepsze tipy.
@Catharsis
> wystarczyło by nauczyć taki model na bazie całego dostępnego kodu źródłowego na świecie i np do tego dołożyć wszelkie książki programistyczne i tutoriale
I się zaczyna problem z prawami autorskimi.
W dostępnym kodzie źródłowym, książkach, i tutorialach też są błędy lub niefortunne decyzje.
> Na koniec dodać opcje, żeby takie AI mogło w krótkim czasie przeanalizować cały kod jaki mu podamy
Raczej nie do zrobienia dla dużych projektów.
> Nie musi to być jakieś super zaawansowane na start, zwykłe propozycje jak np użycie innej funkcji, optymalizacja algorytmu czy innej pętli
To już jest w istniejących narzędziach - dla prostych przypadków. Dla bardziej skomplikowanych - nie da się tego ogarnąć bez dogłębnej znajomości kontekstu.
Czy w danym miejscu ważniejsza jest dla nas utrzymywalność kodu, czy wydajność (i jak bardzo), czy przenośność, czy jak najszybsze dostarczenie działającego poprawnie kodu? Czy interesuje nas raczej zamortyzowany czas wykonania, czy walczymy z pesymistycznym przypadkiem, a może optymalizujemy pod zużycie pamięci? Jak wygląda rozkład prawdopodobieństwa wystąpienia różnych danych wejściowych (bo to jest zmienna losowa)? Czy interesuje nas jakaś szczególna cecha algorytmu (np. stabilność sortowania, dobra wydajność nawet przy niewielkim cache w procesorze)? A może klient ma jakieś szczególne wymagania, które rzutują na dobór algorytmu? I tak dalej…
Ja to w projekcie wiem - najczęściej. AI pewnie stwierdzi, że też wie
AI zastąpi programistów?
A z czego będzie brało sample kodów, gdy programiści przestaną wrzucać snippety na stacka czy ghuba? (☞ ゚ ∀ ゚)☞
@VonTrupka - ale byłyby jajca jakby nawet część projektów Open Source przeszła na Closed Source - tylko z powodu AI.
Myślę, że za niedługo będą jakieś tagi czy inne indykatory mówiącej AI aby kodu nie skanowała i pułapki na nią zastawiane sprawdzające czy na pewno nie skanuje - do tego jeszcze może faktycznie cześć projektów pozamyka swoje źródła
BTW duże korpo będą miały wewnętrzne AI, które będzie skanowało tylko ich przepastne repozytoria i tyko z nich podpowiadało/generowało - ich na to stać.
@koszotorobur całkiem prawdopodobny scenariusz ༼ ͡° ͜ʖ ͡° ༽
@koszotorobur @VonTrupka To mało prawdopodobne. Najpopularniejsze licencje open-source (licencje z rodziny GPL) uniemożliwiają legalne zamknięcie kodu bez zgody wszystkich autorów - np. tych, którzy 5 lat temu podesłali kilka poprawek.
Co się może wydarzyć, to procesy sądowe - skoro AI wygenerowało ci kod na podstawie mojego kodu na licencji GPL, to znaczy że jest to dzieło pochodne mojego kodu (coś w stylu tłumaczenia Harry’ego Pottera na język polski - nie można go legalnie wydać bez zgody autorki), i jako takie też podlega licencji GPL. Więc dawaj kod źródłowy twojej najnowszej gierki na Androida.
@sierzant_armii_12_malp zakładasz legalne podejście do wykorzystania cudzej własności intelektualnej
nie ująłeś również ścieżki odpłatnej, ani dalszego wykorzystania na określonej licencji
a już całkowicie abstrahując od tego, do wygenerowania w pełni kompilowalnego lub interpretowalnego całościowo kodu aplikacji jeszcze dużo wody w oceanach wyparuje
@VonTrupka Nikt nie będzie się w poważnych firmach świadomie i z premedytacją bawił w piractwo - zbyt duże ryzyko, konsekwencje mogłyby być katastrofalne. Wyobrażasz sobie sytuację, że jakiś sąd orzeka nakaz upublicznienia kodu źródłowego np. silnika Unity na licencji open-source, a także wszystkich używających go gier i aplikacji? Do tego mogłoby dojść, gdyby znalazł się tam kod na licencji GPL i ktoś by to udowodnił.
Odpłatność przy kodzie na GPL to fikcja - bo na żądanie każdego klienta musisz mu udostępnić kod źródłowy „po kosztach”, i nie możesz mu zabronić rozpowszechniania go na licencji GPL.
A od kodu źródłowego do działającej binarki droga jest bardzo krótka - bo GPL definiuje kod źródłowy jako kod ze wszystkimi skryptami i narzędziami do kompilacji, z wyjątkiem narzędzi powszechnie dostępnych (jak GCC, czy VisualStudio).
@sierzant_armii_12_malp mam wrażenie że wektor tematu mamy wspólny
jednakże zwroty przeciwne ( ͡° ͟ʖ ͡°)
Ja się ostatnio zastanawiam czy ai które sobie zrobią firmy u sobie które będą miał różna wiedze na temat np wygasających certyfikatów nie spowoduje że ktoś włamujący się do sieci i rozmawiający z ai w końcu wydebi kto gdzie jaki certyfikat i jakie hasła
Zaloguj się aby komentować