본문으로 건너뛰기

오픈소스 커뮤니티 참여

KataGo는 활발한 오픈소스 프로젝트로, 다양한 방법으로 기여에 참여할 수 있습니다.

KataGo에 참여하는 방법은 주로 네 가지입니다: 분산 학습 네트워크(katagotraining.org)에 GPU 연산 능력 기여, GitHub에서 이슈 보고, 문서 개선, 그리고 C++/Python 코드 기여입니다; 가장 진입 장벽이 낮은 방법은 GPU가 있는 컴퓨터로 자가 대국을 실행하여 연산 능력을 기여하는 것입니다.


기여 방법 개요

방법난이도요구사항
연산 능력 기여낮음GPU가 있는 컴퓨터
이슈 보고낮음GitHub 계정
문서 개선중간기술 내용에 익숙함
코드 기여높음C++/Python 개발 능력

연산 능력 기여: 분산 학습

KataGo Training 소개

KataGo Training은 전 세계 분산 학습 네트워크입니다:

  • 자원봉사자가 GPU 연산 능력을 기여하여 자가 대국 실행
  • 자가 대국 데이터를 중앙 서버에 업로드
  • 서버가 정기적으로 새 모델 학습
  • 새 모델을 자원봉사자에게 배포하여 대국 계속

공식 웹사이트: https://katagotraining.org/

참여 단계

1. 계정 생성

https://katagotraining.org/에서 계정 등록.

2. KataGo 다운로드

# 최신 버전 다운로드
wget https://github.com/lightvector/KataGo/releases/download/v1.15.3/katago-v1.15.3-cuda11.1-linux-x64.zip
unzip katago-v1.15.3-cuda11.1-linux-x64.zip

3. contribute 모드 설정

# 첫 실행 시 설정 안내
./katago contribute -username YOUR_USERNAME -password YOUR_PASSWORD

시스템이 자동으로:

  • 최신 모델 다운로드
  • 자가 대국 실행
  • 대국 데이터 업로드

4. 백그라운드 실행

# screen 또는 tmux로 백그라운드 실행
screen -S katago
./katago contribute -username YOUR_USERNAME -password YOUR_PASSWORD
# Ctrl+A, D로 screen 나가기

기여 통계

https://katagotraining.org/contributions/에서 확인 가능:

  • 기여 순위
  • 총 기여 대국 수
  • 최근 학습된 모델

이슈 보고

어디서 보고

좋은 이슈 보고서 포함 내용

  1. KataGo 버전: katago version
  2. 운영체제: Windows/Linux/macOS
  3. 하드웨어: GPU 모델, 메모리
  4. 전체 오류 메시지: 전체 로그 복사
  5. 재현 단계: 문제를 어떻게 트리거하는지

예시

## 문제 설명
benchmark 실행 시 메모리 부족 오류 발생

## 환경
- KataGo 버전: 1.15.3
- 운영체제: Ubuntu 22.04
- GPU: RTX 3060 12GB
- 모델: kata-b40c256.bin.gz

## 오류 메시지

CUDA error: out of memory


## 재현 단계
1. `katago benchmark -model kata-b40c256.bin.gz` 실행
2. 약 30초 대기
3. 오류 발생

문서 개선

문서 위치

  • README: README.md
  • GTP 문서: docs/GTP_Extensions.md
  • Analysis 문서: docs/Analysis_Engine.md
  • 학습 문서: python/README.md

기여 프로세스

  1. 프로젝트 Fork
  2. 새 브랜치 생성
  3. 문서 수정
  4. Pull Request 제출
git clone https://github.com/YOUR_USERNAME/KataGo.git
cd KataGo
git checkout -b improve-docs
# 문서 편집
git add .
git commit -m "Improve documentation for Analysis Engine"
git push origin improve-docs
# GitHub에서 Pull Request 생성

코드 기여

개발 환경 설정

# 프로젝트 복제
git clone https://github.com/lightvector/KataGo.git
cd KataGo

# 컴파일 (Debug 모드)
cd cpp
mkdir build && cd build
cmake .. -DUSE_BACKEND=OPENCL -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)

# 테스트 실행
./katago runtests

코딩 스타일

KataGo는 다음 코딩 스타일을 사용합니다:

C++:

  • 2 스페이스 들여쓰기
  • 중괄호 같은 줄
  • 변수명은 camelCase
  • 클래스명은 PascalCase
class ExampleClass {
public:
void exampleMethod() {
int localVariable = 0;
if(condition) {
doSomething();
}
}
};

Python:

  • PEP 8 준수
  • 4 스페이스 들여쓰기

기여 영역

영역파일 위치필요 기술
핵심 엔진cpp/C++, CUDA/OpenCL
학습 프로그램python/Python, PyTorch
GTP 프로토콜cpp/command/gtp.cppC++
Analysis APIcpp/command/analysis.cppC++, JSON
테스트cpp/tests/C++

Pull Request 프로세스

  1. Issue 생성: 먼저 하고 싶은 변경사항 논의
  2. Fork & Clone: 자신의 브랜치 생성
  3. 개발 및 테스트: 모든 테스트 통과 확인
  4. PR 제출: 변경 내용 상세히 기술
  5. Code Review: 관리자 피드백에 대응
  6. 병합: 관리자가 코드 병합

PR 예시

## 변경 설명
New Zealand 규칙 지원 추가

## 변경 내용
- rules.cpp에 NEW_ZEALAND 규칙 추가
- GTP 명령어 `kata-set-rules nz` 지원 업데이트
- 단위 테스트 추가

## 테스트 결과
- 모든 기존 테스트 통과
- 새 테스트 통과

## 관련 Issue
Fixes #123

커뮤니티 리소스

공식 링크

리소스링크
GitHubhttps://github.com/lightvector/KataGo
Discordhttps://discord.gg/bqkZAz3
학습 네트워크https://katagotraining.org/

토론 공간

  • Discord: 실시간 토론, 기술 Q&A
  • GitHub Discussions: 장문 토론, 기능 제안
  • Reddit r/baduk: 일반 바둑 AI 토론

관련 프로젝트

프로젝트설명링크
KaTrain교육 분석 도구github.com/sanderland/katrain
Lizzie분석 인터페이스github.com/featurecat/lizzie
Sabaki기보 편집기sabaki.yichuanshen.de
BadukAI온라인 분석baduk.ai

인정과 보상

기여자 명단

모든 기여자는 다음에 등록됩니다:

  • GitHub Contributors 페이지
  • KataGo Training 기여 순위표

학습 수확

오픈소스 프로젝트 참여의 수확:

  • 산업급 AI 시스템 아키텍처 학습
  • 전 세계 개발자와 교류
  • 오픈소스 기여 기록 축적
  • 바둑 AI 기술 심층 이해

추가 읽기