
Dragonfly 파트너: "신뢰하지 말고 직접 검증하라", 탈중앙화 추론에서의 적용
글: Haseeb Qureshi
번역: TechFlow
Llama2-70B와 같은 대규모 언어 모델을 실행하고 싶다고 가정해 보겠습니다. 이처럼 거대한 모델은 140GB 이상의 메모리를 필요로 하므로 개인용 컴퓨터에서는 원본 모델을 실행할 수 없습니다. 그렇다면 어떤 선택지가 있을까요? 아마도 클라우드 서비스 제공업체를 고려하게 되겠지만, 모든 사용 데이터를 수집하며 작업 부하를 처리하는 단일 중앙화된 회사에 신뢰를 두는 데 주저하게 될 것입니다. 따라서 필요한 것은 탈중앙화된 추론(decentralized inference)으로, 특정 공급자에 의존하지 않고도 머신러닝 모델을 실행할 수 있도록 해주는 기술입니다.
신뢰 문제
탈중앙화 네트워크에서 단순히 모델을 실행하고 출력 결과를 믿는 것만으로는 충분하지 않습니다. 예를 들어, 제가 Llama2-70B를 이용해 거버넌스 문제를 분석하도록 네트워크에 요청했을 때, 실제로는 성능이 낮은 Llama2-13B를 사용하여 훨씬 못 미치는 분석 결과를 제공하고 그 차액을 챙기고 있는지를 어떻게 알 수 있을까요?
중앙화된 세계에서는 OpenAI와 같은 기업이 명성에 손상을 입힐 수 있기 때문에 정직하다고 믿을 수 있습니다(또한 어느 정도는 LLM의 품질 자체가 자명하기 때문이기도 합니다). 그러나 탈중앙화된 세계에서는 정직함이 기본값이 아니며, 반드시 검증되어야 합니다.
여기서 바로 '검증 가능한 추론(Verifiable Inference)'이 등장합니다. 단순히 질의에 대한 응답을 제공하는 것 외에도, 요청한 모델에서 올바르게 실행되었음을 증명해야 합니다. 하지만 어떻게 말입니까?
가장 간단한 방법은 모델을 스마트 계약 형태로 체인 상에서 실행하는 것입니다. 이 방식은 출력 결과의 검증 가능성을 확실히 보장하지만, 전혀 실현 가능성이 없습니다. GPT-3는 단어를 표현할 때 12,288차원의 임베딩을 사용합니다. 현재의 가스 비용을 기준으로, 이 크기의 행렬 곱셈 연산을 체인 상에서 수행하면 약 100억 달러의 비용이 들며, 이 계산은 약 한 달 동안 매 블록을 모두 채울 정도의 용량을 차지하게 됩니다.
따라서 우리는 다른 접근 방식이 필요합니다.
이 분야를 관찰한 결과, 검증 가능한 추론을 해결하기 위한 세 가지 주요 접근법이 존재한다는 것이 명확해졌습니다. 즉, 제로지식 증명(Zero-Knowledge Proofs), 낙관적 불법 증명(Optimistic Fraud Proofs), 암호경제학(Cryptoeconomics)입니다. 각각의 방법은 고유한 보안과 비용 특성을 가지고 있습니다.

1. 제로지식 증명(ZK ML)
모델의 크기에 상관없이 실제 증명의 크기가 일정한 상태에서 대규모 모델을 실행했다는 것을 증명할 수 있다고 상상해보세요. 이것이 ZK-SNARK를 통해 구현되는 ZK ML(머신러닝)이 약속하는 바입니다.
원칙적으로 매우 우아하게 들리지만, 딥 뉴럴 네트워크를 제로지식 회로로 컴파일한 후 이를 증명하는 것은 극도로 어렵고 비용이 큽니다. 적어도 추론 비용이 1000배 증가하고 지연 시간도 1000배 늘어날 것으로 예상되며(증명 생성 시간 포함), 무엇보다도 모델 자체를 회로로 컴파일하는 과정부터 시작해야 합니다. 결국 이러한 비용은 사용자에게 전가될 것이므로 최종 사용자 입장에서는 매우 비싸게 느껴질 것입니다.
반면, 이것은 암호학적으로 올바름을 보장하는 유일한 방법입니다. ZK를 사용하면 모델 제공자가 아무리 노력해도 절대 부정행위를 할 수 없습니다. 그러나 그에 따른 비용이 너무 커서, 예측 가능한 미래에는 대규모 모델에 대해 실용적이지 못합니다.
예시: EZKL, Modulus Labs, Giza
2. 낙관적 불법 증명(Optimistic ML)
낙관적 접근법은 "믿되 확인한다"는 원칙입니다. 우리는 추론이 올바르다고 가정하며, 반례가 나타날 경우에만 이를 반박합니다. 노드가 부정행위를 시도하면, 네트워크 내의 "감시자(observer)"가 이를 지적하고 불법 증명(fraud proof)을 통해 도전할 수 있습니다. 이러한 감시자는 항상 체인을 모니터링하면서 자신이 보유한 모델을 다시 실행하여 출력 결과가 올바른지 확인해야 합니다.
이러한 불법 증명은 Truebit 스타일의 대화형 도전 방식입니다. 게임 형식의 응답 프로세스를 통해 모델 실행 궤적을 체인 상에서 반복적으로 분할하여 오류를 찾아냅니다.

