AlphaZero 및 Stockfish 일치에 사용되는 하드웨어


22

AlphaZero는 일반적인 Stockfish와 다른 종류의 하드웨어를 사용해야한다는 것을 알고 있습니다. 하드웨어가 엔진 강도에 큰 영향을 미칠 것으로 기대합니다. 그렇기 때문에 두 하드웨어에 비슷한 하드웨어를 제공하려는 시도가 있었는지 궁금합니다. 또한 여기서 "비교할 수있는"의미는 무엇입니까?

특히 사람들이 다음에 대해 불평한다는 것을 읽었습니다.

  • 스톡 피쉬에 1GB의 캐시 만 제공되며
  • 1 분 / 이동 시간 제한

캐시가 아닌 해시 크기.
Federico Poloni

2
나는 강하게 (등 기술 포럼에서이 요청 제안 AI 스택 교환 여기에 답변을 잘하지 않기 때문에, 아마도 "건어 일치 대 AlphaZero에서 평가의 공정성"라는 제목).
Veedrac

답변:


20

그렇기 때문에 두 하드웨어에 비슷한 하드웨어를 제공하려는 시도가 있었는지 궁금합니다.

이것이 당신이 말하는 구글입니다! 따라서 대답은 분명히 "아니오"입니다.

에서 원래의 종이 초기화하는 훈련에 사용되는 하드웨어 -

자가 재생 게임을 생성하기 위해 5,000 개의 1 세대 TPU (15)를 사용하고 신경망을 훈련시키기 위해 64 개의 2 세대 TPU를 사용하여 무작위로 초기화 된 매개 변수에서 시작하여 70 만 단계 (4,096의 미니 배치)에 대한 교육이 진행되었습니다.

게임에 사용되는 하드웨어-

AlphaZero와 이전 AlphaGo Zero는 4 개의 TPU가있는 단일 시스템을 사용했으며 Stockfish와 Elmo는 64 개의 스레드와 1GB의 해시 크기를 사용하여 가장 강력한 기술 수준에서 재생했습니다.

따라서 AlphaZero는 Google에서 개발 한 특수 하드웨어를 사용했습니다. 시중에서 구할 수있는 일반적인 중앙 처리 장치 (CPU) 대신 특수 TPU (Tensor Processor Unit)를 사용했습니다.

이것이 Wikipedia가 사용한 2 세대 TPU를 설명하는 방법입니다.

2 세대 TPU는 2017 년 5 월에 발표되었습니다. Google은 1 세대 TPU 설계가 메모리 대역폭 제한이며 2 세대 설계에 16GB의 고 대역폭 메모리를 사용하면 대역폭이 600GB / s로, 성능이 45TFLOPS로 증가했다고 밝혔다. 그런 다음 TPU는 4 칩 180 TFLOPS 모듈로 배열됩니다

그들은 게임에 4 개의 TPU를 사용했기 때문에 처리 능력은 180 TFLOPS입니다. 참고 TFLOPS = 초당 1000 억 개의 부동 소수점 연산.

비교를 위해 인텔에서 가장 강력한 최신 칩은 1 TFLOP에서 클럭하는 코어 i9 익스트림 에디션 프로세서입니다. 게임기에서 찾을 수있는 I7의 최상위 라인은 일반적으로 약 100 GFLOP (즉, TFLOP의 1/10)입니다.

AlphaZero가 Stockfishes 마우스와 비교하여 800 파운드의 고릴라 하드웨어 구성을 사용하고 있다고 말하는 것이 공평하다고 생각합니다.


1
FLOPS는 초당 부동 소수점 연산을 나타냅니다. 부동 소수점 산술은 아마도 Stockfish와 AlphaZero의 핵심 알고리즘에서 전혀 사용되지 않을 것입니다. 따라서 FLOPS의 수는 실제로 체스 엔진과 관련된 프로세서 속도의 의미있는 측정 값이 아닙니다.
René Pijl

