클라우드에서 체스 엔진 실행

11월 XNUMX일 노르웨이의 마그누스 칼센(Magnus Carlsen)이 자신의 방어전을 치릅니다. 체스 세계 선수권 대회 러시아의 Sergey Karjakin을 상대로. 통합 챔피언십은 두 명의 전설적인 체스 전설인 카스파로프(Kasparov)와 카르포프(Karpov)가 세계 체스 챔피언십 경기에서 마지막으로 만난 1990년 이후 처음으로 뉴욕과 미국 땅에서 다시 개최됩니다. 그 이후로 미국에서 체스의 인기는 선수들의 힘과 마찬가지로 천천히 증가했습니다. 불과 두 달 전, 미국 남자팀이 42년 만에 제40회 체스올림피아드에서 우승을 차지했습니다. 현재 상위 10위 플레이어인 Caruana, So 및 Nakamura가 이 팀을 이끌고 있습니다.

그럼에도 불구하고, 세계 챔피언 Magnus Carlsen은 지난 5년 동안 체스를 장악해 왔으며 자신의 세계 챔피언십을 방어할 수 있는 정당한 위치에 있습니다. 세계 챔피언십 경기와 같은 중요한 토너먼트를 준비할 때 그랜드마스터는 거의 항상 준비를 돕기 위해 '세컨드'(다른 그랜드마스터) 팀을 고용합니다. 이들의 주요 임무는 게임 시작 단계의 움직임을 분석하여 플레이어의 차트 영역을 최대화하는 것입니다. 이 분석에서 그들이 사용하는 가장 중요한 도구 중 하나는 컴퓨터 엔진입니다. 컴퓨터 엔진은 체스 위치를 객관적으로 평가하는 소프트웨어입니다.

최고의 체스 그랜드마스터는 컴퓨터 체스 엔진과 약간의 애증 관계를 가지고 있습니다. 훈련과 준비를 위한 필수적이고 귀중한 도구가 되었지만, 오프닝 북으로 알려진 광범위한 오프닝 시퀀스 차트로 인해 창의성이 상실된 것을 많은 사람들이 한탄합니다. 잘 준비된 상대는 창의적이지만 건전하지 못한 아이디어를 쉽게 노출할 수 있기 때문에 플레이어는 오프닝에서 위험을 덜 감수합니다. 그러면 최고의 그랜드마스터가 오프닝 북의 수천 가지 변형을 암기할 수 있는 능력이 제한 요인이 됩니다. Carlsen과 같은 일부 그랜드마스터는 상대의 준비 및 암기 기술에 도전하는 대신 "그냥 체스를 두는" 수 있도록 덜 분석되었지만 덜 최적인 동작을 의도적으로 초기에 플레이합니다.

오늘날 그랜드마스터와 아마추어 모두 훈련과 분석을 위해 체스 엔진을 사용합니다. 체스 위치를 평가하는 것과 본질적으로 동일한 작업을 수행하는 다양한 체스 엔진(일부 유료, 일부 오픈 소스)이 있습니다. 체스 엔진을 상대로 게임을 할 때 대부분의 초보자부터 중급 플레이어에게 엔진의 "강도"는 중요하지 않습니다. iPhone에서 실행되는 엔진은 대부분의 아마추어 플레이어를 쉽게 이길 수 있습니다. 경쟁력 있는 게임을 얻으려면 엔진의 강도를 인위적으로 줄여야 합니다. 우리는 "고전적인 시간 제어"(처음 90개 이동에 40분)를 사용하여 체스 엔진이 게임에서 모든 인간을 이길 수 있는 지점에 도달했습니다. 최고의 체스 엔진은 Elo 점수가 3200+인 반면 인간 플레이어가 달성한 가장 높은 등급은 2900에 조금 못 미치는 수준입니다. 따라서 인간이 체스 엔진과 경쟁하는 것은 더 이상 흥미롭지 않습니다. 대신, 이제는 고정된 조건에서 서로 경쟁하는 체스 엔진만 갖춘 리그가 있습니다.

