저자: Haseeb Qureshi, 파트너, Dragonfly Capital 출처: medium 번역: Good Oba, Golden Finance
Lama2-70B 같은 대규모 언어 모델을 실행하고 싶다고 가정해 보죠. ="text-align: left;">Lama2-70B와 같은 대규모 언어 모델을 실행한다고 가정해 보겠습니다. 이 정도 크기의 모델에는 140GB 이상의 메모리가 필요하므로 가정용 컴퓨터에서는 원래 모델을 실행할 수 없습니다. 어떤 옵션이 있을까요? 클라우드 제공업체를 이용할 수도 있지만, 이 워크로드를 대신 처리하고 모든 사용 데이터를 수집하는 중앙 집중식 단일 회사를 신뢰하기에는 부담스러울 수 있습니다. 그렇다면 단일 제공업체에 의존하지 않고도 머신 러닝 모델을 실행할 수 있는 분산형 추론이 필요합니다.
신뢰 문제
탈중앙화된 네트워크에서는 단순히 모델을 실행하고 그 결과를 신뢰하는 것만으로는 충분하지 않습니다. 네트워크에 Llama2-70B를 사용하여 거버넌스 딜레마를 분석해 달라고 요청한다고 가정해 보겠습니다. 네트워크가 실제로 Llama2-13B를 사용하여 더 나쁜 분석을 제공하고 차액을 챙기는 것이 아닌지 어떻게 알 수 있을까요?
중앙화된 세계에서는 OpenAI와 같은 회사의 명성이 걸려 있기 때문에 (그리고 LLM의 품질이 어느 정도는 스스로를 대변하기 때문에) 이 작업을 정직하게 수행한다고 믿을 수 있습니다. 그러나 탈중앙화된 세계에서는 정직성이 가정되는 것이 아니라 입증됩니다.
이것이 바로 검증 가능한 추론이 필요한 이유입니다. 쿼리에 대한 응답을 제공하는 것 외에도 쿼리가 요청하는 모델에서 올바르게 작동한다는 것을 증명할 수 있습니다. 하지만 어떻게 할까요?
가장 쉬운 방법은 모델을 온체인 스마트 콘트랙트로 실행하는 것입니다. 이렇게 하면 확실히 출력의 유효성을 검사할 수 있지만 매우 비실용적입니다.GPT-3는 임베딩 차원이 12,288인 단어를 나타냅니다. 이 크기의 온체인 행렬 곱셈을 수행하려면 현재 가스 가격 기준으로 약 100억 달러의 비용이 들며, 계산에 약 한 달 동안 블록을 가득 채울 것입니다.
그렇지 않습니다. 다른 접근 방식이 필요합니다.
전체 상황을 살펴본 결과, 영지식 증명, 낙관적 사기 증명, 암호경제학 등 검증 가능한 추론에 대한 세 가지 주요 접근 방식이 등장했다는 것이 분명해졌습니다. 각 접근 방식에는 고유한 보안 및 비용 문제가 있습니다.
1. 영지식 증명(ZK ML)
다음과 같은 경우를 상상해 보십시오. 큰 모델을 실행했지만, 모델이 아무리 커도 증명은 실제로 크기가 고정되어 있다고 상상해 보세요. 이것이 바로 ZK ML이 ZK-SNARK의 마법을 통해 약속하는 것입니다.
원리적으로는 우아하게 들리지만, 심층 신경망을 영지식 회로로 컴파일하고 이를 증명하는 것은 매우 어렵습니다. 또한 비용이 매우 많이 들기 때문에 최소한 추론 비용은 1000배, 지연 시간(증명을 생성하는 데 걸리는 시간)은 1000배에 달하며, 이 모든 과정이 일어나기 전에 모델 자체를 회로로 컴파일하는 것은 말할 것도 없습니다. 궁극적으로 이러한 비용은 사용자에게 전가되어야 하므로 결국 최종 사용자에게 매우 비싼 비용이 발생합니다.
반면, 이것은 암호화를 통해 정확성을 보장할 수 있는 유일한 방법입니다. ZK를 사용하면 모델 제공자가 아무리 노력해도 속일 수 없습니다. 하지만 그렇게 하기 위해서는 막대한 비용이 들기 때문에 당분간은 대규모 모델에 적용하기에는 비현실적입니다.
예시: EZKL, 모듈러스 랩스, 기자
2. 낙관적 ML
2. align: left;">낙관적 접근 방식은 신뢰하되 검증하는 것입니다. 달리 입증되지 않는 한 추론이 정확하다고 가정합니다. 노드가 부정행위를 시도하면 네트워크의 '관찰자'가 부정행위를 지적하고 부정행위의 증거를 제시하며 이의를 제기할 수 있습니다. 이러한 관찰자는 항상 체인을 감시하고 자신의 모델에서 추론을 다시 실행하여 결과가 올바른지 확인해야 합니다.
이 사기 증명은 트루비트 스타일의 대화형 도전-응답 게임으로, 오류를 찾을 때까지 체인 전체에서 모델 실행 궤적을 반복적으로 분할할 수 있습니다.
이런 일이 실제로 발생한다면, 프로그램 규모가 매우 크고 내부 상태가 방대하기 때문에 비용이 매우 많이 들 것입니다. -- 단일 GPT-3 추론의 비용은 약 1페타플롭(10^5 부동소수점 연산)입니다. 그러나 게임 이론에 따르면 이런 일은 거의 발생하지 않을 것입니다(프로덕션 환경에서 코드가 공격당하는 경우는 거의 없기 때문에 부정 증명은 올바르게 인코딩하기가 어렵기로 악명이 높습니다).
낙관적인 장점은 정직한 관찰자가 주의를 기울이는 한 머신 러닝은 안전하다는 것입니다. 비용은 ZK ML보다 저렴하지만 네트워크의 각 관찰자가 각 쿼리를 자체적으로 재실행한다는 점을 염두에 두어야 합니다. 평형 상태에서는 관찰자가 10명일 경우 안전 비용을 사용자에게 전가해야 하므로 추론 비용의 10배(또는 관찰자 수에 상관없이) 이상을 지불해야 한다는 뜻입니다.
낙관적 집계와 마찬가지로 단점은 이의 제기 기간이 지날 때까지 기다려야 응답이 검증되었는지 확인할 수 있다는 것입니다. 그러나 네트워크의 매개변수화 방식에 따라 며칠이 아닌 몇 분만 기다려야 할 수도 있습니다.
예시: Ora, Gensyn(현재 지정되지 않음)
3. 암호경제학(암호경제학 ML)
이것이 바로 여기입니다. ">여기서는 화려한 기술을 모두 버리고 지분 가중 투표라는 간단한 방법을 사용합니다. 사용자가 쿼리를 실행할 노드 수를 결정하고, 각 노드가 응답을 표시하며, 응답 간에 불일치가 있는 경우 홀수 노드가 삭감됩니다. 표준 예후 예측기 - 이는 사용자가 원하는 보안 수준을 설정할 수 있는 보다 간단한 접근 방식으로, 비용과 신뢰의 균형을 맞출 수 있습니다. 만약 체인링크가 머신러닝을 사용했다면 이렇게 했을 것입니다.
여기서는 지연 시간이 빠릅니다. 각 노드에 대한 커밋 표시만 있으면 됩니다. 만약 블록체인에 기록된다면 기술적으로 두 블록에서 이 작업이 일어날 수 있습니다.
그러나 보안이 가장 취약합니다. 대부분의 노드는 충분히 교활하다면 합리적으로 공모를 선택할 수 있습니다. 사용자는 이러한 노드가 얼마나 위험한지, 부정 행위가 얼마나 많은 비용을 초래할지 유추해야 합니다. 즉, 고유 계층 재가설 및 귀속 보안과 같은 기능을 사용하면 네트워크는 보안 장애 발생 시 효과적으로 보험을 제공할 수 있습니다.
하지만 이 시스템의 장점은 사용자가 원하는 보안 수준을 지정할 수 있다는 것입니다. 중재에 3개 노드 또는 5개 노드, 또는 네트워크의 모든 노드를 포함하도록 선택할 수 있으며, YOLO를 원한다면 n=1을 선택할 수도 있습니다. 여기서 비용 함수는 간단합니다. 사용자는 원하는 노드의 쿼럼에 대해 비용을 지불합니다. 3을 선택하면 추론 비용의 3배를 지불하는 것입니다.
여기 까다로운 질문이 있습니다: n=1을 안전하게 만들 수 있을까요? 간단한 구현에서는 아무도 확인하지 않는다면 개별 노드가 매번 부정행위를 해야 합니다. 하지만 쿼리를 암호화하고 의도에 따라 지불을 한다면, 실제로 이 작업에 응답하는 유일한 노드라는 것을 노드에게 난독화할 수 있을 것 같다는 생각이 듭니다. 이 경우 일반 사용자에게 추론 비용의 2배 미만의 비용을 청구할 수 있을 것입니다.
결국 암호경제학적 접근 방식은 가장 간단하고, 가장 쉽고, 아마도 가장 저렴하지만, 가장 섹시하지 않고, 원칙적으로 가장 안전하지도 않습니다. 하지만 언제나 그렇듯이 차이를 만드는 것은 세부 사항입니다.
예시: Ritual(현재 특정되지 않음), Atoma Network
검증 가능한 머신러닝이 어려운 이유
왜 아직 모든 것을 갖추지 못했는지 궁금할지도 모릅니다. 결국, 머신러닝 모델은 본질적으로 매우 큰 컴퓨터 프로그램일 뿐입니다. 프로그램이 올바르게 실행되는지 증명하는 것은 오랫동안 블록체인의 기초가 되어 왔습니다.
이러한 세 가지 검증 방법은 블록체인이 블록 공간을 보호하는 방식을 반영합니다 - ZK 롤업은 ZK 증명을 사용하고, 낙관적 롤업은 부정 증명을 사용하며, 대부분의 경우 L1 블록체인은 암호경제학을 사용합니다. 놀랍지 않게도 본질적으로 동일한 해결책에 도달하게 됩니다. 그렇다면 이를 머신러닝에 적용할 때 무엇이 어려울까요?
ML 계산은 일반적으로 GPU에서 효율적으로 실행되도록 설계된 고밀도 계산 그래프로 표현되기 때문에 고유합니다. 이러한 그래프는 증명하도록 설계되지 않았습니다. 따라서 ZK 또는 낙관적 환경에서 ML 계산을 증명하려면 이를 가능하게 하는 형식으로 다시 컴파일해야 하며, 이는 매우 복잡하고 비용이 많이 듭니다.
머신러닝의 두 번째 근본적인 어려움은 불확실성입니다. 프로그램 유효성 검사는 프로그램의 결과가 결정론적이라고 가정합니다. 하지만 동일한 모델을 다른 GPU 아키텍처나 CUDA 버전에서 실행하면 다른 결과를 얻을 수 있습니다. 모든 노드가 동일한 아키텍처를 사용하도록 강제하더라도 알고리즘에 사용되는 무작위성 문제(확산 모델의 노이즈 또는 LLM의 토큰 샘플링)가 여전히 발생할 수 있습니다. RNG 시드를 제어하여 무작위성을 해결할 수 있습니다. 하지만 이 경우에도 부동소수점 연산에 내재된 불확실성이라는 마지막 위협적인 문제에 직면하게 됩니다.
GPU의 거의 모든 연산은 부동소에서 이루어집니다. 부동 소수점은 연관성이 없기 때문에 까다롭습니다. 즉, 부동 소수점의 경우 (a + b) + c가 항상 a + (b + c)와 같지는 않습니다. GPU는 고도로 병렬화되어 있기 때문에 덧셈이나 곱셈을 수행할 때마다 순서가 달라질 수 있으며, 이로 인해 출력에 작은 차이가 발생할 수 있습니다. 단어의 불연속적인 특성을 고려할 때 이는 LLM의 출력에 영향을 미치지는 않지만 이미지 모델의 경우 픽셀 값이 약간 달라져 두 이미지가 완벽하게 일치하지 않을 수 있습니다.
즉, 성능에 큰 타격을 주는 부동 소수점을 피하거나 출력을 비교할 때 약간의 여유를 허용해야 합니다. 어느 쪽이든 세부 사항은 복잡하고 완전히 추상화할 수 없습니다. (이것이 바로 NEAR와 같은 일부 블록체인이 플로트를 지원함에도 불구하고 EVM이 플로트를 지원하지 않는 이유입니다.)
요약하자면, 탈중앙화된 추론 네트워크는 모든 세부 사항이 중요하고 현실은 엄청나게 많은 세부 사항을 가지고 있기 때문에 어렵습니다.
결론
현재 블록체인과 머신러닝은 공통점이 많다는 것은 분명합니다. 하나는 신뢰를 만드는 기술이고, 다른 하나는 신뢰가 절실히 필요한 기술입니다. 각각의 탈중앙화된 추론 접근 방식에는 고유한 장단점이 있지만, 저는 기업가들이 이러한 도구를 사용하여 최고의 네트워크를 구축하는 방법을 배우는 데 매우 관심이 있습니다.