TL;DR
- SplendoRust는 2~4인용 기본 Splendor 규칙을 정확히 따르는 것을 목표로 하며, Apple M4 Pro 단일 워커 기준 비교 대상 엔진보다 무작위·고정 플레이 시뮬레이션에서 2.3배 빠른 엔진임.
- 일반 규칙 외에 흔히 쓰이는 변형 규칙에 맞추도록 일부 규칙을 바꾸는 플래그도 제공함.
- 엔진을 이용해 학습한 Entity Transformer 봇은 AlphaZero 오픈 웨이트 봇과 1,000게임에서 77.5% 승률을 기록했고, AlphaZero의 탐색·연산량을 높인 비교에서도 58.85%를 기록함.
- 봇은 전체 게임 상태가 아니라 사람이 관찰할 수 있는 정보만 입력으로 받으며, 현재 가중치는 MIT 라이선스로 공개됨.
- 합법적인 게임 중에도 합법 행동이 없거나 토큰 이동이 반복돼 승자 없이 끝날 수 있으므로, 비교 결과를 사용하기 전에 규칙 및 검증 가이드를 확인해야 함.
SplendoRust
- SplendoRust는 Splendor를 플레이하고 시뮬레이션하는 고속 엔진임.
- 기본 Splendor의 2~4인 규칙을 정확히 재현하는 것을 목표로 하며, 일반적인 변형 규칙을 맞추기 위한 규칙 변경 플래그도 제공함.
- 10월 26일 기준, 확인 가능한 동종 엔진 가운데 가장 빠르다고 설명함. 측정 환경은 Apple M4 Pro, 단일 워커임.
- 정렬된 무작위 플레이:
seal256C++ 초당 22.9k게임,AhinLendorC++ 초당 37.0k게임, SplendoRust 초당 86.2k게임으로 2.3배 성능임. - 정렬된 고정 플레이:
seal256C++ 초당 23.4k게임,AhinLendorC++ 초당 35.0k게임, SplendoRust 초당 81.0k게임으로 2.3배 성능임. - 리플레이:
seal256은 비교값이 없고,AhinLendor는 초당 850k회, SplendoRust는 초당 1.12MM회로 1.3배 성능임.
봇
- 저장소의 주된 목적은 게임 엔진이며, 개념 증명으로 엔진을 활용해 봇도 학습함.
- 봇은 현재 Entity Transformer로 구현돼 있으며, 전체 게임 상태가 아닌 사람이 확인할 수 있는 게임 관찰 정보만 입력으로 받음.
- 찾을 수 있었던 가장 강력한 경쟁 오픈 웨이트 봇인 AlphaZero 구현체와 1,000게임을 치러 77.5% 승률을 기록함.
- AlphaZero의 탐색·연산량을 더 비슷한 수준으로 높인 뒤에도 SplendoRust 봇의 승률은 58.85%임.
- AlphaZero는 기본 Splendor와 약간 다른 규칙을 사용하므로, 비교는 AlphaZero 규칙 세트로 진행함.
로컬 실행
cargo run --release --locked -- play --agents strong,greedy --seed 42 --check --output game.json명령으로strong및greedy에이전트의 게임을 시드 42로 실행하고, 검증 결과를game.json에 저장함.cargo run --release --locked -- replay game.json명령으로 저장된 게임을 재생함.
봇 가중치 다운로드
- 현재 봇 가중치는 MIT 라이선스로 공개돼 있음.
- 가중치는 Rust/WASM 모델 또는 압축된 PyTorch 체크포인트 형태로 제공됨.
- 가중치 가이드에서 형식, 해시, 설정 방법을 확인할 수 있음.
- 브라우저 빌드는 강도 챔피언 기록에서 모델을 선택하고, 해당 가중치를 Rust/WASM으로 로컬 실행함.
- 일부 합법 게임은 합법 행동이 없어지거나 토큰 이동이 반복될 수 있으며, 이런 게임에는 승자가 없음. 비교 결과를 사용하기 전에 규칙 및 검증 가이드를 확인해야 함.
아티팩트
- 아키텍처: 크레이트 구성, 의사결정, 숨겨진 정보, 리플레이 확인용임.
- 검증: 규칙 선택, 테스트 범위, 근거의 한계 확인용임.
- 벤치마크: 속도 측정 및 성능 결과 확인용임.
- 실험: 연구 결과 및 초기 실험 확인용임.
- 전략: 새 실험 계획용임.
- 데이터 출처: 카드 90장과 귀족 10장의 출처 확인용임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요