작동 원리

저는 체스 엔진 전문가가 아니므로 여기에 체스 엔진의 작동 방식에 대한 매우 높은 수준의 개요가 있습니다. 

체스 게임에는 체스 엔진에 의해 다르게 처리될 수 있는 세 가지 단계가 있습니다. 오프닝에서는 미리 정의된 이동 라인의 데이터베이스인 오프닝 북을 사용합니다. 엔진이 "예외" 상태가 되면 평가 및 트리 검색 기능을 사용하여 최상의 움직임을 찾습니다. 마지막으로 보드에 부품이 거의 없는 위치에서 엔진은 엔드게임 테이블베이스 보드의 특정 위치에 대한 모든 승리 동작을 저장합니다.

체스 엔진의 가장 중요한 부분은 가능한 가장 효율적인 방식으로 정적 위치를 평가하는 능력입니다. 이 평가를 트리 검색과 함께 사용하여 현재 위치에서 가능한 최상의 이동을 찾습니다. 평가된 위치를 해시 테이블에 저장할 수 있으므로 주어진 위치를 두 번 이상 다시 계산할 필요가 없습니다. 엔진이 트리를 더 깊이 검색할 수 있을수록 이론적으로 현재 위치와 최선의 움직임을 예측하는 능력에 대한 평가가 더 정확해집니다.

엔진의 어떤 특정 알고리즘이 더 나은 체스 엔진을 만드는지는 논쟁의 여지가 있습니다. 일반적으로 정적 평가가 정확하지 않으면 트리를 더 빠르게 검색할 수 있는 것은 유용하지 않습니다. 이러한 이유로 점진적인 개선이 원하는 효과를 가져오는지 확인하려면 다른 엔진이나 다른 버전의 엔진에 대해 엔진을 테스트해야 합니다. 엔진을 서로 겨루는 대회도 있습니다. TCEC는 그러한 대회 중 하나입니다. 이러한 대회는 체스 엔진의 새로운 평가 기술 개발을 가속화합니다.

일반적으로 트리 검색은 이러한 종류의 알고리즘을 최적화하는 데에는 많은 복잡한 이론이 있음에도 불구하고 위치를 평가하는 상당히 무차별적인 방법입니다. 따라서 오늘날 대부분의 체스 엔진은 "멍청한" 도구입니다. 당신은 그것에 위치를 부여하고 그것을 평가합니다. Grandmaster가 준비를 위해 이를 사용할 때, 엔진에게 평가해야 할 위치를 알려주고 언제 평가를 중지해야 하는지 알려주는 사람이 항상 루프에 있습니다. 체스 엔진 개발의 다음 단계는 인공 지능(AI)을 포함하는 것입니다. 우리가 본 것처럼 알파고 vs 이세돌, 보드 게임 엔진에 AI를 포함하면 그 힘과 유용성이 크게 향상됩니다. AI를 통해 플레이어는 특정 목적을 위해 엔진을 사용할 수 있습니다. 예를 들어, 특정 상대가 특정 포지션에 어떻게 반응하는지, 그들의 성향은 무엇인지 연구하고 상대가 플레이한 모든 게임을 엔진에 공급하여 해당 상대를 위한 구체적인 전략을 생성할 수 있습니다. 높은 수준에서 우리는 포지션의 패턴을 학습하고 이를 각 플레이어의 강점을 고려한 게임 결과와 연관시킬 수 있습니다. 이러한 새로운 기술이 포함되고 엔진의 성능이 향상됨에 따라 체스 경쟁의 지형이 바뀔 것이라는 데에는 의심의 여지가 없습니다.

하드웨어 고려 사항

