2026.02.06

회사 소개
스노우플레이크는 2012년 설립된 클라우드 기반 데이터 플랫폼 기업입니다. 초기에는 기업 데이터를 클라우드 환경에서 효율적으로 저장하고 관리하는 데이터 웨어하우스 서비스를 제공했으나, 현재는 데이터 분석 및 AI 서비스를 아우르는 AI 시대의 종합 데이터 플랫폼으로 발전했습니다. B2B 기업으로서 생성형 AI 도입을 추진하는 기업들과의 협업을 활발히 진행하고 있습니다.
솔루션 소개: SwiftKV
스노우플레이크 AI Research가 개발한 SwiftKV는 프롬프트 처리 시 연산 오버헤드를 줄이는 추론 최적화 솔루션입니다. 전통적인 KV 캐시 압축을 넘어, LLM 추론 과정, 특히 긴 입력(프롬프트) 처리에서 발생하는 중복 계산을 줄여 추론 처리량과 비용 효율을 동시에 개선합니다.
인터뷰이 소개
Yuxiong He 는 스노우플레이크의 Distinguished AI Engineer로서 LLM 개발·연구를 총괄하며, Snowflake 파운데이션 모델 Arctic 프로젝트를 공동 리드하고 있습니다.
Samyam Rajbhandari는 Snowflake의 Principal Architect로서 LLM 추론 최적화를 총괄하며, SwiftKV 등 비용과 지연 시간을 획기적으로 줄이는 핵심 기술을 이끌고 있습니다.
Q. Yuxiong과 Samyam, 인터뷰 시간을 내 주셔서 감사합니다. 스노우플레이크의 SwiftKV, 그 개발 배경과 구조, 앞으로의 전망 등을 인터뷰에서 이야기해 보고 싶은데요. 우선, SwiftKV가 기업 환경에서 AI의 운영 비용을 줄여주는 메커니즘이 뭔가요?
저희야말로 SwiftKV 소개할 수 있는 시간을 만들어주셔서 감사합니다. AI 모델의 작동 과정을 크게 두 단계로 나눌 수 있는데요. 먼저 사용자가 입력한 내용을 이해하는 단계, 그리고 그 다음에 실제로 답변을 만들어내는 - 생성하는 - 단계가 있죠.

스노우플레이크에서 많은 기업과 생성형 AI 서비스 관련 프로젝트를 하다 보니 아주 흥미로운 점을 발견했는데요. 특히 기업 환경의 경우에는, AI가 처리해야 할 입력값이 출력값보다 훨씬 큰 경우가 대다수라는 거예요. 예를 들어서, 긴 문서를 요약할 때, 수십 페이지 이상의 문서를 읽고, 그 결과로 몇 줄의 요약문을 만들어 내잖아요? AI는 입력이든 출력이든, 처리하는 글자 수만큼 비용이 발생하니까, 결과적으로 대부분의 비용이 ‘긴 입력값을 처리’하는데 들어가게 됩니다.
그렇다면, 이 입력값의 처리 과정을 효율화한다면 큰 임팩트가 있겠죠! 마치 사람이 긴 문서를 읽을 때, 처음에는 대충 흝어보고, 중요한 부분만 자세히 읽는다든가 하는 것처럼요. AI 모델의 구조를 새롭게 설계해서, 입력값을 더 효율적으로 처리하게 만든 게 바로 SwiftKV의 기본 아이디어입니다.
조금 더 기술적으로 자세하게 이야기를 해 보면, 보통 기업용 LLM 서비스에서는 입력 토큰 (프롬프트) 대 출력 토큰 (생성)의 비율이 약 10:1이더라구요. 그래서 프리필 (Prefill) 비용이 늘어나고 응답 대기 시간이 길어지죠. SwiftKV는 프롬프트 토큰의 처리 시간과 비용을 줄이면서도 생성된 토큰이 높은 품질을 유지하도록 설계된, 새로운 모델 변환 및 증류 (Distillation) 기법이라고 할 수 있겠습니다.

