최근 수정 시각 : 2026-07-13 15:15:27

NNUE







1. 개요2. 역사
2.1. 체스에서의 도입2.2. 오목으로의 확장
3. 핵심 원리
3.1. 1. 패턴 기반 특징 분해3.2. 2. 패턴 인덱스 코드북3.3. 3. 증분 업데이트 (Incremental Update)
4. 장단점
4.1. 장점4.2. 단점
5. 활용 사례6. 관련 기술7. 공식 링크8. 각주

1. 개요

NNUE(Efficiently Updatable Neural Network[1])는 CPU 환경에서 효율적으로 연산할 수 있도록 설계된 경량 신경망 아키텍처이다.

알파제로(AlphaGo Zero) 방식의 딥러닝 AI들이 강력한 성능을 내기 위해 고성능 GPU를 필수적으로 요구했던 반면, NNUE는 보드 상태가 조금씩 변할 때마다 신경망 전체를 다시 계산하지 않고 영향을 받은 국소 영역만 선택적으로 갱신하는 증분 업데이트(Incremental Update) 기법을 핵심 원리로 삼는다. 덕분에 일반적인 가정이용 CPU 환경에서도 초당 수천만 번 이상의 무지막지한 국면 평가(수읽기) 속도를 달성할 수 있게 되었다.

2018년 일본장기(쇼기) AI 엔진인 YaneuraOu에 적용하기 위해 최초로 고안되었으며, 이후 2020년 오픈소스 체스 엔진인 스톡피시(Stockfish 12)에 성공적으로 이식되면서 체스 판의 패러다임을 완전히 바꾸어 놓았다. 현대에 이르러서는 체스와 쇼기에만 머무르지 않고, 오목 및 렌주 분야의 최상위권 AI 엔진인 Rapfi 등 다양한 보드게임 AI 영역으로 성공적으로 이식되며 현대 보드게임 AI 평가 함수의 새로운 표준으로 자리 잡았다.

2. 역사

2.1. 체스에서의 도입

스톡피시는 전통적으로 수동 설계된 평가 함수를 사용하는 강력한 체스 엔진이었다. 2020년, Stockfish 개발팀은 NNUE를 통합하여 평가 함수를 신경망 기반으로 교체했다. 그 결과, Stockfish는 당시 지배적이었던 릴라 체스 제로 (LC0) 와의 대결에서 압도적인 성능 향상을 보이며 체스 엔진 랭킹 1위를 탈환했다.

2.2. 오목으로의 확장

Stockfish의 성공 이후, 오목 AI 개발자들도 NNUE의 개념을 오목 도메인에 적용하려는 시도가 있었다. 대표적으로 Rapfi가 NNUE 기반의 경량 신경망인 MixNet을 개발하여 오목에 최초로 성공적으로 도입한 사례로 평가받는다.[2]

3. 핵심 원리

3.1. 1. 패턴 기반 특징 분해

NNUE의 첫 번째 단계는 보드 상태를 국소적 선형 패턴 (local line-shaped patterns)으로 분해하는 것이다. Rapfi의 MixNet을 기준으로, 15x15 보드 위의 각 위치(교차점)에서 4가지 방향 (수평, 수직, 대각선 /, 대각선 )의 선형 패턴을 추출한다.[3]

각 패턴은 해당 방향의 연속된 셀 상태(빈칸/흑돌/백돌)를 하나의 특징 인덱스로 인코딩한다. 이는 보드 전체를 개별 셀이 아닌 국소적 패턴의 조합으로 분해하는 접근법이다.

3.2. 2. 패턴 인덱스 코드북

추출된 모든 패턴(오목 기준 약 40만 가지)의 특징을 미리 계산하여 코드북 (codebook) 형태로 저장한다.[4] 추론(inference) 시에는 패턴 인덱스를 코드북에서 조회(lookup)하는 것으로 신경망 계산 없이 즉시 특징을 얻을 수 있다.

이는 대규모 교사 네트워크(Teacher Network, 깊은 CNN)의 지식을 소형 학생 네트워크(Student Network, MixNet)로 압축하는 지식 증류 (Knowledge Distillation) 기법을 통해 학습된다.

3.3. 3. 증분 업데이트 (Incremental Update)

NNUE의 가장 중요한 핵심 원리이다. 한 수가 놓일 때마다 전체 신경망을 다시 계산하는 대신, 영향을 받은 국소 영역만 업데이트한다.[5]

Rapfi의 경우, 한 번의 착수로 인해 영향을 받는 패턴은 약 12-20개에 불과하다. 즉, 보드 전체(225개 위치)를 다시 계산할 필요 없이 극소수만 갱신하면 된다. 이는 알파-베타 가지치기 탐색 알고리즘과 결합할 때 엄청난 속도 향상을 가져온다.

4. 장단점

4.1. 장점

* GPU 불필요: CNN 기반 AI와 달리 일반 CPU 환경에서도 높은 성능을 발휘한다.
* 높은 속도 (NPS): 증분 업데이트로 인해 초당 수천만 노드 탐색이 가능하다.
* 낮은 메모리 사용량: 경량 구조로 인해 1GB 미만 메모리에서도 구동 가능하다.
* 에너지 효율: GPU 대비 하드웨어 전력 소모가 획기적으로 적다.

4.2. 단점

* 초기 학습 비용: 경량 학생 네트워크를 가르칠 대규모 교사 네트워크 학습에는 강력한 GPU 클러스터가 필수적이다.
* 표현력 한계: 깊은 CNN 대비 구조가 상대적으로 얕아 전역적 국면의 복잡한 표현력 한계가 존재한다.[6]
* 확장성 문제: 네트워크 크기(파라미터)를 단순히 키우면 수읽기 속도 저하로 인해 오히려 실전 성능이 하락하는 임계점이 존재한다.

5. 활용 사례

<colbgcolor=#eeeeee,#2d2f34> 분야 엔진/프로젝트 설명
체스 스톡피시 (Stockfish) NNUE 개념을 주류 보드게임 커뮤니티에 최초로 확산시킨 주역 엔진
오목/렌주 Rapfi 보드 평면을 국소 패턴으로 분해하여 오목 도메인 이식에 성공한 최상위 AI
변종 체스 Fairy-Stockfish 샹치, 쇼기, 장기, 태국체스 등 수많은 변종 보드게임에 NNUE 적용

6. 관련 기술

* 지식 증류 (Knowledge Distillation)
* 알파-베타 가지치기 (Alpha-Beta Pruning)
* 합성곱 신경망 (CNN)
* ResNet

7. 공식 링크

* Stockfish NNUE : https://tests.stockfishchess.org/nns
* Rapfi NNUE 트레이너 : https://github.com/dhbloo/pytorch-nnue-trainer

8. 각주


[1] 줄여서 'Neural Networks Updatable Efficiently'라고도 부른다.[2] Rapfi는 Gomocup 2024에서 우승하고 Botzone 랭킹 1위를 기록하며 NNUE 기반 오목 AI의 가능성을 입증했다. (Rapfi 논문, Rapfi GitHub 저장소)[3] Rapfi 논문[4] Rapfi 논문[5] Rapfi GitHub 저장소[6] Rapfi 논문