오늘날 가장 강력한 엔진은 현재 상태 병렬 트리 검색 알고리즘으로 인해 여러 노드에 걸쳐 잘 병렬화되지 않거나 전혀 병렬화되지 않습니다. 분산 프로세스 알고리즘을 사용하여 여러 노드에 걸쳐 병렬화하려는 시도가 있었지만 이러한 버전은 체스 커뮤니티에서 광범위하게 사용되지 않습니다. 따라서 오늘날의 접근 방식은 루프에 있는 인간을 사용하여 체스 엔진의 다양한 인스턴스에서 다양한 위치를 분석하는 것입니다. 많은 체스 엔진의 단일 노드 제한으로 인해 대규모 멀티 코어 SMP 시스템은 함께 네트워크로 연결된 여러 랩톱보다 훨씬 뛰어난 성능을 발휘할 수 있습니다. 

체스 엔진의 단일 노드 제한으로 인해 클러스터를 사용하여 분석을 위한 많은 평가를 병렬로 수행할 수 있습니다. 클러스터는 체스 엔진 소프트웨어 개발에도 사용될 수 있습니다. 많은 게임이나 포지션을 시뮬레이션하는 것은 엔진 코드의 변경이 실제로 엔진을 더 강하게 만드는 유일한 방법 중 하나입니다.

재조정 시 체스 엔진을 실행하는 방법

Rescale은 현재 UCI 체스 엔진을 실행하기 위한 프레임워크를 제공합니다. 자체 엔진 설정을 가져오는 것입니다. 체스 엔진을 제공하지 않으면 기본적으로 Stockfish 7이 실행됩니다.

체스 엔진으로 작업을 시작하면 포트 30000에서 브로드캐스트 및 수신 대기합니다. SSH 터널을 설정해야 합니다. 로컬 포트를 분석 노드 포트 30000으로 전달합니다. 클라이언트 Scid를 사용하여 Rescale에서 Stockfish를 실행하는 방법에 대한 전체 개요는 아래 비디오를 참조하십시오.

모든 UCI 엔진을 실행할 수 있습니다. 엔진 실행 파일의 이름을 "engine"으로 지정하고 입력 파일로 업로드해야 합니다. Rescale은 업로드된 엔진을 자동으로 사용합니다.

2개의 엔진을 서로 구동할 수도 있습니다. 예를 들어 Stockfish를 상대로 Komodo를 실행하고 싶다면. Rescale에서 각각 다른 엔진을 실행하는 두 가지 작업을 시작합니다. 두 번째 엔진에 다른 로컬 포트를 전달하는지 확인하세요.

UCI 클라이언트를 Rescale에서 실행되는 엔진에 연결하는 주요 구성 요소는 SSH 터널 Linux/MacOS에서는 netcat(nc)을 사용하고 Windows에서는 plink.exe를 사용하여 엔진에 대한 원시 연결을 수행합니다.

ARMCHAIR CHESS QB다음과 같은 사이트에서 "실시간 평가"를 통해 라이브 게임을 전송합니다. 체스베이스 or 체스폭탄 모든 체스 애호가가 다가오는 세계 선수권 대회와 같은 토너먼트 동안 안락 의자 쿼터백이 될 수 있습니다. 올해에는 한 단계 더 나아가 Rescale의 Chess Engines를 사용하여 직접 분석을 수행해 보세요.

저자

  • Mulyanto Poort
물얀토 푸어트

    부사장 HPC Mulyanto는 Rescale에서 애플리케이션 엔지니어링을 담당하고 있습니다. Rescale에 합류하기 전에 Mulyanto는 Mid-Michigan Research, LLC에서 소프트웨어 개발 및 기계 엔지니어로 7년간 근무하며 주요 엔진 제조 및 자동차 공급업체를 위한 전문 연구 컨설팅을 수행했습니다. Mulyanto는 이전에 미시간 주립대학교에서 연구 전문가로 근무하며 맞춤형 데이터 및 이미지 분석 도구 개발에 주력했습니다. Mulyanto는 미시간 주립대학교에서 기계공학 학사 및 석사 학위를 취득했습니다.

비슷한 게시물