실제로 이런 일이 발생한다면 엄청난 비용이 소요됩니다. 이러한 프로그램들은 규모가 크고 내부 상태가 방대하며, 단일 GPT-3 추론조차 약 1페타플롭(10⁵ 부동소수점 연산)의 비용이 듭니다. 그러나 게임 이론적으로 보면, 이러한 사태는 거의 불가능합니다(불법 증명 코드 자체도 실제로 거의 실행되지 않기 때문에 실제 운영 환경에서 올바르게 작동시키기 매우 어렵습니다).
낙관적 접근법의 장점은, 단 하나의 정직한 감시자만 존재한다면 ML 시스템 전체가 안전하다는 점입니다. ZK ML보다 비용이 저렴하지만, 각 감시자가 모든 질의를 재실행한다는 점을 기억해야 합니다. 균형 상태에서, 만약 10명의 감시자가 있다면 보안 비용이 사용자에게 전가되어, 추론 비용의 10배 이상을 지불해야 합니다(감시자 수만큼의 비용).
단점은, 낙관적 집계 기술과 마찬가지로, 응답이 검증되었음을 확신하려면 도전 기간이 종료될 때까지 기다려야 한다는 점입니다. 그러나 네트워크 파라미터 설정에 따라 며칠이 아닌 몇 분만 기다리면 되도록 조정할 수 있습니다.
3. 암호경제학(Cryptoeconomic ML)
여기서는 복잡한 기술들을 포기하고 단순한 방법을 취합니다. 즉, 지분 기반 가중 투표(stake-weighted voting)입니다. 사용자는 자신의 질의를 실행할 노드 수를 결정하고, 각 노드는 결과를 공개합니다. 결과에 차이가 있으면 이상한 노드는 슬래싱(slashing) 당합니다. 표준 오라클 메커니즘으로, 사용자가 원하는 보안 수준을 직접 설정할 수 있으며, 비용과 신뢰 사이의 균형을 맞출 수 있습니다. 체인링크가 머신러닝을 한다면 아마도 이렇게 할 것입니다.
여기서 지연 시간은 매우 짧으며, 각 노드의 제출 및 공개 단계만 필요합니다. 블록체인에 기록된다면 기술적으로 두 개의 블록 안에 처리될 수 있습니다.
그러나 보안성은 가장 약합니다. 대부분의 노드가 협력하기로 합의한다면, 이성적으로 공모할 여지가 있습니다. 사용자는 각 노드가 얼마나 많은 지분을 걸었는지, 그리고 부정행위 시 얼마나 큰 비용을 치러야 하는지를 판단해야 합니다. 즉, Eigenlayer와 같은 리스테이킹(re-staking) 및 귀속 가능한 보안(attributable security)을 활용하면, 보안 실패 시 효과적인 보험을 제공할 수 있습니다.
하지만 이 시스템의 장점은 사용자가 원하는 보안 수준을 직접 지정할 수 있다는 점입니다. 쿼럼(quorum)에 3개 또는 5개의 노드를 선택하거나, 네트워크의 모든 노드를 포함시킬 수도 있습니다. 혹은 위험을 무릅쓰고 n=1을 선택할 수도 있습니다. 여기서 비용 함수는 간단합니다. 사용자는 원하는 쿼럼 수만큼 추론 비용을 지불합니다. 3개를 선택하면 추론 비용의 3배를 지불하는 것입니다.
여기서 어려운 질문은, n=1일 때도 안전하게 만들 수 있는가입니다. 단순한 구현에서는, 고립된 노드는 감시자가 없기 때문에 항상 부정행위를 할 것입니다. 그러나 저는 만약 질의를 암호화하고 지불을 의도(intent) 기반으로 한다면, 노드가 자신이 유일한 응답자라는 사실을 알지 못하게 할 수 있다고 생각합니다. 이런 경우 일반 사용자에게 추론 비용의 2배 미만을 청구할 수도 있을 것입니다.
결국, 암호경제학적 접근법은 가장 단순하고 쉬우며 아마도 가장 저렴한 방법이지만, 원칙적으로 가장 덜 매력적이고 가장 취약합니다. 그러나 언제나 그렇듯, 중요한 것은 세부사항에 있습니다.
예시: Ritual, Atoma Network
왜 검증 가능한 ML이 어려운가?
왜 아직까지 이러한 기술들이 모두 실현되지 않았는지 궁금할 수 있습니다. 결국 ML 모델은 단지 매우 큰 컴퓨터 프로그램일 뿐이며, 프로그램의 올바른 실행을 증명하는 것은 블록체인의 핵심 기능 아닙니까?
그래서 바로 이 세 가지 검증 방법은 블록체인이 블록 공간을 보호하는 방식과 일치합니다. ZK 롤업은 ZK 증명을 사용하고, 낙관적 롤업은 불법 증명을 사용하며, 대부분의 L1 블록체인은 암호경제학을 사용합니다. 결국 우리는 본질적으로 동일한 해결책에 도달하게 됩니다. 그렇다면 ML에 적용할 때는 왜 어려운 것일까요?
ML은 독특합니다. 왜냐하면 ML 계산은 일반적으로 GPU에서 효율적으로 실행되도록 설계된 밀집된 계산 그래프로 표현되기 때문입니다. 이들은 증명을 위해 설계된 것이 아닙니다. 따라서 ZK나 낙관적 환경에서 ML 계산을 증명하려면, 실행 가능한 형식으로 다시 컴파일해야 하며, 이는 매우 복잡하고 비용이 많이 듭니다.

