카타고
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
카타고는 딥마인드의 알파고 제로 기술을 기반으로 개발된 바둑 인공지능이다. 컨볼루션 신경망과 몬테카를로 트리 탐색을 사용하여 바둑의 위치 평가 및 정책 지침을 제공하며, 알파고 제로보다 빠른 학습과 강력한 플레이가 가능하다. 사전 활성화 ResNet을 네트워크로 사용하며, 알파제로와 달리 바둑 특화 특징을 입력받고, 패싸움과 같은 전역 상황에 대응하기 위한 모듈이 추가되었다. 카타고는 오픈 소스 및 오픈 데이터로 제공되어 강화 학습 비용을 절감하고, 리라 제로와 비교하여 GTP 엔진의 분석 기능과 OpenCL 및 CUDA 지원, CPU 지원 등 차이점을 보인다. 초기 버전은 LeelaZero와 비슷한 기력을 보였으며, 지속적인 훈련을 통해 성능을 향상시켜 프로 기사 훈련 및 연구 자료로 활용되고 있다. 2022년에는 적대적 공격 연구 대상이 되기도 했다.
더 읽어볼만한 페이지
- 2019년 소프트웨어 - 안드로이드 10
안드로이드 10은 구글이 개발한 안드로이드 운영체제의 10번째 주요 버전으로, 사용자 경험 개선, 개인 정보 보호 강화, 플랫폼 기능 확장 등 다양한 변화와 함께 새로운 기능이 추가되었다. - 2019년 소프트웨어 - IOS 13
iOS 13은 2019년 9월 19일에 출시된 Apple의 모바일 운영 체제로, 개인 정보 보호 강화, 사용자 인터페이스 개선, Siri 기능 향상, 새로운 퀵패스 키보드, "Apple로 로그인" 서비스, 성능 향상, 배터리 수명 연장, 햅틱 및 외부 저장 장치 지원, 노출 알림 API, ARKit 3 기능 향상 등 다양한 기능을 포함하고 iPhone 6s 이후 모델과 iPod touch (7세대)에서 사용 가능하다. - 응용 기계 학습 - 알파고
알파고는 구글 딥마인드가 개발한 인공지능 바둑 프로그램으로, 심층 신경망과 몬테카를로 트리 탐색 알고리즘을 결합하여 자가 학습을 통해 인간을 뛰어넘는 바둑 실력을 달성하며 인공지능 기술 발전과 사회적 영향에 대한 논의를 촉발했다. - 응용 기계 학습 - 알파폴드
알파폴드는 딥마인드에서 개발한 단백질 구조 예측 인공지능 시스템으로, 아미노산 서열로부터 3차원 구조를 예측하며 높은 정확도로 신약 개발과 질병 연구에 기여할 가능성이 있지만, 단백질 복합체 및 무질서 단백질 영역 예측에는 한계가 있다. - 자유-오픈 소스 소프트웨어 - 마이크로소프트 코그니티브 툴킷
- 자유-오픈 소스 소프트웨어 - ASP.NET
ASP.NET은 .NET Framework 기반의 마이크로소프트 웹 애플리케이션 개발 플랫폼으로, ISAPI를 통해 동작하며 다양한 프로그래밍 모델과 개발 도구를 지원하고, 부트스트랩, OAuth 2.0, OData 등 최신 기술을 통합하여 강력한 웹 개발 환경을 제공한다.
카타고 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
개발자 | 데이비드 우 |
최초 출시일 | 2019년 2월 27일 |
최신 안정화 버전 | 1.15.3 |
최신 안정화 버전 출시일 | 2024년 8월 5일 |
프로그래밍 언어 | C++ |
장르 | 컴퓨터 바둑 |
라이선스 | MIT License |
웹사이트 | KataGo 공식 웹사이트 |
추가 정보 | |
KataGo GTP 확장 | KataGo GTP 확장 문서 (GitHub) |
KaTrain | KaTrain (GitHub) |
2. 기술
카타고는 몬테카를로 트리 탐색과 컨볼루션 신경망을 사용하여 위치 평가 및 정책 지침을 제공한다. 딥마인드의 알파고 제로에 비해 더 빠른 학습과 강력한 성능을 위해 개선되었다.[1][11]
카타고는 점수 추정, 소형 바둑판 지원, 임의의 덤 값 및 접바둑 지원, 다양한 바둑 규칙 사용, 그리고 규칙 간의 작은 차이에 맞게 플레이 및 평가를 조정하는 기능을 갖추고 있다.
2. 1. 네트워크
카타고는 딥마인드의 알파고 제로에서 사용된 기술을 기반으로, 위치 평가와 정책 지침을 제공하는 컨볼루션 신경망을 사용하여 몬테카를로 트리 탐색을 구현한다.[1][11] 카타고의 네트워크는 사전 활성화 ResNet을 사용한다.[1]알파고 제로가 게임 보드 기록만을 입력 특징으로 가졌던 반면, 카타고의 네트워크 입력에는 바둑을 두기 위해 특별히 수작업으로 설계된 특징들이 추가로 포함되어 있다. 이러한 특징에는 넉 점, 덤의 짝수 여부, 패-생사, 사다리 등이 포함된다.[1]
네트워크의 트렁크는 기본적으로 알파고 제로와 동일하지만, 패싸움과 같은 전역적인 상황에 내부적으로 적응할 수 있도록 전역 풀링 계층 모듈이 추가되었다. 이는 Squeeze-and-Excitation Network와 유사하다.[1]
네트워크는 정책 헤드와 가치 헤드, 두 개의 헤드를 가지고 있다. 정책 헤드와 가치 헤드는 알파고 제로와 거의 동일하지만, 두 헤드 모두 더 빠른 학습을 위한 보조 손실 신호를 제공하기 위해 보조 하위 헤드를 가지고 있다.[1]
- 정책 헤드: 현재 플레이어의 이번 턴의 수와 다음 턴의 상대 플레이어의 수를 예측한다. 각 정책은 크기의 로짓 배열로, 한 점에 수를 두는 로짓과 패스하는 로짓을 나타낸다.
- 가치 헤드: 게임 결과, 예상 점수 차이, 예상 보드 소유 등을 예측한다.
네트워크에 대한 자세한 내용은 보고서 부록 A에 설명되어 있다.[1]
코드 베이스는 버전 1.12에서 텐서플로우(TensorFlow)에서 파이토치(PyTorch)로 전환되었다.
2. 2. 훈련
초기에는 420만 게임에서 최대 28개의 Nvidia V100 GPU를 사용하여 19일 동안 훈련이 진행되었다.[1]첫 번째 훈련 이후, 자원 봉사자들이 운영하는 분산 프로젝트를 통해 훈련이 진행되었으며, 네트워크 크기가 증가했다.[1] 현재 b28c512(28개 블록, 512개 채널)에 도달했다.[1]
3. 알파제로와의 차이점
알파제로와 비교했을 때 카타고의 주요 차이점은 오픈 소스 소프트웨어 및 오픈 데이터라는 점이며, 강화 학습 비용이 대폭 절감되어 가정용 PC에서도 비교적 높은 수준의 강화 학습을 수행할 수 있다는 점이다.[22] 카타고는 며칠 만에 아마추어 고단자에 도달했다.[16]
4. 리라 제로와의 차이점
카타고는 GTP 엔진에서 "kata-analyze" 명령어를 지원한다. 리지 등의 프론트 엔드 프로그램은 카타고의 수 차이 분석 결과를 얻을 수 있어, 인간의 수 계산과 판단에 도움을 준다. 리라 제로 등에서 보이는 종반 요세에서의 손해를 보는 수를 두는 가능성을 줄일 수 있다.[16]
또한 카타고는 OpenCL(v1.2 이후 지원[25])과 CUDA[16]를 모두 지원한다. (OpenCL의 최신 버전은 최적화되어 CUDA 버전보다 몇 배 빠르다는 것은 아니며, 두 버전은 거의 동일하다.) 반면 리라 제로는 OpenCL만 지원한다.[26]
5. 성능
카타고는 지속적인 훈련을 통해 기력을 향상시켜왔다.
초기 버전(v1.0)은 2019년 2월에 35대의 NVIDIA Tesla V100을 사용하여 7일간 강화 학습을 진행하여 만들어졌다.[27] 기력은 LeelaZero의 LZ130과 거의 같았으며, 이는 이미 인간의 기력을 넘어선 것이다.[29][16]
두 번째 버전(v1.1)은 2019년 5월부터 6월에 제작되었다.[27] 28대의 NVIDIA Tesla V100으로 강화 학습이 이루어졌으며, 하이퍼파라미터 개선 및 LCB(Lower confidence bound|하한 신뢰 구간영어) 도입으로 기력이 크게 향상되었다.[16][31] 19일간의 훈련 후에는 ELF OpenGo의 v2 가중치 파일을 Leela Zero로 실행한 "LZ-ELFv2"를 넘어섰다.[16]
세 번째 버전(v1.3, v1.4)은 2020년 1월부터 6월까지 제작되었다.[27] 최대 47개의 GPU를 사용하여 훈련 규모를 늘려갔다.[16]
v1.5.0 이후부터는 CPU만으로도 작동이 가능하게 되었으며(Eigen|아이겐영어 라이브러리 사용),[32] v1.8.0 이후부터는 분산 훈련을 지원하여 전 세계 사용자들이 신경망 훈련에 기여할 수 있게 되었다.[33]
특히 v1.4.5 버전의 40x256 네트워크는 157일 동안 훈련되어 1919 Elo를 달성하며 매우 높은 기력을 보여주었다.[27]
5. 1. 초기 버전 (v1.0)
2019년 2월[27]에 35대의 NVIDIA Tesla V100을 사용하여 7일간 강화 학습을 진행하여 최초 버전(g65, `v1.0`)을 만들었다. 6블록 x 96필터에서 15블록 x 192필터까지[28], 기력은 LeelaZero의 LZ130(신경망의 130번째)과 거의 같아졌다[29]. 이는 이미 인간의 기력을 넘어선 것이다[16].가중치 코드 | 버전 | 주석 | 훈련 일수 | Elo |
---|---|---|---|---|
b6c96-s103408384-d26419149 | v1.0 | 6x96 | - | - |
b10c128-s101899520-d60734663 | 10x128 | - | - | |
b15c192-s279618816-d164990022 | 15x192 | - | - |
5. 2. 두 번째 버전 (v1.1)
2번째 버전(g104, `v1.1`)은 2019년 5월부터 6월에 제작되었다.[27] 28대의 NVIDIA Tesla V100으로 6블록 x 96 필터에서 20블록 x 256 필터까지 강화 학습이 이루어졌다.[30] 하이퍼파라미터가 대폭 개선되어 불과 3.5일 만에 첫 번째 버전의 기력을 넘어섰다.[16][31] 또한 LCB(Lower confidence bound|하한 신뢰 구간영어)의 도입으로 기력이 크게 향상되었다.[31] 19일간의 훈련 후 20블록 버전이 제작되어 기력이 "LZ-ELFv2"(ELF OpenGo의 v2 가중치 파일을 Leela Zero로 실행한 것)를 넘어섰으며, Leela Zero의 40블록 버전과 비교하면 LZ200과 동등한 기력이 되었다.[16]가중치 코드 | 버전 | 주석 | 훈련 일수 | Elo |
---|---|---|---|---|
g104-b6c96-s97778688-d23397744 | v1.1 | 6x96 최종 버전 | 0.75 | -1146 |
g104-b10c128-s110887936-d54937276 | 10x128 | 1.75 | -476 | |
g104-b15c192-s297383936-d140330251 | 15x192 최종 버전 | 7.5 | 327 | |
g104-b20c256-s447913472-d241840887 | 20x256 최종 버전 | 19 | 908 |
5. 3. 세 번째 버전 (v1.3, v1.4)
3번째 버전(v1.3, v1.4)은 2020년 1월부터 6월까지 제작되었다.[27] 초기에는 29개의 GPU로 훈련을 시작하여 14일 후에는 37개, 총 38일 후에는 47개의 GPU로 훈련 규모를 늘려갔다.[16]v1.5.0 이후부터는 GPU 없이 CPU만으로도 작동이 가능하게 되었으며(Eigen|아이겐영어 라이브러리 사용),[32] v1.8.0 이후부터는 분산 훈련을 지원하여 전 세계 사용자들이 신경망 훈련에 기여할 수 있게 되었다.[33]
지속적인 훈련을 통해 다양한 버전의 가중치가 생성되었으며, 그 성능(Elo)은 다음과 같다.
가중치 코드 | 버전 | 주석 | 훈련 일수 | Elo | ||
---|---|---|---|---|---|---|
g170-b6c96-s175395328-d26788732 | 6x96 최종 버전 | 0.75 | -1184 | |||
g170-b10c128-s197428736-d67404019 | 10x128 최종 버전 | 1.75 | -280 | |||
g170e-b10c128-s1141046784-d204142634 | v1.3 | 확장 재훈련 10x128 | - | 300 | ||
g170-b20c256x2-s668214784-d222255714 | 20x256 | 15.5 | 959 | |||
g170-b15c192-s497233664-d149638345 | 15x192 | 7.5 | 512 | |||
g170-b20c256x2-s1039565568-d285739972 | v1.3.1 | 20x256 | 21.5 | 1073 | ||
g170e-b15c192-s1305382144-d335919935 | v1.3.1-nets | 확장 훈련 15x192 | - | 867 | ||
g170-b20c256x2-s1420141824-d350969033 | 20x256 | 27.5 | 1176 | |||
g170e-b15c192-s1672170752-d466197061 | v1.3.2 | 확장 훈련 15x192 | - | 935 | ||
g170-b20c256x2-s1913382912-d435450331 | 20x256 | 35.5 | 1269 | |||
g170-b20c256x2-s2107843328-d468617949 | 20x256 | 38.5 | 1293 | |||
g170e-b20c256x2-s2430231552-d525879064 | v1.3.3 | 20x256 | 47.5 | 1346 | ||
g170-b30c320x2-s1287828224-d525929064 | 30x320 | 47.5 | 1412 | |||
g170-b40c256x2-s1349368064-d524332537 | 40x256 | 47 | 1406 | |||
g170e-b20c256x2-s2971705856-d633407024 | v1.3.3-nets | 20x256 | 64.5 | 1413 | ||
g170-b30c320x2-s1840604672-d633482024 | 30x320 | 1524 | ||||
g170-b40c256x2-s1929311744-d633132024 | 40x256 | 1510 | ||||
g170e-b20c256x2-s3354994176-d716845198 | v1.3.4 | 20x256 | v1.3.5-nets | 20x256 | 92 | 1513 |
g170-b30c320x2-s2846858752-d829865719 | 30x320 | 96 | 1619 | |||
g170-b40c256x2-s2990766336-d830712531 | 40x256 | 1613 | ||||
g170e-b20c256x2-s4384473088-d968438914 | v1.4.0 | 20x256 | 117 | 1529 | ||
g170-b30c320x2-s3530176512-d968463914 | 30x320 | 1643 | ||||
g170-b40c256x2-s3708042240-d967973220 | 40x256 | 1687 | ||||
g170e-b20c256x2-s4667204096-d1045479207 | rowspan="3" | | 20x256(실험적) | 129 | 1561 | ||
g170-b30c320x2-s3910534144-d1045712926 | 30x320(실험적) | 1651 | ||||
g170-b40c256x2-s4120339456-d1045882697 | 40x256(실험적) | 1698 | ||||
g170e-b20c256x2-s4842585088-d1091433838 | rowspan="3" | | 20x256(실험적) | 136.5 | 1547 | ||
g170-b30c320x2-s4141693952-d1091071549 | 30x320(실험적) | 1653 | ||||
g170-b40c256x2-s4368856832-d1091190099 | 40x256(실험적) | 1680 | ||||
g170e-b20c256x2-s5055114240-d1149032340 | v1.4.2-nets | 20x256(실험적) | 145.5 | 1539 | ||
g170-b30c320x2-s4432082944-d1149895217 | 30x320(실험적) | 1648 | ||||
g170-b40c256x2-s4679779328-d1149909226 | 40x256(실험적) | 1690 | ||||
g170e-b20c256x2-s5132547840-d1177695086 | rowspan="3" | | 20x256 | 150 | 1577 | ||
g170-b30c320x2-s4574191104-d1178681586 | 30x320 | 1759 | ||||
g170-b40c256x2-s4833666560-d1179059206 | 40x256 | 1788 | ||||
g170e-b20c256x2-s5303129600-d1228401921 | v1.4.5 | 20x256 | 157 | 1645 | ||
g170-b30c320x2-s4824661760-d1229536699 | 30x320 | 1908 | ||||
g170-b40c256x2-s5095420928-d1229425124 | 40x256 | 1919 |
특히 v1.4.5 버전의 40x256 네트워크는 157일 동안 훈련되어 1919 Elo를 달성하며 매우 높은 기력을 보여주었다.[27]
6. 적대적 공격
2022년, 카타고는 AI 시스템의 "놀라운 실패 모드"를 입증하기 위해 설계된 적대적 공격 연구의 대상이 되었다. 연구자들은 카타고가 게임을 조기에 종료하도록 속일 수 있었다.[12][13]
적대적 훈련은 적대적 공격에 대한 방어 능력을 향상시키지만, 완벽하지는 않다.[14][15]
7. 한국 바둑에의 기여
(이전 출력이 비어 있으므로, 수정할 내용이 없습니다. 원본 소스를 제공해주시면 '한국 바둑에의 기여' 섹션을 작성할 수 있습니다.)
참조
[1]
arXiv
Accelerating Self-Play Learning in Go
2019-02-27
[2]
저널
Designing a Winning Arimaa Program
https://content.iosp[...]
2015-01-01
[3]
웹사이트
Accelerating Self-Play Learning in Go
https://blog.janestr[...]
2019-02-28
[4]
웹사이트
KataGo Distributed Training
https://katagotraini[...]
2022-11-02
[5]
웹사이트
KataGo GTP Extensions
https://github.com/l[...]
2023-01-03
[6]
Github repo
KaTrain
https://github.com/s[...]
2023-01-03
[7]
웹사이트
AI当道 中国围棋优势缩小了吗?
https://paper.xinmin[...]
2021-03-01
[8]
웹사이트
'AI 기사' 격전장에 괴물 '블랙홀'이 등장했다
https://www.chosun.c[...]
2020-04-14
[9]
웹사이트
AI Sensai FAQ
https://ai-sensei.co[...]
2022-11-02
[10]
웹사이트
Considering removing Leela Zero from our supported AI Reviewers
https://forums.onlin[...]
2022-03-31
[11]
웹사이트
Other Methods Implemented in KataGo
https://github.com/l[...]
2020-11-15
[12]
웹사이트
New Go-playing trick defeats world-class Go AI, but loses to human amateurs
https://arstechnica.[...]
2022-11-07
[13]
저널
Adversarial Policies Beat Superhuman Go AIs
https://proceedings.[...]
PMLR
2023-07-03
[14]
저널
Can AI be superhuman? Flaws in top gaming bot cast doubt
https://www.nature.c[...]
2024-07-08
[15]
arXiv
Can Go AIs be adversarially robust?
2024-06-18
[16]
웹사이트
GTP engine and self-play learning in Go
https://github.com/l[...]
lightvector/KataGo
2020-01-01
[17]
웹사이트
TensorRT Backend, Many Minor Improvements
https://github.com/l[...]
lightvector/KataGo
2020-01-01
[18]
웹사이트
katago/katago-server
https://github.com/k[...]
2021-01-14
[19]
웹사이트
v0.1
https://github.com/k[...]
katago/katago-server
2020-11-08
[20]
웹사이트
Releases
https://github.com/k[...]
katago/katago-server
2020-01-14
[21]
웹사이트
Accelerating Self-Play Learning in Go
https://blog.janestr[...]
Jane Street
2019-02-28
[22]
arXiv
Accelerating Self-Play Learning in Go
2020-11-09
[23]
웹사이트
Analyze with a fixed visit number?
https://github.com/l[...]
lightvector/KataGo
2019-12-19
[24]
웹사이트
The Name of KataGo
https://github.com/l[...]
lightvector/KataGo
2020-08-27
[25]
웹사이트
OpenCL, Windows Support, other features and fixes
https://github.com/l[...]
lightvector/KataGo
2019-07-21
[26]
웹사이트
Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.
https://github.com/l[...]
leela-zero/leela-zero
[27]
웹사이트
katago-public
https://d3dndmfyhecm[...]
2022-01-10
[28]
웹사이트
katago-public/g65/models
https://d3dndmfyhecm[...]
2020-01-01
[29]
웹사이트
Initial release
https://github.com/l[...]
lightvector/KataGo
2019-02-27
[30]
웹사이트
katago-public/g104/models
https://d3dndmfyhecm[...]
2020-01-01
[31]
웹사이트
Strong Neural Net, LCB, and many bugfixes
https://github.com/l[...]
lightvector/KataGo
2019-06-18
[32]
웹사이트
OpenCL FP16 Tensor Core Support
https://github.com/l[...]
lightvector/KataGo
2020-08-03
[33]
웹사이트
KataGo Distributed Training
https://katagotraini[...]
KataGo
2022-01-10
[34]
웹사이트
Experimental Neural Nets
https://github.com/l[...]
lightvector/KataGo
2020-06-06
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com