Wpis z mikrobloga

#szachy #ai #badanianaukowe #programowanie #programista15k #it

Hej Mirki, gracie w szachy lub interesujecie się algorytmami AI do grania w szachy?

David Peng opublikował pracę naukową o pomiarze złożoności pozycji szachowych i zaproponował wdrożenie tego na platformie Lichess. Toadofsky, jeden z deweloperów Lichessa, przedstawił szczegółową krytykę tego projektu.

https://lichess.org/@/Toadofsky/blog/what-is-complexity/pKo1swFh

O co chodzi z "złożonością"?
Autor proponuje, żeby uczyć sztuczną inteligencję rozpoznawać trudne pozycje szachowe. Metryka opiera się na ACPL (Average Centipawn Loss - średnia strata w setnych częściach pionka), czyli mierzy jak często gracze popełniają błędy w danej pozycji względem najlepszego ruchu według silnika szachowego.

Co obiecuje ta technologia:
- Generowanie puzzli pozycyjnych (zadań szachowych opartych na zrozumieniu pozycji, nie tylko taktyce)
- Tworzenie silników szachowych naśladujących ludzki styl gry
- Automatyczne przygotowanie debiutowe pokazujące które warianty są trudne dla przeciwników
- Identyfikacja kluczowych konceptów potrzebnych do poprawy gry na każdym poziomie

Główne problemy metodologiczne:

Paper wykorzystuje starszą wersję Stockfisha (silnika szachowego) bez sieci neuronowych NNUE. To istotne, bo oceny Stockfisha w grze środkowej są ograniczone do 10, a w końcówce do 100, co może zniekształcać wyniki. Dodatkowo, Toadofsky zauważa logiczną lukę: jeśli ta metoda byłaby rzeczywiście rewolucyjna, naukowcy i firmy technologiczne już dawno by ją wykorzystali komercyjnie.

Zagrożenie dla uczciwej gry:
Niepokojące jest to, że taka metryka mogłaby pomóc oszustom. Wiedząc które pozycje są "trudne", mogliby używać pomocy komputerowej właśnie w tych momentach, gdzie błędy wyglądają najbardziej naturalnie. Jedyny rzeczywiście wartościowy pomysł to wyświetlanie informacji o złożoności podczas transmisji partii mistrzowskich - widzowie mogliby lepiej zrozumieć dlaczego gracze popełniają błędy w niektórych pozycjach.

A więc tak:
Projekt jest ambitny i porusza ważny temat, ale metodologia budzi poważne wątpliwości. Mierzenie "trudności" pozycji tylko na podstawie częstotliwości błędów to uproszczenie, które może nie oddawać rzeczywistej złożoności gry.
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

- Automatyczne przygotowanie debiutowe pokazujące które warianty są trudne dla przeciwników


@JamesJoyce: Z tego co kojarzę to gdy Magnus Carlsen przygotowywał się do jednego z meczów o mistrzostwo świata, wszedł we współpracę z Tomaszem Czajką, który miał opracować algorytm, którego zadaniem było coś podobnego. Miał wyszukiwać złożone pozycje i warianty, w których np. tylko jeden ruch, albo seria pojedynczych ruchów utrzymuje równowagę, a wszystkie inne prowadzą do przegranej. Czajka wspominał
  • Odpowiedz
  • 2
@HeIlNah:To była współpraca Carlsena z Tomaszem Czajką przed meczem z Caruaną w 2018. Czajka stworzył algorytm, który analizował miliony pozycji szukając takich, gdzie tylko 1-2 precyzyjne ruchy utrzymują równowagę, a reszta prowadzi do kłopotów.

Magnus celowo wchodził w te warianty wiedząc gdzie są pułapki, a Caruana musiał przy tikającym zegarze znajdować jedyne dobre ruchy.

Czajka opowiadał o tym chyba u Kryształy w podcaście i w Przeglądzie Sportowym. To było jeszcze przed
  • Odpowiedz
