머신러닝(ML) 모델을 위한 커널 수준 증명 메커니즘

avatar
ODAILY
06-11
이 기사는 기계로 번역되었습니다
원문 표시

원문 작성자: 장즈용

"코끼리를 어떻게 먹을까? 한 입씩 먹는다."

최근 몇 년간 머신러닝(ML) 모델은 놀라운 속도로 비약적인 발전을 이루었습니다. 모델 능력이 향상됨에 따라 그 복잡성도 동시에 급증했으며 - 현대의 첨단 모델은 종종 수백만 또는 수십억 개의 매개변수를 포함하고 있습니다. 이러한 규모의 도전에 대응하기 위해 다양한 영지식 증명 시스템이 등장했으며, 이러한 시스템은 항상 증명 시간, 검증 시간, 증명 크기 사이에서 동적 균형을 달성하는 데 주력해 왔습니다.

표 1: 모델 매개변수 규모의 지수적 성장

현재 영지식 증명 분야의 대부분의 작업이 증명 시스템 자체 최적화에 집중되어 있지만, 종종 간과되는 핵심 차원이 있습니다 - 대규모 모델을 어떻게 더 작고 처리하기 쉬운 하위 모듈로 합리적으로 분할할 것인가입니다. 왜 이 점이 그렇게 중요한지 궁금할 수 있습니다.

아래에서 자세히 설명하겠습니다:

현대 머신러닝 모델의 매개변수 수는 수십억 개에 달하며, 암호학적 처리와 무관하더라도 이미 매우 높은 메모리 리소스를 차지합니다. 영지식 증명(Zero-Knowledge Proof, ZKP) 시나리오에서는 이 도전이 더욱 확대됩니다.

각 부동소수점 매개변수는 대수 영역의 요소로 변환되어야 하며, 이 변환 과정 자체가 메모리 사용량을 약 5~10배 증가시킵니다. 또한 대수 영역에서 부동소수점 연산을 정확하게 시뮬레이션하기 위해 추가 연산 오버헤드가 필요하며, 이는 일반적으로 5배 정도입니다.

종합적으로 볼 때, 모델의 전체 메모리 요구량은 원래 규모의 25~50배까지 증가할 수 있습니다. 예를 들어, 10억 개의 32비트 부동소수점 매개변수를 가진 모델은 변환된 매개변수 저장만으로 100~200GB의 메모리가 필요할 수 있습니다. 중간 계산 값과 증명 시스템 자체의 오버헤드를 고려하면 전체 메모리 사용량은 쉽게 테라바이트 수준을 넘어섭니다.

현재 주류 증명 시스템인 Groth 16와 Plonk는 최적화되지 않은 구현에서 일반적으로 모든 관련 데이터를 동시에 메모리에 로드할 수 있다고 가정합니다. 이러한 가정은 기술적으로는 가능하지만 실제 하드웨어 조건에서는 매우 도전적이며, 사용 가능한 증명 계산 리소스를 크게 제한합니다.

Polyhedra의 솔루션: zkCuda

zkCuda란 무엇인가?

우리의 《zkCUDA 기술 문서》에서 언급한 바와 같이:
Polyhedra가 출시한 zkCUDA는 고성능 회로 개발을 위한 영지식 컴퓨팅 환경으로, 증명 생성 효율성 향상을 위해 설계되었습니다. 회로 표현 능력을 희생하지 않으면서 zkCUDA는 하위 증명기와 하드웨어의 병렬 능력을 충분히 활용하여 빠른 ZK 증명 생성을 실현할 수 있습니다.

zkCUDA 언어는 문법과 의미론적으로 CUDA와 매우 유사하여 기존 CUDA 경험이 있는 개발자에게 매우 친숙하며, 그 하위 구현은 Rust로 이루어져 안전성과 성능을 모두 보장합니다.

zkCUDA를 통해 개발자는 다음과 같은 작업을 수행할 수 있습니다:

  • 고성능 ZK 회로를 신속하게 구축;

  • GPU 또는 MPI를 지원하는 클러스터 환경과 같은 분산 하드웨어 리소스를 효율적으로 예약하고 활용하여 대규모 병렬 컴퓨팅 실현.

왜 zkCUDA를 선택하는가?

zkCuda는 GPU 컴퓨팅에서 영감을 받아 설계된 고성능 영지식 컴퓨팅 프레임워크로, 초대규모 머신러닝 모델을 더 작고 관리하기 쉬운 계산 단위(커널)로 분할할 수 있으며, CUDA와 유사한 프론트엔드 언어를 통해 효율적으로 제어할 수 있습니다. 이 설계는 다음과 같은 핵심 이점을 제공합니다:

1. 정밀하게 일치하는 증명 시스템 선택

zkCUDA는 각 계산 커널에 대해 세분화된 분석을 지원하고 가장 적합한 영지식 증명 시스템과 매칭할 수 있습니다. 예를 들어:

  • 고도로 병렬화된 계산 작업의 경우 GKR과 같이 구조화된 병렬성을 잘 처리하는 프로토콜을 선택할 수 있습니다;

  • 규모가 작거나 구조가 불규칙한 작업의 경우 컴팩트한 계산 시나리오에서 낮은 오버헤드를 가진 Groth 16과 같은 증명 시스템이 더 적합합니다.

맞춤형 백엔드 선택을 통해 zkCUDA는 다양한 ZK 프로토콜의 성능 이점을 최대화할 수 있습니다.

2. 더 스마트한 리소스 스케줄링 및 병렬 최적화

다른 증명 커널은 CPU, 메모리, I/O에 대한 리소스 요구사항이 크게 다릅니다. zkCUDA는 각 작업의 리소스 소비를 정확하게 평가하고 지능적으로 스케줄링하여 전체 처리량을 최대화할 수 있습니다.

더욱 중요한 것은 zkCUDA가 CPU, GPU, FPGA를 포함한 이종 컴퓨팅 플랫폼 간 작업 분배를 지원하여 하드웨어 리소스의 최적 활용을 실현하고 시스템 수준의 성능을 크게 향상시킬 수 있다는 점입니다.

(번역 계속됨, 지면 관계상 일부만 표시)

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트