Q. 아 그렇군요, 재미있는 발견이고 아이디어네요! 그런데, 대부분의 기법이 그렇듯이, 효율성을 높인다거나 하면 그 이면에 성능의 저하가 있다든가 하는, 소위 트레이드오프 (Tradeoff)가 있기 마련인데요. SwiftKV는 효율성을 높이면서도 AI의 성능은 유지한다고 하는데, 그 비밀이 뭔가요?
네, 아주 중요한 포인트인데요. 바로 두 가지의 중요한 발견 때문이예요. 먼저, AI 모델의 각 레이어에서 일어나는 변화를 저희 Snowflake AI Research 팀이 자세히 관찰해 보니, 전체 레이어의 중간층 쯤을 지난 후에는 의미있는 변화가 거의 없다는 걸 발견했어요. 쉽게 말해서, 책의 후반부를 꼼꼼히 읽는다고 해서 책의 핵심 내용에 대한 이해가 크게 달라지지 않는다는 거에요, LLM의 경우에는요.
여기서 개발자들이 설명한 건, 위의 그림에 작게 표시되어 있는 SwiftKV의 세 가지 중요한 기법 중 하나인데요. 일단 그 세 가지 기법은 ‘SingleInputKV’, ‘AcrossKV’, ‘Knowledge Distillation’입니다. SingleInputKV는 후반 레이어의 KV 캐시를 훨씬 앞 레이어의 출력을 사용해서 미리 채운다는 건데, 이게 위에서 설명하는 내용이구요 (그래서 Prefill의 계산 요구사항을 50% 줄여준다는 겁니다). AcrossKV는 인접 레이어의 KV 캐시를 병합해서 메모리 풋프린트를 줄이고 더 큰 배치 크기를 지원해서 처리량을 높여주죠. Knowledge Distillation에 대해서는 밑에서 이어서 이야기하고 있습니다.
[편집자주] |
두 번째는, 우리가 AI 모델이 가진 지식을 효율성을 위해서 희생시킨 게 아니라, 그저 지식을 더 효율적으로 사용하는 방법을 가르쳤을 뿐이라는 거죠. SwiftKV를 통해서 모델을 ‘Rewiring’ 시키더라도 ‘Knowledge Distillation’ 기법을 활용해서 기존 AI 모델이 가진 지식을 효율적으로 새 모델이 보유할 수 있도록 하는 거죠.
이렇게 해서 결과적으로 성능 저하는 평균 1% 미만 - 사용자가 차이를 거의 느끼지 못하는 수준 - 으로 최소화하면서도 비용은 최대 75%까지 절감할 수 있게 된 겁니다. 특히 긴 문서를 요약한다거나, 코드를 분석한다거나, SQL을 생성한다거나 하는 작업에서 그 효과가 큽니다.
Q. 잘 이해했습니다. 그런데 이 기술은, 특정한 AI 모델에서만 사용할 수 있는 건가요 아니면 범용성이 있는 기술인가요?
아 네, SwiftKV의 의미가 거기에도 있는데요. 이 기술은 대부분의 최신 AI 모델에 적용할 수 있습니다. 현재는 메타에서 만든 Llama 2에 먼저 적용해서 그 효과를 입증했다고 보시면 되고, 저희 내부적으로는 다른 여러 AI 모델에서도 테스트를 해 봤는데, 결과가 좋았습니다.
저희가 바라는 건, 앞으로 새로 만들어지는 AI 모델들이 처음 만들어질 때부터 이런 효율적인 구조를 가지면 좋겠다는 거예요. 그렇게 되면 AI를 도입하고 운용하는 비용이 전반적으로 낮아질 수 있고, 결과적으로 더 많은 기업과 개발자들이 AI를 활용할 수 있게 될 거라고 기대합니다.
Q. 답변 감사합니다. 최근 DeepSeek 등장 이후로 오픈소스에 대한 논의가 한층 더 많이 되고 있는데요, 스노우플레이크에서도 이 SwiftKV 기술을 누구나 사용할 수 있도록 공개하셨다고 들었습니다. 그 배경이 뭘까요?
네, 말씀대로, 저희 스노우플레이크에서는 SwiftKV와 관련된 모든 것을 공개했습니다 - AI 모델 자체는 물론이고, 실행하는 데 필요한 모든 코드, 그리고 'Arctic Training'이라는 교육용 프레임웍까지요. Arctic Training은 단순히 SwiftKV를 위한 도구가 아니라, AI 모델을 더 쉽고 빠르게 개선할 수 있도록 도와주는 종합적인 도구예요.

