Strona 1 z 1

AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 22 lip 2020, 19:28
autor: tommyray
Nie wiem czy zwróciliście uwagę, że podczas lockdown na stronie rządowej pojawił się był botchat z dopasowaną do wirusowego tematu AI i udzielał całkiem sensownie odpowiedzi na pytania tam stawiane. Od jakiegoś czasu chodzi mi po głowie aby pozwolić takiej "kognitywnej" machinie aby przemieliła odpowiedni rulebook i FAQ, jakieś Q&A pozbierane z forów i zaczęła udzielać odpowiedzi jak właśnie taki bot konwersacyjny. Wyobraźcie sobie: proste do implementacji na stronach www, bez czekania - odpowiedź od razu, bez obawy, że ktoś kogoś opieprzy z góry na dół za to że nie korzysta z szukajki, że nie umie czytać instrukcji itd itp.
Czat boty stosowane są już powszechnie a więc chyba czas aby ktoś to zaimplementował i w naszym światku. Takiemu przyszłemu Robinsonowi czy kolejnym Pierwszym Marsjanom pomogłoby to znacznie. Sam bym takie coś zrobił ale właśnie przypomniałem sobie o Bardzo Ważnych Rzeczach Jakie Mam Do Zrobienia i chyba muszę to zostawić tym mniej zajętym.
A może znacie przypadki implementacji tego typu rozwiązań technicznych w naszym hobby?

Re: AI w grach planszowych

: 22 lip 2020, 21:05
autor: tomuch
Jakiś czas temu przewinęła się informacja, że Alexa będzie tłumaczyć gry, ale nie pamietam, o jaką konkretnie grę/y chodziło.

Re: AI w grach planszowych

: 22 lip 2020, 21:12
autor: sabat24
Implementacji wprost do planszówek nie znam, ale zajmowałem się tym zagadnieniem na potrzeby własne w mojej firmie. Ogólnie istnieje kilka frameworków, które właściwie robią zdecydowaną większość pracy. Widziałem też jedną implementację na potrzeby planszówkowe. Tyle, że wszystko opiera się na języku angielskim ze względu na powszechność wytrenowanych modeli pod deep learning. Wątpię, by były publicznie dostępne takie modele dla języka polskiego, a to jest kluczowe przy tego typu systemach i zabiera najwięcej czasu.
W każdym razie dla zainteresowanych ja pracowałem na tym kodzie: cdQA. Obecnie już nierozwijany i przeistoczony w Neural Question Answering At Scale.

Całość implementacji sprowadzała się do wrzucenia skanów PDF instrukcji z gier planszowych (lub innego tekstu), użycie modelu BERT wstępnie trenowanego w SQuAD i przy dosłownie ok. 10 linijkach mamy system odpowiedzi na pytania na bazie instrukcji z gier. Kwestia branży jest tu o tyle bez znaczenia, że modele się później trenuje pod konkretne teksty. Tak realnie całą prace wykonuje nie programista, tylko osoba, która dodatkowo zbiera dane z for internetowych, czy innych miejsc, by poszerzyć umiejętności modelu i zajmuje się trenowaniem modeli.

W firmach stosuje się takie rozwiązania, by przy skomplikowanych systemach nie zatrudniać wiele osób wsparcia, tylko redukować etaty, więc są na to odpowiednie środki i wymierne korzyści. Nie wiem czy na rynku polskich planszówek komukolwiek opłacałoby się to tworzyć, bo jak dla mnie nie jest to aż takie proste zadanie, by system wyszukiwania działał sprawnie i dawał bardzo trafne odpowiedzi, których sama instrukcja nie potrafi podać. Wszystkie systemy nie są oparte o wnioskowanie, a jedynie o pewien rodzaj wyszukiwania istniejącej treści. Mówię tutaj o systemach closed-domain (czyli zdefiniowanych w jakiś sposób odpowiedzi).
Może w bitewniakach miałoby to jakiś sens.

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 22 lip 2020, 22:27
autor: tommyray
Dzięki sabat24, wydaję mi się, że można się pokusić o stworzenie takiej pomocy dla graczy w prostszy sposób, bazując na rozwiązaniu np. typu Watson. Hm, zobaczymy. W pełni kognitywnego asystenta dedukującego jakieś rozwiązania z bazowej instrukcji - o tym nie ma co narazie myśleć, ale taki asystent do wyszukiwania informacji z rulebooków i FAQ to chyba nie byłoby tak trudno zrobić. Zobaczymy ;)

Re: AI w grach planszowych