머신러닝의 두 번째 근본적 어려움은 비결정성(non-determinism)입니다. 프로그램 검증은 출력이 결정적(deterministic)이라고 가정합니다. 그러나 동일한 모델을 서로 다른 GPU 아키텍처나 CUDA 버전에서 실행하면 출력이 달라질 수 있습니다. 모든 노드가 동일한 아키텍처를 사용하도록 강제하더라도, 알고리즘 내에서 사용되는 난수 문제(확산 모델의 노이즈, 또는 LLM의 토큰 샘플링)는 여전히 존재합니다. 난수 시드(seed)를 통제함으로써 이러한 난수를 통제할 수는 있습니다. 그러나 마지막으로 남은 골칫거리가 있습니다. 바로 부동소수점 연산의 본질적 비결정성입니다.
거의 모든 GPU 연산은 부동소수점에서 이루어집니다. 부동소수점은 결합 법칙이 성립하지 않기 때문에 다루기 어렵습니다. 즉, 부동소수점에서는 (a + b) + c 와 a + (b + c) 가 항상 같지 않을 수 있습니다. GPU는 고도로 병렬화되어 있어 실행 순서마다 덧셈이나 곱셈의 순서가 달라질 수 있으며, 이는 출력에 작은 차이를 만들어낼 수 있습니다. 이는 단어의 이산적 성격 때문에 LLM 출력에는 큰 영향을 미치지 않을 수 있지만, 이미지 모델의 경우 픽셀 값에 미묘한 차이를 초래하여 두 이미지가 완전히 일치하지 않을 수 있습니다.
즉, 부동소수점을 피해야 하는데, 이는 성능에 막대한 타격을 줍니다. 또는 출력 비교 시 어느 정도의 유연성을 허용해야 합니다. 어느 쪽이든 세부 사항이 귀찮으며, 이를 완전히 추상화할 수 없습니다. (이것이 바로 이더리움 가상 머신(EVM)이 부동소수점을 지원하지 않는 이유이며, 일부 블록체인(Near 등)은 지원하는 이유이기도 합니다.)
요컨대, 탈중앙화 추론 네트워크는 어렵습니다. 왜냐하면 모든 세부 사항이 중요하며, 현실 세계의 세부 사항은 예상보다 훨씬 많기 때문입니다.
결론
현재로서는 블록체인과 머신러닝이 분명히 많은 공통점을 가지고 있습니다. 하나는 신뢰를 창출하는 기술이며, 다른 하나는 신뢰를 절실히 필요로 하는 기술입니다. 탈중앙화 추론의 각 접근법은 고유한 트레이드오프를 가지고 있지만, 기업가들이 이러한 도구를 활용해 최고의 네트워크를 구축하는 방식을 지켜보는 것은 매우 흥미로운 일입니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News