9
반대로, 신경망은 부동 소수점 산술을 매우 집중적으로 사용한다고 생각합니다. (물론 귀하의 의견은 완벽하게 이해되며
Stockfish에

3
GPU와 비교하면 훨씬 더 적절합니다. NVIDIA Tesla V100은 이전 세대 (P100)보다 약 20 만했을 때 120TFLOPS를 수행 할 수 있습니다. CPU는 많은 수의 GPU와는 매우 다르게 최적화됩니다.
Nick T

12

AlphaZero와 Stockfish 사이의 게임 1에서 오늘 호기심을 충족시키는 데 도움이되는 예제 1을 사용하여 두 번째 요점을 자세히 설명하는 것이 가장 좋습니다.

1 분 / 이동 시간 제한

Stockfish의 성능은 시간 제한 하드웨어 구성에 따라 달라 지므로 누군가 누군가 CPU 스레드를 두 배로 늘린 경우를 생각하면 첫 번째 구성에서보다 솔루션을 찾는 데 시간이 덜 필요합니다 (반드시 절반이 아님).

Chess.com에 게시 된 첫 번째 보고서에서 누군가는 컴퓨터에서 동일한 스톡 피쉬를 사용하여 동일한 결과를 재현 할 수 없기 때문에 Stockfish 가 최적으로 재생되지 않았다고 주장했습니다. 그는 아래 위치에서 (게임 1-11 이동) Stockfish는 전혀 의미가없는 Kg1-h1 (왕을 움직였다)을했다고 말했다. 다른 한편으로, 그의 컴퓨터에있는 비축 어는 Be3 (어두운 비숍 감독 이동)과 같이보다 발전된 움직임을 보였으며, 그 위치를 보자.

이동 11의 게임 1

그렇습니다. 수동적 인 움직임이었고 Stockfish는 더 발전한 움직임을 보였을 것 같습니다. 그러나 그는 틀렸다. 왜? 그는 15 초 동안 스톡 피쉬를 달렸고 1 시간 동안 뛰었다면 Kg1-h1을 그 위치에서 가장 잘 움직였을 것입니다. Stockfish는 가능한 모든 이동을보다 깊이 분석 할 때 결정을 변경합니다. 다음은 원래 회신에서 말한 내용입니다 .

나는 그 자리에서 최신 비늘을 움직였다 (11 번 이동) :

  • 처음에는 엔진이 약 1 분 동안 작동 할 때 b4를 최적의 이동으로 제공합니다. 그 후 Be3이 더 좋다고 결정합니다.
  • 그러나 1,400k 노드에서 실행되는 하드웨어에서 5 분이 지나면 최적의 이동으로 Kh1을 사용하기로 결정합니다.

  • 이 논문에서, 스톡 피쉬는 초당 70,000k 개의 위치를 ​​계산하고 이동 당 1 분 동안 실행되는데, 이는 내 하드웨어의 약 50 배이므로 50 분 동안 계속 실행하도록하겠습니다 ... Kg1-h1은 여전히 Stockfish를위한 선택.

시간 제한이 핵심

위의 경우, 결정이 동일했기 때문에 Stockfish가 두 번 실행 된 경우 중요하지 않을 것입니다.하지만 다음 단계에서는 분명히 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

이 위치에서 Stockfish는 폰을 왼쪽 ( a4-a5 ) 으로 옮기기로 결정했습니다 . 실제 게임에서 Stockfish 보다 초당 1,400k 노드 속도로 Stockfish 엔진을 실행하는 컴퓨터가 있다고 가정 해 봅시다 ( 논문 에서 70,000kn / s라고 함). 매번 50 분 동안 게임을 실행하면 게임을 시뮬레이션 할 수 있습니다. 괜찮아.

위의 위치에서 Stockfish 분석을 실행 한 결과는 다음과 같습니다.

  • Stockfish는 몇 가지 움직임을 제안하기 시작했지만 내 컴퓨터에서 6 분 ( 실제 게임의 Stockfish에서 7.2 초 에 해당) 후 게임이 진행되는 것처럼 a4-a5를 선호했습니다 .

그것은 좋지만 1 분 동안 게임에서 Stockfish의 계산에 도달하기 위해 50 분 동안 계속 실행했습니다.

슬픈 사실은 Stockfish가 시간 제한으로 인해 모든 게임을 잃었다 고 생각한다는 것입니다. Stockfish는 시간이 지남에 따라보다 심층적 인 검색 및 평가를 받고 게임에서 얕은 깊이에서 많은 움직임을 고려할 수있는 오프닝 북을 사용할 수 없었습니다. 실제 게임에서 a4-a5 가 재생되어 (초당 7 천만 개의 위치를 ​​평가할 수 있다고 가정 할 때) 게임에서 Stockfish가 이동에 21.6 초 이상을 소비하지 않았 음을 보여줍니다. 그렇지 않으면 실제 게임에서 다른 3 가지 동작으로 결정을 변경했을 것입니다. Stockfish가 더 적은 메모리를 소비했기 때문에이 이유는 여전히 명확하지 않습니다 ( 원본 논문에서 언급 한 1GB에 비해 약 ~ 130MB의 RAM이 모든 것이 해시 테이블에 있다고 가정).


결론

내가 지적했듯이 Stockfish를 실행 한 하드웨어는 내가 분석 한 움직임에 따라 내 것보다 18 배 빠릅니다 (업데이트 : 단일 코어). AlphaZero가 4 시간 안에 네트워크를 훈련시키기 위해 그러한 하드웨어를 실제로 사용할 수 있는지는 확실하지 않습니다. 체스와 같은 게임에서는 너무 낮다고 가정 할 수 있습니다. 또한 AlphaZero는 학습에 많은 시간을 보냈으며 여기에는 견고한 개구부 (그리고 논문에서 지적한 바와 같이 특정 개구부에 대한 선호도)가 포함됩니다. 반면, Stockfish는 개구부에 장애가 있었으며 각 움직임에서 60 초 동안 초당 7 천만 개의 위치를 ​​평가하지 않았습니다.

마지막으로, 내가 말한 모든 것은 내 가정에 근거한 것입니다. 물론 AlphaZero와 게임의 결과는 매우 흥미로 웠습니다. 그러나 나는 Stockfish 놀이가 내 컴퓨터에서 얻는 것과 같은 게임을보고 싶었습니다. 즉, 더 많은 시간과 책이 허용됩니다. 또한 모든 이동에서 Stockfish 분석 결과를 쉽게 얻을 수 있으며, 성능이 얼마나 우수한지 보여주기 위해이를 릴리스하기를 바랍니다.


1
시간 제한과 관련하여 AlphaZero 논문의 그림 2는 반대의 결과를 보여줍니다. 예산이 적을수록 주식 어류가 더 우수하지만 더 많은 전력을 사용할 수있게되면 더 크게 확장됩니다. arxiv.org/pdf/1712.01815.pdf
old-ufo

1
@ old-ufo 지적 해 주셔서 감사합니다. 내가 말했듯이 Stockfish (및 AlphaZero)의 성능은 하드웨어 및 시간 제한에 달려 있습니다. 예를 들어, Stockfish에 더 많은 하드웨어를 제공하고 그 수치를 다시 생성하면 해당 라인은 항상 AlphaZero 라인 위에 유지되도록 변형 될 수 있습니다. 따라서 두 시스템의 하드웨어를 비교하는 것이 좋은 질문이라고 생각합니다.
ReZzT December

4

Stockfish의 최초 저자 중 한 명이 여기에 언급 한 특정 불만에 답변합니다.

한편 Chess.com은 최초의 Stockfish 저자 Tord Romstad로부터 긴 의견을 받았습니다.

경기 결과는 시간 제어와 Stockfish 매개 변수 설정이 다소 이상하기 때문에 그다지 의미가 없습니다. 게임은 1 분 / 이동의 고정 시간에 재생되었습니다. 즉, Stockfish는 시간 관리 휴리스틱을 사용하지 않습니다 ( Stockfish가 게임에서 중요한 포인트를 식별하고 이동에 추가 시간을 소비 할 시점을 결정하기 위해 많은 노력을 기울였습니다. 이동마다 고정 된 시간에 힘이 크게 나빠질 것입니다). 사용 된 Stockfish 버전은 1 년 전이고, 많은 테스트를받은 것보다 훨씬 많은 검색 스레드를 가지고 놀았으며 스레드 수에 비해 해시 테이블이 너무 작습니다. 더 일반적인 조건에서 무승부 비율이 훨씬 높았을 것이라고 생각합니다.

다른 한편으로, 프로젝트에 더 많은 작업이 투입되면 AlphaZero가 더 잘 플레이 할 수 있었을 것입니다. 그 4 시간 동안). 그러나 어쨌든 Stockfish vs AlphaZero는 사과와 오랑우탄을 비교 한 것입니다. 하나는 일반 컴퓨터에서 실행되는 기존의 체스 프로그램이고, 다른 하나는 근본적으로 다른 기술을 사용하며 구매할 수없는 맞춤형으로 설계된 하드웨어에서 실행 중입니다 (일반 사용자의 예산을 벗어나는 경우).