: 23 lip 2020, 00:02
autor: Chizu
tomuch pisze: 22 lip 2020, 21:05 Jakiś czas temu przewinęła się informacja, że Alexa będzie tłumaczyć gry, ale nie pamietam, o jaką konkretnie grę/y chodziło.
To był Portal: zapowiedź.

Stworzenie chatbota na Alexę lub Asystenta Google, który odpowiadałby na proste pytania w stylu "co robi jednostka X", "ile kart mam dobrać na koniec rundy" nie powinno być specjalnie trudne. Zarówno Google jak i Amazon udostępniają narzędzia, które pozwalają na stosunkowo łatwe tworzenie prostych botów.

Co innego zrobienie "mądrego" chatbota, który sam by się "uczył" odpowiedzi na bardziej złożone pytania np. "jeśli zagrywam kartę A, a w grze jest karta B czy umiejętność karty B się aktywuje" . Tak jak napisał sabat24, wymagałoby to zdecydowanie większego nakładu pracy i bardziej skomplikowanych rozwiązań.

Re: AI w grach planszowych

: 23 lip 2020, 09:16
autor: karp
tomuch pisze: 22 lip 2020, 21:05 Jakiś czas temu przewinęła się informacja, że Alexa będzie tłumaczyć gry, ale nie pamietam, o jaką konkretnie grę/y chodziło.
Ticket to ride.
Spoiler:

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 11:23
autor: sabat24
Jakby znalazła się chociaż jedna osoba ze znajomością Pythona i umiejętnością kompilacji źródeł w c++ pod Windows albo ogólnie potrafiła na Linuxie posługiwać się Pythonem, by odpalić pewne gotowce i je trochę przekonfigurować, to ja od września nawet chętnie zabrałbym się od strony php i architektury za stworzenie takiego bota. Czy to w formie webowej, czy też na Slacka albo Facebooka.

Zrobiłem kilka testów dla Azula, wrzucając po prostu instrukcję. Oparłem to na wcześniej wspomnianym modelu BERT od Google. W wersji polskiej udało się botowi odpowiedzieć tylko na pytanie kiedy gra się kończy. Później przetłumaczyłem instrukcję Google Translatorem i tutaj trochę było lepiej, bo dostałem jeszcze odpowiedź o liczenie punktów, ale niezbyt precyzyjnie.
Q: How to get points?
A: count how many tiles in that group adjoins each other horizontally

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 12:08
autor: mauserem
Mam wrażenie, że wątek za chwilę trafi do działu Pomysły i idee.
Ale to nic złego, bo idea sama w sobie jest świetna - alternatywna ścieżka polegająca na tworzeniu samouczków i interaktywnych tutoriali (vide Dized) zdecydowanie "kuleje" - przyrost treści jest ślimaczo powolny.
Oparcie się o Chatboty AI i "machine learning" wpięte do baz wiedzy (jak choćby to forum) to cholernie dobry pomysł - w sumie dobry materiał na solidny startup - może nie "unicorn", ale "boardgaming" wywołuje całkiem żywe zainteresowanie inwestorów VC. :mrgreen:

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 12:55
autor: Mr_Fisq
Jeżeli dobrze rozumiem ideę BERT'a, to forum mogłoby być dobrym materiałem do treningu wstępnego, tylko wolumen danych może być zbyt mały (a i koszt samego treningu wstępnego jest duży).
Fajnym pomysłem wydaje się też przejście procedury trój-etapowej:
Trening-wstępny => gotowiec z google.
Tuning-ogólny => dotrenowanie na bazie podforum z pytaniami o zasady.
Tuning-szczególny => ostateczny trening na bazie konkretnej instrukcji => ze względu na swoją konstrukcję księga zasad z Root'a wydaje się dobrym materiałem na pierwszy krok w eksperymentach.

Nie wiem do czego potrzebna byłaby znajomość C++ w rozważanym rozwiązaniu. Wydaje się, że Python by wystarczył (niestety preferowana jest niewspierana już dwójka) na potrzeby PoC'a.

Ja ostatnio myślałem bardziej o klepnięciu jakiegoś grającego AI opartego o Deep Learning (zaczynając od Go dla którego jest masa materiałów), ale to najchętniej w oparciu o Python3 + Rust.

Edit:
PS. Nie, nie lubię php ;)

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 13:20
autor: sabat24
Nie wiem do czego potrzebna byłaby znajomość C++ w rozważanym rozwiązaniu

Ponieważ nie koniecznie serwer musi być unixowy. A wtedy trzeba sobie samemu skompilować biblioteki.
niestety preferowana jest niewspierana już dwójka
Ja akurat zakładałem użycie DeepPavlova, który wymaga co najmniej 3.6 (jeśli dobrze pamiętam).

Edit:

