DevTalk Trio S01E10 – Sztuczna Inteligencja

6

To już przedostatnie spotkanie z Andrzejem Krzywdą i Sławkiem Sobótką. Szybko zleciało!
Tym razem: AI. Artificial Intelligence. Sztuczna inteligencja. Jak wpłynie na branżę IT i zawód programisty?

Pełną listę odcinków znajdziesz na http://devtalk.pl/trio!

A teraz… PLAY!


Montaż odcinka: Krzysztof Śmigiel.
Ważne adresy:


Muzyka wykorzystana w intro:
“Misuse” Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0
http://creativecommons.org/licenses/by/3.0/
Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

6 Comments

  1. No właśnie! to o czym mówi Sławomir Sobótka to już się dzieje AWS Lambda.

  2. Pozwolę sobie na dorzucenie pięciu groszy do tej dyskusji. Jak się przyjrzymy jak wygląda programowanie na przełomie stulecia, to widać, że tworzymy coraz wyżej położone abstrakcje. Zaczynając od przełączników, poprzez karty perforowane, asembler i języki wyższego rzędu. Język domenowy mówi nam w sumie czego potrzebuje klient. Języki wyższego rzędu powstają poto, by zapewnić spójność na coraz wyższym poziomie abstrakcji pomiędzy potrzebami klienta, a tym tym co tworzy deweloper. Moim zdaniem jest to tylko kwestią czasu kiedy powstanie język na tak wysokim poziomie abstrakcji, że to klient przedstawi potrzeby, a automat wygeneruje cały system. Chmury dostarczają komponenty, które stają się coraz lepiej dopasowanymi pudełkami. Interfejsy użytkownika można generować automatycznie – tutaj AI może pomóc w określeniu jak to rozsądnie rozmieścić kontrolki na gui. Reguły biznesowe można przenieść do silnika reguł. Wystarczy “tylko” przeanalizować aktualny proces podejmowania decyzji developerskich i niczym Henry Ford zbudować fabrykę z kodem dla każdego. Zbierane petabajty kodu, specyfikacji itp pozwolą na dokonanie odpowiednich klasyfikacji. Nawiążę do jednej z prezentacji Uncle Bob’a gdzie porównywał on ówczesny zawód skryby do współczesnego zawodu programisty. Kiedyś skrybami byli nieliczni dziś piszą “prawie” wszyscy. Idąc tym tropem w przyszłości każdy będzie programistą. Przyczym nie będzie kaligrafował kodu. Po prostu powie czego mu trzeba i kod powstanie.

  3. Sztuczna inteligencja – to temat, który wracał już wielokrotnie, ale na szczęście póki co komputer nie zabiera pracy programiście (no chyba, że edytory wizualne ;)
    Tylko z drugiej strony – strach, tylko nieliczni będą mieli do nich dostępy.

  4. “tak jak w DNA – w DNA mamy zlepek różnych śmieci” – lubię ten komentarz :D

  5. Dzięki za poruszenie tematu sztucznej inteligencji.

    Zwykle jak mówi się o AI, czy potrafi ona robić to samo co człowiek, to często mapuję się na świat, który jest teraz. Bo tak jest najprościej. Na przykład, często słyszę, co z tego, że samochód potrafi sam jechać, skoro i tak nie będzie w stanie nawet zatankować samochód samodzielnie albo umyć szybę. Prawda jest tak, że często myślimy o tym tak, jak to teraz robimy. Bo świat (jeszcze nadal) jest zaadaptowany przez ludzi dla ludzi. Tylko to zmienia się… Podobnie z programowaniem.

    Po kolei o wsystkim.

    Pierwsza opcja kierunku. Machine learning będzie pomagał generować kod (python, java czy inny) na podstawie kodu już stworzonego (np. z githuba). To zadanie jest dość podobne do tłumaczenia z języka angielskiego na polski czy inny. Gdzie wejściem jest biznes problem, a wyjściem kod. Ale szczerze mówiąc, obawiam się, że ten kierunek jest ślepą uliczką. Głównie przez brak dobrego (formalnego) inputu.

    Druga ścieżka, to jest tworzenie modele I komponowanie ich. Tutaj warto przypomnieć różnicy pomiędzy myśleniem machine learning I zwykłym programowaniem. W ML zawsze chodzi o prawdopodobieństwo. Z góry zakłada się, że model będzie się mylił – I to jest akceptowalne. Z kodem, raczej nie zakładamy, że będą błędy (chociaż i tak zawsze będą, ale to wynika z czegoś innego). Na przykład Good AI robi całkiem ciekawe rzeczy. Myślę, że każdy początkujący programista pisał kalkulator. Oni zrobili to samo, tylko używająć machine learning. Czyli na podstawie danych nauczyli model, że 2 + 2 =4, 2 +3 = 5 itd. Innymi słowami, nie rozumieli semantykę jako tako, ale wiedzieli, jaki będzie wynik. Potem mając model które umie dodawać, można go łatwo rozszerzyć do mnożenia. W ten sposób mają ambitne plany pójść dalej.

    Trzecia ścieżka. Badania zrobione przez Microsoft
    – DeepCoder (https://openreview.net/pdf?id=ByldLrqlx). Gdzie właśnie robią to bardziej formalnie, tworzą DSL, który jest wygodny z punktu widzenia AI. Ten kierunek już wygląda dość ciekawie i może wystrzelić w pewnym momencie.

    I na koniec.
    AlphaGo zrobiło duże wrażenie na postępy. Ciekawostką jest to, że nadal machine learning jest dość ograniczony. Na przykład jest w stanie rozpoznać kota i psa, ale nie wie, że pies goni kota. Brakuję mu podstawowej wiedzy na temat relacji i ogólnie o życiu (en. common sense knowledge). DeepMind bardzo aktywnie nad tym pracuje I już ma kolejne sukcesy. Zrobiłem wywiad na BiznesMyśli z osobą która pracuje w DeepMind gdzie on więcej powiedział o tym. Będzie dostępne wkrótce.