다른 관점에서, 사과 대 오랑우탄 각도는 이것에 대해 가장 흥미로운 것입니다. 우리는 이제 두 가지 매우 인간적인 (인체와 소프트웨어 측면에서) 인간이 만들어 낸 초 인간 체스 게임 능력을 보여줍니다. 기존 체스 프로그램과 동일한 기능을 수행하는 다른 체스 프로그램보다 훨씬 더 흥미 롭습니다. 또한 새로운 영역에 대한 AlphaZero 접근법의 적응성은 미래를위한 흥미로운 가능성을 열어줍니다.

컴퓨터 체스 프로그램을 도구로 사용하는 체스 플레이어의 경우, 이러한 돌파구는 저렴한 가격에 적합한 하드웨어가 없기 때문에 최소한 단기적으로 큰 영향을 미치지는 않습니다.

체스 엔진 프로그래머와 다른 많은 흥미로운 분야의 프로그래머에게는 효과적이기 위해 대량의 하드웨어 리소스를 필요로하는 기계 학습 기술의 출현은 약간 실망입니다. 몇 년 후에는 AlphaZero와 같은 체스 프로그램을 일반 컴퓨터에서 실행할 수 있지만,이를 만드는 데 필요한 하드웨어 리소스 는 여전히 취미 또는 평균 규모의 회사 예산을 넘어 설 것입니다. 자원 봉사자가 운영하는 대규모 분산 컴퓨터 네트워크를 갖춘 오픈 소스 프로젝트가 가능할 수도 있지만, 각각 고유 한 특성과 특성을 가진 수백 개의 고유 한 체스 엔진 시대는 사라질 것입니다.

