원문 캡처 · mbuffett.com
원문 캡처 · mbuffett.com

체스 실력을 높이기 위해 사람처럼 두는 AI를 만들었다

체스는 한 판이 끝난 뒤에야 컴퓨터로 수의 좋고 나쁨을 확인하는 경우가 많아, 실시간 피드백을 받기 어렵다. 이 글의 개발자는 온라인 상대처럼 두는 AI를 만들어 게임 중에도 자신의 수와 승리 가능성을 살펴보려 했으며, 그 모델이 다음 수를 맞히는 정확도 55.57%를 기록했다고 밝혔다.

개발자는 체스 엔진 Stockfish가 세계 최고 수준이지만, 그대로 상대하면 압도적으로 강하거나 핸디캡을 주더라도 사람처럼 두지 않는다고 설명한다. 사람의 수를 예측하는 Maia-2는 당시 기준으로 53%의 예측 정확도를 보였다고 소개하며, 자신은 기계학습 경험이 없는 상태에서 이를 뛰어넘는 것을 목표로 삼았다.

Maia-2가 합성곱 신경망을 사용하는 것과 달리, 이 모델에는 트랜스포머를 적용했다. 개발자는 체스판에서 멀리 떨어진 칸 사이의 관계도 중요하다는 점이 트랜스포머를 택한 이유라고 설명한다. 실험 끝에 각 칸의 위치를 알려주는 절대 위치 임베딩과 칸 사이의 관계를 학습하는 Shaw 상대 어텐션을 사용했다.

모델의 입력은 체스판 64칸이며, 각 칸에는 말의 위치와 핀, 칸을 공격하거나 방어하는 말, 폰 구조, 최근 방문한 칸 등을 나타내는 특징을 넣었다. 개발자는 특히 핀과 폰 구조 같은 체스 관계를 특징으로 직접 표현했고, 최근 방문한 칸에는 시간이 지날수록 값이 절반씩 줄어드는 값을 부여했다고 설명한다. 이 방식은 반복으로 의도치 않게 무승부를 택하는 문제와, 여러 수 동안 이어지는 희생 전술을 갑자기 실행하는 듯한 어색한 행동을 줄이는 데 쓰였다.

학습에는 NVIDIA B200 8개를 시간당 30달러에 임대해 사용했다. 개발자가 공개한 최신 실험의 전체 예측 정확도는 55.57%로, 글에서 비교한 기존 최고치 53.2%보다 2%포인트 넘게 높다. 다만 Maia-2가 사용한 것과 정확히 같은 학습 데이터로 검증하지 않았다고 밝혔다. 블리츠 게임을 포함해 예측이 더 어려운 상황을 골랐을 가능성이 있다고 덧붙였다.

실력 구간별 정확도는 초급(1600 이하) 52.78%, 중급(1600~2000) 55.11%, 고급(2000~2300) 56.56%, 전문가(2300 이상) 57.29%다. 개발자는 실제 대국에서 모델이 사람다운 수를 두고 사람처럼 실수하며 설명하기 어려운 수를 두지 않는다고 평가했다. 코드는 GitHub 저장소에 공개했지만, 모델 파일은 GitHub에 올리기에는 너무 커서 별도로 공유할 방법을 찾겠다고 밝혔다.