PS. php jest używany do serwowania treści. Całość analizy robi Python i udostępnia on API w celu dwustronnej komunikacji z innymi warstwami. Dałem to jako przykład, gdyż jeśli ja miałbym się tym zajmować, to chciałbym mieć wersję finalną zintegrowaną właśnie z php.

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 13:49
autor: Mr_Fisq
DeepPavlov wygląda ciekawie, przyjrzę mu się wieczorem.

Jeśli nie Unixowy to o jakiej konkretnie alternatywie myślisz (nie wspierającej dockera)?

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 23 lip 2020, 14:30
autor: sabat24
Miałem na myśli np. IIS. Aczoklwiek chodziło mi bardziej o brak stawiania odgórnych barier, że to koniecznie musi być coś unixowego.

Co do treningu wstępnego jest np. polbert, czyli BERT wytrenowany wstępnie dla konkretnie polskiego języka. Przypuszczam, że użycie tego modelu będzie trochę lepsze, niż wersja wielojęzyczna od Google.

Jeśli chodzi o fine-tuning to tu właśnie wychodzi cała słabość działania na języku polskim dla aplikacji QA. To forum ma raczej zbyt mało treści. SQuAD zawiera 150 tys. pytań i odpowiedzi bardzo dobrze usystematyzowanych i opracowanych, nie zawierając przy tym literówek, błędów gramatycznych i nieistotnych dygresji. A i tak uważa się, że to nie jest jakoś za duża baza. W każdym razie nie poczuwam się na siłach, by zajmować się akurat NLP i wypowiadać się w tych kwestiach autorytatywnie. Jeśli masz ochotę zagłębić temat (lub ktokolwiek inny) i wypuścić np. restAPI dla języka polskiego albo komunikacji na poziomie CLI, ja jestem w stanie puścić to w sieć jako bot i pomóc przy ściąganiu treści z różnych miejsc do treningu, czy też w jakiś inny sposób.
Ja ostatnio myślałem bardziej o klepnięciu jakiegoś grającego AI opartego o Deep Learning (zaczynając od Go dla którego jest masa materiałów), ale to najchętniej w oparciu o Python3 + Rust.
Na studiach robiłem programik do grania w oczko w internetowym kasynie, uznając zasady gry za proces decyzyjny markowa i korzystając z reinforcement learning dla MonteCarlo. Jedyne co mnie motywowało, by nie rzucić tego w diabły, to wygrana :) Ogólnie tworzenie AI do gier to fajna idea, ale modelowanie tego wszystkiego wymaga potencjalnie mnóstwa wolnego czasu i dobrej motywacji.

Edit:
Widziałem też ciekawy projekt (open-source) dziś o nazwie AllenNLP Można go testować on-line i dla angielskiego daje całkiem niezłe odpowiedzi.

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 28 lip 2020, 16:11
autor: Fuser.exe
sabat24 pisze: 23 lip 2020, 11:23 Jakby znalazła się chociaż jedna osoba ze znajomością Pythona i umiejętnością kompilacji źródeł w c++ pod Windows albo ogólnie potrafiła na Linuxie posługiwać się Pythonem, by odpalić pewne gotowce i je trochę przekonfigurować, to ja od września nawet chętnie zabrałbym się od strony php i architektury za stworzenie takiego bota. Czy to w formie webowej, czy też na Slacka albo Facebooka.
Umiem pythona na średnim poziomie (w rozumieniu kogoś uczącego się samodzielnie z książek) + właśnie zaczynam się uczyć WSL2, mam dużo wolnego czasu i chętnie bym się zaangażował jeśli intelektualnie ogarnę.

Re: AI (chat boty i wyszukiwarki semantyczne) w grach planszowych

: 28 lip 2020, 19:14
autor: sabat24
Zerknij więc na DeepPavlova - tutaj jest link do Slavic BERTa (czyli uwzględniającego m. in. polski język). Wcześniej podałem też link do polberta.

Tutaj link do instrukcji trenowania i odpalenia ODQA, czyli Open Domain Question Answering. Tam jest ranker oparty na trzech modelach i reader.

Ogólnie można sie tym pobawić na początek, by poznać zasadę trenowania modeli i działania na różnych wstępnie wytrenowanych modelach dla języka, by zobaczyć, który jest lepszy. Jak już tutaj będzie pewna biegłość i uda Ci się zadać pytanie polskiej wiki, a ona da Ci jakąś sensowną odpowiedź, to będzie można próbować już trenować pod bazę typowo grową.

DeepPavlov ma też moduł spellcheckera, który pozwala trafnie poprawiać literówki w danych wejściowych. Jednak na początek można założyć, że dane wejściowe są w 100% poprawne.