출처 : https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author


2

Google의 최종 목표가 우수한 체스 엔진을 구축하는 것이면 비슷한 하드웨어에서 실행해야하지만이 연습은 실제로 체스에 관한 것이 아닙니다. 체스는 AI가 복잡한 작업을 처음부터 배우는 능력을 보여주는 편리한 방법입니다. 모호한 합리적인 구성의 Stockfish에 대해 제대로 수행 할 수 있으면 확인란을 선택합니다.

Google 팀은 체스에 더 많은 노력을 기울이지 않을 것으로 예상합니다. 대신, 그들은 AI가 결코 달성 할 수 없었던 다른 문제로 넘어갈 것입니다.


느낌이 같기 때문에 +1을주었습니다.
SmallChess

알파 제로가 작은 마진만으로 잃어버린 경우 (아직도 가재와 비교할만한 힘이 있음을 의미하는 경우) 출판했을지 의심 스럽다.
user1583209

@ user1583209 Stockfish를 분쇄하는 데 필요한 최소 학습 시간을 파악하기 위해 여러 번 실행했을 것입니다. 그런 다음 최종 실행을하고 그 결과를 발표했습니다.
T Scherer

1

자세한 내용은 Talkchess Forum을 방문하십시오. 3000 명의 프로그래머가 있습니다. 이것은 모두 사기였다. 알파는 SF, 4TPU보다 64 배 큰 하드웨어보다 30 배 더 큰 하드웨어에서 플레이했습니다. 4TPU는 약 1000 코어 이상입니다. 알파는 오프닝 북을 시뮬레이션했으며 수많은 최고의 GM 우승 게임을 훈련했습니다. SF에는 해시가 거의 없었습니다. TC는 이동 당 1 분으로 고정되었으며, 이는 시간 관리를 향상시킨 SF에 다시 불리합니다. TPU는 코어가 많을수록 SMP 비 효율성이 부족하므로 하드웨어 이점이 훨씬 컸습니다. 기타 등등, 그래서 기본적으로 이것은 구글 측에서 거대한 홍보 스턴트였습니다. 현재 알파는 단일 코어에서 약 2800이므로 SF보다 400로 낮으며 앞으로는 많이 발전하지 않을 것입니다. 앞으로는 발견 할 수없는 고급 평가가 필요합니다. 4 시간 문제에 대해서는 LOL, 이것은 48 시간 전입니다. 이제 알파는 5000로입니다? 어서


5
AlphaZero는 Stockfish와 동일한 기능을 수행한다고 믿습니다. 1000 배 더 강력한 하드웨어를 사용했기 때문에 1000 배 더 빠릅니다. 이것은 사실이 아닙니다. 매우 다른 접근 방식을 사용하며이 방법은 리소스를 많이 사용합니다. 실제로 경기 중에 AlphaZero는 초당 80,000 개의 위치를 ​​평가하는 반면 Stockfish는 초당 7 천만개의 위치를 ​​확인했습니다. 이제 AlphaZero가 더 강력한 하드웨어로 인해 이겼다고 말해주십시오. 물론 64 CPU에서는 속도가 느리고 누가 어떻게 작동하는지 알지만 요점은 AlphaZero가 더 비싸지 만 더 잘 수행한다는 것입니다.
IA Petr Harasimovic