특히 주목할 만한 점은, SwiftKV 모델을 만드는 전체 과정, 요리로 치자면 '레시피'까지 모두 공개했다는 거예요. 다른 연구자들도 자신만의 효율적인 AI 모델을 만들 수 있기를 바랍니다. 저희가 지금까지 50%~75%의 비용 절감을 달성했지만, 이게 끝이 아니라고 생각해요. 더 많은 연구자들이 참여하면 더 좋은 방법들이 나올 거라고 확신합니다.
실제로 개발자와 연구자들을 위한 온라인 커뮤니티도 운영하고 있어요. 디스코드 채널을 통해 SwiftKV나 Arctic Training에 대한 질문도 받고, 새로운 아이디어도 공유하고 있습니다.
Q. 네, 운영하시는 커뮤니티가 활발하게 돌아가면서 더 많은 효율적인 모델이 나오면 좋겠네요. 자, 그런데 한계가 없는 기술은 없죠. 이 기술의 한계점이나 이슈가 있다면 어떤 걸까요?
물론입니다. 모든 기술이 그렇듯이, SwiftKV도 당연히 만능이 아니죠. 특히 아까 말씀드린 비용 효과는, AI를 어떤 유즈케이스에 어떻게 사용하느냐에 따라 크게 달라지게 됩니다. 가장 큰 효과를 볼 수 있는 경우는, AI에게 긴 내용을 입력하고 짧은 답변을 받는 경우예요.
예를 들어서 ▲학술 문서, 법률 문서, 매뉴얼 등 긴 문서를 요약할 때 ▲대량의 코드베이스를 분석해서 버그를 찾을 때 ▲데이터베이스 검색을 하기 위한 SQL 문을 만들 때 같은 경우는 그 효과가 아주 큽니다. 실제로 스노우플레이크의 고객사들이 AI를 사용하는 패턴을 분석해보니까, 평균적으로 입력하는 내용이 출력되는 내용의 10배 정도 되더라고요. 특히 기업 환경에서 대량의 데이터에서 인사이트를 찾으려고 할 때 이런 패턴이 자주 나타납니다.
반대로, 채팅처럼 짧은 대화를 주고받거나, AI에게 긴 글을 써달라고 할 때는 비용 절감 효과가 크지 않을 수 있습니다.
Q. 그렇다면, 앞으로 AI를 더 효율적으로 만들 수 있는, 다른 방법들은 어떤 것들이 있을까요?
AI의 효율성을 높이는 방법은 여러가지가 있죠. 마치 자동차의 연비를 높이기 위해서 엔진을 개선하는 방법도 있고, 차체를 가볍게 만드는 법도 있고, 운전 패턴을 바꾸는 방법도 있는 것처럼요.
우선 생각나는 건, 하드웨어 최적화예요. 엔비디아나 Cerebras 같은 회사들이 새로운 AI 전용 칩을 만들면 그 칩의 특성에 맞게 AI 모델을 최적화할 수 있어요 - 특정한 도로의 조건에 맞는 타이어를 고르는 것과 비슷하겠네요.
둘째로는, SwiftKV처럼 AI 모델 자체를 더 효율적으로 만드는 방법이 있겠죠. 불필요한 부분을 줄이는 Pruning, 정보를 더 압축적으로 저장하는 Quantization 등이 많이 시도됩니다.
셋째로는, 특정한 상황별로 맞는 특별한 최적화 방법이 있을 거에요. 예를 들어, AI에게 비슷한 질문을 여러 번 할 때 이전에 처리한 내용을 재활용한다든가 할 수 있겠죠 - 다소 케이스 바이 케이스이긴 할 테고, 그만큼 스케일하기도 어려울 수는 있습니다.