@JamesJoyce:

Dodatkowo, Toadofsky zauważa logiczną lukę: jeśli ta metoda byłaby rzeczywiście rewolucyjna, naukowcy i firmy technologiczne już dawno by ją wykorzystali komercyjnie.


To jest słaby argument, może wykorzystują ale się nie chwalą... albo nie wykorzystują bo nie znają tego
  • Odpowiedz
@kwanty

Co do argumentu o komercjalizacji - rzeczywiście, to że coś nie jest publicznie wykorzystywane nie znaczy, że nie działa. Firmy często trzymają swoje najlepsze algorytmy w tajemnicy (jak DeepMind z niektórymi modelami). Plus wiele przełomów akademickich potrzebuje lat żeby trafić do komercji.

Masz rację z tym mierzeniem trudności pozycji. Błędy w partiach mistrzowskich to za mała próba - większość pozycji w szachach nigdy nie była grana na wysokim poziomie. Tu chyba chodziło
  • Odpowiedz
@HeIlNah Maia to fascynujący projekt - próba stworzenia AI które gra "ludzko" zamiast optymalnie. Pamiętam jak pokazywali, że ich model z ratingu ~1500 rzeczywiście popełnia typowe błędy dla tego poziomu, nie tylko gra słabiej losowo.

Dzięki za linki. Te artykuły które podałeś pokazują jak trudne jest to wyzwanie. Problem w tym, że "ludzki styl gry" to nie tylko kwestia siły - to całe spektrum: skłonności pozycyjne vs taktyczne, preferencje w debiutach, czy
  • Odpowiedz
Challange w tym, że szachy to dyskretna przestrzeń ruchów, nie ciągły tekst. Ale może da się to rozwiązać przez reprezentację pozycji jako "tokens" albo przez fine-tuning na partiach konkretnego gracza?


@JamesJoyce: Tak się zastanawiałem i są znaczące różnice pomiędzy tekstem a szachami, które wykluczają użycie architektur transformers. Tekst nie jest ciągły to jest sekwencja tokenów (umówmy się słów), tych słów jest ~120 tysięcy. Kluczem jest tu sekwencja - kolejność jest ważna.
  • Odpowiedz
@kwanty: koledzy od silnika leela eksperymentowali z sukcesami https://lczero.org/blog/2024/02/transformer-progress/

Mechanizmy atencji mogą szybciej "przekazywać" informacje niż w przypadku splotów gdzie potrzebujesz przejść więcej warstw. Są też implementacje Rope 3d, które teoretycznie ułatwiają modelom analizę np. Serii klatek jako jednowymiarowej sekwencji embeddingów/zanurzeń. Popularne w transformersach wykorzystywanych do video.

A tak btw. Patrząc na strukturę odpowiedzi kolegi na nasze posty mam wrażenie, że rozmawiamy z llmem xd
  • Odpowiedz
  • 1
@Raberr: Dlatego, że stosuję odstępy między paragrafami i posługuje się dość chłodnym językiem? Spokojnie. Rozmawiasz ze mną. Ja tak piszę od wielu lat. Wyniosłem to z klepania setek recenzji, komentarzy, notek i różnych innych komunikatów językowych w trakcie 5 lat pracy na uczelni.
  • Odpowiedz
@Raberr: @JamesJoyce

Mechanizmy atencji mogą szybciej "przekazywać" informacje niż w przypadku splotów gdzie potrzebujesz przejść więcej warstw. Są też implementacje Rope 3d, które teoretycznie ułatwiają modelom analizę np. Serii klatek jako jednowymiarowej sekwencji embeddingów/zanurzeń. Popularne w transformersach wykorzystywanych do video.


Hmm... jakoś nie patrzyłem w ten sposób na ten problem. Selfattention (pełna, bez ograniczania causality) jako plansza gier, tokeny to bierki (tak mało stanów, że nie trzeba zanurzać), positional embedding
  • Odpowiedz