3
SF 하드웨어 비용은 $ 10k 미만, Alpha는 $ 25,000 이상입니다. 스스로 결론을 도출하십시오. Nps는 의미가 없으며 모든 체스 프로그래머는 그것을 알고 있습니다. nps가 낮아 지도록 모든 종류의 트릭을 수행 할 수 있지만 그렇다고해서 더 강하게 플레이 할 수는 없습니다. SF 하드웨어에서 SF 접근 방식을 구현하고 알파 하드웨어에서 SF 접근 방식을 구현하고 싶습니다. 결과를 추측? SF의 경우 +85 -0 = 15. 그것들이 너무 좋으면 코드를 게시하도록하십시오.
Lyudmil Tsvetkov

3
"알파는 오프닝 북을 시뮬레이트했으며 수많은 최고의 GM 우승 게임에 대해 훈련했습니다." 시뮬레이션 책을 열었습니다.하지만 GM 게임을 훈련 시켰습니까? 이것에 대한 소스가 있습니까? 제 이해는 알파가 완전히 부트 스트랩되었다는 것입니다.
Akavall

0

Stockfish는 CPU로 제한되므로 GPU가 지원하는 수준으로 확장 할 수 없습니다.

Gor 매트릭스 계산 GPU는 n으로 확장되는 반면 CPU는 n 3으로 확장되며 이러한 텐서 코어는 더욱 최적화되어 확장 할 때 더 나은 성능을 발휘할 수 있습니다.


-2

첫 번째 단락 자세한 내용, 두 번째 짧고 간단한 답변 세 번째 단락 상황에 대한 내 의견

AlphaZero를 사용하면 하드웨어의 재생 강도에 영향을주지 않습니다. 생각하기 때문에 시간이 오래 걸리지 않을 수도 있습니다. 그것은 신경망입니다. 즉, 정보를 벡터 (단일 열 테이블)로 공급한다는 것은 거대한 텐서 (3 차원 이상의 테이블)를 통해 간단한 수학을 수행 한 다음 답을 내 보냅니다. Stockfish는 가능한 위치를 확인하여 이동이 유익한 지 확인하기 때문에 시간이 오래 걸리므로 문제를 더 오래 볼수록 더 많은 위치 / 이동을 확인할 수 있습니다.

실제로 비슷한 하드웨어 설정이 없습니다. 서로 다른 요구가 있기 때문에 Stockfish는 더 많은 위치를 분석해야하지만 AlphaZero는 이동해야합니다. AlphaZero의 컴퓨터는 기술적으로 훨씬 강력하기 때문에 사람들은 화가납니다. 그러나 AlphaZero는 훈련 후 슈퍼 컴퓨터가 필요하지 않습니다.

내 생각에 Stockfish가 불합리한 시간을 가지지 않는 한 아마도 몇 게임을 더 묶을 것이지만 일반적으로 비슷한 효과가 발생할 것입니다. 이것이 제가 생각하기에 Stockfish는 처음에는 조각과 그 가치로 평가하는 반면, Alpha는 전략적으로 중요한 것을 깨닫기 위해 수백만 게임을 (아마도) 플레이했습니다. 그렇기 때문에 알파가 스톡 피쉬보다 훨씬 더 많은 것을 주지만 큰 위치 적 이점을 얻습니다.


그건 잘못이야 AlphaZero는 트리 검색을 수행합니다. 하드웨어가 많을수록 강해집니다. 그리고 스톡 피쉬보다 더 잘 플레이하려면 많은 하드웨어가 필요합니다.
BlindKungFuMaster

이 게시물에 아무것도 잘못되었습니다 ...
SmallChess

이 시스템은 3 개의 신경망과 부분적인 Monroe Carlo 트리 검색을 기반으로하므로 트리 검색을 사용하여 정확한 정보를 얻을 수 있습니다. 놀이하는 동안 가치와 정책의 알파 고로 개발 된 2 개의 신경망 원리를 사용합니다. 바둑은 체스보다 천문학적으로 복잡하기 때문에 계산 능력을 통해 수행 할 수없는 게임입니다. 따라서 무차별 대입 알고리즘보다 더 많은 컴퓨팅 성능이 필요하다고 생각하면 망상입니다. 또는 정보가 누락되었습니다. 세 번째 신경망은 역 전파 변화를 추측하여 학습 과정을 시도하고 가속화하는 데 사용됩니다. 알파 제로의 힘은 mcts가 아닌 그물에 있습니다.
Ezecal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.