{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/maia-2-a-unified-model-for-human-ai-alignment","title":"Maia-2: A Unified Model for Human-AI Alignment in Chess","arxiv_id":"2409.20553","date":"2024-09-30","proceeding":null,"authors":["Zhenwei Tang","Difan Jiao","Reid McIlroy-Young","Jon Kleinberg","Siddhartha Sen","Ashton Anderson"],"abstract":"There are an increasing number of domains in which artificial intelligence (AI) systems both surpass human ability and accurately model human behavior. This introduces the possibility of algorithmically-informed teaching in these domains through more relatable AI partners and deeper insights into human decision-making. Critical to achieving this goal, however, is coherently modeling human behavior at various skill levels. Chess is an ideal model system for conducting research into this kind of human-AI alignment, with its rich history as a pivotal testbed for AI research, mature superhuman AI systems like AlphaZero, and precise measurements of skill via chess rating systems. Previous work in modeling human decision-making in chess uses completely independent models to capture human style at different skill levels, meaning they lack coherence in their ability to adapt to the full spectrum of human improvement and are ultimately limited in their effectiveness as AI partners and teaching tools. In this work, we propose a unified modeling approach for human-AI alignment in chess that coherently captures human style across different skill levels and directly captures how people improve. Recognizing the complex, non-linear nature of human learning, we introduce a skill-aware attention mechanism to dynamically integrate players' strengths with encoded chess positions, enabling our model to be sensitive to evolving player skill. Our experimental results demonstrate that this unified framework significantly enhances the alignment between AI and human players across a diverse range of expertise levels, paving the way for deeper insights into human decision-making and AI-guided teaching tools.","url_abs":"https://arxiv.org/abs/2409.20553v2","url_pdf":"https://arxiv.org/pdf/2409.20553v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"maia-2-a-unified-model-for-human-ai-alignment","repo_url":"https://github.com/csslab/maia2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"maia-2-a-unified-model-for-human-ai-alignment","repo_url":"https://github.com/CSSLab/maia-chess","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"decision-making","task_name":"Decision Making"}],"methods":[{"method_slug":"alphazero","method_name":"AlphaZero"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2409.20553","atlas_url":"https://app.syntology.ai/?focus=2409.20553","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.20553"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CSSLab/maia-chess","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/csslab/maia2","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":8,"unverified":10},"by_repo_kind":{"official":{"samples":7,"ran":4,"repositories":1},"listed":{"samples":11,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":11,"samples":[{"code_sha256_prefix":"6008bedc62663800","entry":"load_example_train_dataset","repo":"csslab/maia2","repo_kind":"official","path":"maia2/dataset.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6008bedc62663800"}},{"code_sha256_prefix":"17ce924b3e8437ff","entry":"loadbzJson","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/boardTrees.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/boardTrees.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"17ce924b3e8437ff"}},{"code_sha256_prefix":"40c224517343d54a","entry":"nodeFromSeq","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/boardTrees.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/boardTrees.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"40c224517343d54a"}},{"code_sha256_prefix":"2e197fc204c4df1b","entry":"parse_args","repo":"csslab/maia2","repo_kind":"official","path":"maia2/utils.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2e197fc204c4df1b"}},{"code_sha256_prefix":"3d01121e567b461a","entry":"readable_num","repo":"csslab/maia2","repo_kind":"official","path":"maia2/utils.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3d01121e567b461a"}},{"code_sha256_prefix":"1b31d7f15a7a7f53","entry":"readable_time","repo":"csslab/maia2","repo_kind":"official","path":"maia2/utils.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1b31d7f15a7a7f53"}},{"code_sha256_prefix":"88734a70ea400df9","entry":"toBin","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/fen_to_vec.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/fen_to_vec.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"88734a70ea400df9"}},{"code_sha256_prefix":"326edeccdebb5bd9","entry":"toByteBuff","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/fen_to_vec.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/fen_to_vec.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"326edeccdebb5bd9"}},{"code_sha256_prefix":"af21b1c2558b6b63","entry":"binarizeFiles","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/data_prep.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/data_prep.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"af21b1c2558b6b63"}},{"code_sha256_prefix":"f17b236a2f6e490c","entry":"cleanFile","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/data_prep.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/data_prep.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f17b236a2f6e490c"}},{"code_sha256_prefix":"f2060b9a8207669c","entry":"from_pretrained","repo":"csslab/maia2","repo_kind":"official","path":"maia2/model.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2060b9a8207669c"}},{"code_sha256_prefix":"eb4d1418a63392a6","entry":"genSeqs","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/boardTrees.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/boardTrees.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"eb4d1418a63392a6"}},{"code_sha256_prefix":"b821c7c8c900be7e","entry":"getBoardMoveMap","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/games.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/games.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b821c7c8c900be7e"}},{"code_sha256_prefix":"56ee634d6f4bdab3","entry":"get_preds","repo":"CSSLab/maia2","repo_kind":"official","path":"maia2/inference.py","file_url":"https://github.com/CSSLab/maia2/blob/HEAD/maia2/inference.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56ee634d6f4bdab3"}},{"code_sha256_prefix":"ada9bf8c1a4d8a69","entry":"lczeroFile","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/data_prep.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/data_prep.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ada9bf8c1a4d8a69"}},{"code_sha256_prefix":"be0a07c0bc229683","entry":"load_example_test_dataset","repo":"csslab/maia2","repo_kind":"official","path":"maia2/dataset.py","file_url":"https://github.com/csslab/maia2/blob/HEAD/maia2/dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"be0a07c0bc229683"}},{"code_sha256_prefix":"09eda5e6f21ccdab","entry":"load_model_config","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/model_loader.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/model_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"09eda5e6f21ccdab"}},{"code_sha256_prefix":"1dffeee3d0d0b59c","entry":"move_to_index","repo":"CSSLab/maia-chess","repo_kind":"listed","path":"blunder_prediction/maia_chess_backend/fen_to_vec.py","file_url":"https://github.com/CSSLab/maia-chess/blob/HEAD/blunder_prediction/maia_chess_backend/fen_to_vec.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1dffeee3d0d0b59c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}