본 콘텐츠는 사용자의 편의를 고려해 자동 기계 번역 서비스를 사용하였습니다. 영어 원문과 다른 오류, 누락 또는 해석상의 미묘한 차이가 포함될 수 있습니다. 필요하시다면 영어 원문을 참조하시기를 바랍니다.
에이전트는 대규모 언어 모델로 구동되어야 합니다. Cloudflare는 Workers AI가 문샷의 Kimi K2.5와 같은 대규모 오픈 소스 모델을 호스팅하기 위해 공식적으로 등장한다는 소식을 몇 주 전에 발표했습니다. 그 이후로 Kimi K2.5의 속도가 3배 개선되었으며 더 많은 모델이 추가로 추가되고 있습니다. 이 모델은 저희가 이번 주에 출시한 많은 에이전트형 제품, 하네스와 도구의 중추 역할을 했습니다.
AI 모델을 호스팅하는 것은 흥미로운 과제입니다. 소프트웨어와 매우 고가의 하드웨어 사이의 미묘한 균형을 유지해야 합니다. Cloudflare에서는 지능적인 소프트웨어 엔지니어링을 통해 하드웨어의 효율성을 최대한 끌어올리는 데 능숙합니다. 이 시간은 Cloudflare가 초대형 언어 모델을 실행하기 위한 기반을 어떻게 마련하고 있는지에 대한 심층 탐구입니다.
이전 Kimi K2.5 블로그 게시물에서 언급했듯이, 최상의 모델에 서비스를 제공하기 위해 다양한 하드웨어 구성을 사용하고 있습니다. 많은 하드웨어 구성은 사용자가 모델로 보내는 입력과 출력의 크기에 따라 달라집니다. 예를 들어, 모델을 사용하여 팬픽션을 작성하는 경우, 콘텐츠 페이지(출력 토큰)를 생성하도록 요청하는 동안 몇 가지 작은 프롬프트(입력 토큰)를 줄 수 있습니다.
반대로, 요약 작업을 실행하는 경우 수십만 개의 입력 토큰을 전송했지만 수천 개의 출력 토큰에 대한 작은 요약만 생성할 수 있습니다. 이처럼 상반되는 사용 사례가 제시되면 입력 토큰을 더 빠르게 처리할 수 있도록 모델 구성을 조정할 것인지, 출력 토큰을 더 빠르게 생성할 것인지 선택해야 합니다.
Workers AI에 대한 대규모 언어 모델을 출시했을 때 대부분의 사용 사례가 에이전트에 사용될 것이라는 점을 알고 있었습니다. 에이전트를 사용하면 대량의 입력 토큰을 보낼 수 있습니다. 이는 큰 시스템 프롬프트, 모든 도구, MCP로 시작됩니다. 첫 번째 사용자 프롬프트에서는 컨텍스트가 계속 커져갑니다. 사용자가 보낸 새로운 프롬프트마다 모델로 요청이 전송되며, 모델은 이전 사용자 프롬프트, 어시스턴트 메시지, 생성된 코드 등 이전에 말한 모든 것으로 구성됩니다. Workers AI의 경우 빠른 입력 토큰 처리와 빠른 도구 호출이라는 두 가지 측면에 집중해야 했습니다.
성능과 효율성을 개선하기 위해 사용하는 하드웨어 구성 중 하나는 세분화된 프리필입니다. LLM 요청을 처리하는 데는 입력 토큰을 처리하고 KV 캐시를 채우는 프리필과 출력 토큰을 생성하는 디코딩의 두 단계가 있습니다. 프리필은 일반적으로 컴퓨팅 기반인 반면, 디코딩은 메모리 기반입니다. 즉, 각 단계에서 사용되는 GPU 부분이 다르고, 프리필은 항상 디코딩 전에 수행되므로 단계가 서로 차단됩니다. 궁극적으로, 한 대의 컴퓨터에서 프리필과 디코딩을 모두 수행할 경우 모든 GPU 성능을 효율적으로 활용하고 있지 않습니다.
프리필 디코드 세분화를 사용하면 각 단계마다 별도의 추론 서버가 실행됩니다. 먼저, 프리필을 수행하여 KV 캐시에 저장하는 요청이 프리필 단계로 전송됩니다. 그런 다음 프리필 서버에서 KV 캐시를 전송하고 디코딩을 시작하는 방법에 대한 정보와 함께 동일한 요청이 디코딩 서버로 전송됩니다. 이는 서버가 수행하는 역할에 따라 서버를 독립적으로 조정하거나, 입력이 많거나 출력이 많은 트래픽을 처리하도록 확장하거나, 다른 유형의 하드웨어에서 실행할 수 있으므로 여러 가지 장점이 있습니다.
이 아키텍처를 사용하려면 비교적 복잡한 부하 분산 장치가 필요합니다. 앞서 설명한 것처럼 단순히 요청을 라우팅하는 것 외에도 캐시된 토큰과 같은 프리필 서버의 정보를 포함하도록 디코드 서버의 응답(스트리밍 SSE 포함)을 다시 작성해야 합니다. 게다가 추론 서버마다 KV 캐시 전송을 시작하기 위해 필요한 정보도 다릅니다. 이를 확장하여 토큰 인식 부하 분산을 구현했습니다. 여기에는 프리필 및 디코딩 엔드포인트 풀이 있고, 부하 분산 장치는 풀의 각 엔드포인트로 이동 중인 프리필 또는 디코딩 토큰의 수를 추정하고 이 부하를 분산시키려고 시도합니다 균등하게.
공개 모델 출시 후 입력/출력 패턴이 다시 크게 바뀌었습니다. 저희는 시간을 내어 새로운 사용 패턴을 분석한 다음 고객의 사용 사례에 맞게 구성을 조정했습니다.
다음은 동일한 양의 GPU를 사용하여 요청량이 증가하는 동안 새로운 PD 세분화 아키텍처로 트래픽을 전환한 후 p90 첫 번째 토큰까지의 시간이 감소한 그래프입니다. 테일 대기 시간 분산이 크게 개선되었습니다.
마찬가지로 토큰당 90초에 걸친 시간이 ~100ms(높은 분산 포함)에서 20~30ms로 늘어났으며, 이는 토큰 간 대기 시간이 3배 개선되었습니다.
에이전틱 사용 사례는 일반적으로 긴 컨텍스트를 가지고 있으므로 매 턴마다 입력 텐서를 다시 계산하지 않도록 효율적인 프롬프트 캐싱을 위해 최적화합니다. 당사에서는 이전에 계산된 입력 텐서가 있었던 올바른 지역으로 요청을 라우팅하기 위해 x-session-affinity 라는 헤더를 활용합니다. 저희는 Workers AI에 대규모 LLM을 출시하는 것에 대한 원래 블로그 게시물 에서 이에 대해 언급했습니다. 우리는 OpenCode와 같이 인기 있는 에이전트 장치에 세션 선호도 헤더를 추가했습니다. 그 결과 총 처리량이 크게 증가한 것을 알 수 있었습니다. 사용자와의 프롬프트 캐싱 차이도 모델을 실행하는 데 GPU가 몇 배 추가되어야 한다는 뜻입니다. 내부적으로는 KV 인식 라우팅을 갖추고 있지만, 프롬프트 캐싱을 명시하기 위해 클라이언트가 x-session-affinity를 전송하는 방식에도 의존합니다. 저희는 캐시된 토큰을 할인하여 헤더 사용을 장려합니다. 더 빠른 추론과 저렴한 가격 책정을 위해 사용자에게 프롬프트 캐싱을 활용 할 것을 적극 권장합니다.
Cloudflare는 이 헤더를 채택하기 위해 내부 사용자가 가장 많이 사용하는 헤더와 협업했습니다. 그 결과 피크 시간에는 입력 토큰 캐시 적중률이 60%에서 80%로 증가했습니다. 이는 처리할 수 있는 요청 처리량을 크게 증가시키는 동시에 OpenCode 또는 AI 코드 검토와 같이 대화형 또는 시간에 민감한 세션에 더 나은 성능을 제공합니다.
이제 더 큰 모델을 제공하므로 하나의 인스턴스가 여러 GPU에 걸쳐 있을 수 있습니다. 즉, GPU 간에 KV 캐시를 공유하는 효율적인 방법을 찾아야 했습니다. KV 캐시는 프리필의 모든 입력 텐서(세션 내 프롬프트의 결과)가 저장되는 곳이며, 처음에는 GPU의 VRAM에 있습니다. 모든 GPU에는 고정된 VRAM 크기가 있지만, 모델 인스턴스에 여러 GPU가 필요한 경우 KV 캐시가 GPU 간에 작동하며 서로 대화할 수 있는 방법이 있어야 합니다. Kimi를 위해 이를 달성하기 위해 우리는 Moonshot AI의 Mooncake 전송 엔진과 Mooncake 스토어를 활용했습니다.
Mooncake의 Transfer Engine은 고성능 데이터 전송 프레임워크입니다. 이 프로세서는 NVLink 및 NVMe over Fabric 등의 다양한 원격 직접 메모리 액세스(RDMA) 프로토콜과 함께 작동하여 CPU의 개입 없이 메모리 간 데이터를 직접 전송할 수 있습니다. 여러 GPU 머신 간 데이터 전송 속도를 개선하며, 이는 모델의 다중 GPU 및 다중 노드 구성에서 특히 중요합니다.
LMCache 또는 SGLang HiCache와 함께 사용하면 캐시는 클러스터의 모든 노드에서 공유되므로 프리필 노드는 원래 다른 노드에서 사전 채워진 이전 요청의 캐시를 식별하고 재사용할 수 있습니다. 이렇게 하면 클러스터 내에서 세션 인식 라우팅이 필요하지 않으며 트래픽 부하를 훨씬 더 고르게 분산할 수 있습니다. 또한,Mooncake Store는 캐시를 GPU VRAM 이상으로 확장하고 NVMe 스토리지를 활용할 수 있도록 지원합니다. 이렇게 하면 세션이 캐시에 유지되는 시간이 길어져 캐시 적중률이 개선되므로 더 많은 트래픽을 처리하면서 사용자에게 더 나은 성능을 제공할 수 있습니다.
LLM은 이전에 제공된 토큰을 기반으로 다음 토큰 순서를 예측하는 방식으로 작동합니다. 단순하게 구현하면 모델은 다음 n 개의 토큰만 예측하지만, 실제로는 모델의 한 번의 포워드 패스로 다음 n+1, n+2... 개의 토큰을 예측하도록 만들 수 있습니다. 이 인기 있는 기술은 추측 디코딩으로 알려져 있으며, 이에 대해서는 Workers AI에 대한 이전 게시물에서 설명했습니다.
추측 디코딩으로 더 작은 LLM(모델 초안)을 활용하여 대상 모델이 선택할 수 있는 토큰 후보를 생성합니다. 그런 다음 대상 모델은 단일 포워드 경로로 소규모 후보 토큰 풀에서 선택하기만 하면 됩니다. 토큰의 유효성을 검사하면 더 큰 대상 모델을 사용하여 토큰을 생성하는 것보다 더 빠르고 계산 비용이 적게 듭니다. 그러나 대상 모델이 궁극적으로 초안 토큰을 수락하거나 거부해야 하므로 품질은 여전히 유지됩니다.
에이전트 기반 사용 사례에서 추측 디코딩은 모델이 생성해야 하는 도구 호출과 구조화된 출력 때문에 빛을 발합니다. 도구 호출은 대체로 예측이 가능합니다. 이름과 설명이 있으며 이는 JSON 봉투에 싸여 있습니다.
Kimi K2.5로 이를 수행하기 위해 우리는 NVIDIA의 EAGLE-3 (큰 언어 모델 효율성을 위한 외삽 알고리즘) 초안 모델을 활용합니다. 투기성 디코딩을 조정하는 수단에는 생성할 미래 토큰의 수가 포함됩니다. 그 결과 초당 토큰 처리량을 가속화하면서 고품질의 추론을 달성할 수 있습니다.
Infire: Cloudflare의 독점 추론 엔진
2025년 창립기념일 주간에 발표한 바와 같이, Cloudflare는 머신 러닝 모델을 더 빠르게 만드는 독점 추론 엔진인 Infire를 보유하고 있습니다. Infire는 Rust로 작성된 추론 엔진으로, Cloudflare의 분산된 글로벌 네트워크를 추론과 관련하여 Cloudflare 고유의 과제를 지원하도록 설계되었습니다. 실행할 계획인 이 새로운 클래스의 대규모 언어 모델에 대해 Infire 지원을 확장했습니다. 따라서 이 모든 기능이 작동하도록 하려면 몇 가지 새로운 기능을 구축해야 했습니다.
Kimi K2.5 같은 대규모 언어 모델은 1조 개 이상의 매개변수로, 이는 모델 가중치 약 560GB에 해당합니다. 일반적인 H100에는 약 80GB의 VRAM이 있으며 실행하려면 모델 가중치를 GPU 메모리에 로드해야 합니다. 이는 Kimi K2.5와 같은 모델이 메모리에 로드하고 실행하려면 최소 8개의 H100이 필요하다는 것을 의미하며, 여기에는 컨텍스트 창을 포함하는 KV 캐시에 필요한 추가 VRAM도 포함되지 않은 것입니다.
처음에 Infire를 출시했을 때부터 다중 GPU에 대한 지원을 추가해야 했고, 덕분에 추론 엔진이 파이프라인 병렬 또는 텐서 병렬 모드로 여러 GPU에서 실행될 수 있었으며, 전문가 병렬도 지원되었습니다.
파이프라인 병렬 처리의 경우, Infire는 파이프라인의 모든 단계에서 적절한 부하 분산을 시도하여, 다른 단계가 실행되는 동안 한 단계의 GPU가 고갈되는 것을 방지합니다. 반면에 텐서 병렬 처리의 경우 Infire는 교차 GPU 통신을 줄이는 데 최적화하여 최대한 빠르게 통신합니다. 대부분의 모델에서 파이프라인 병렬 처리와 텐서 병렬 처리를 함께 활용하면 처리량과 대기 시간의 최상의 균형을 얻을 수 있습니다.
이미 vLLM보다 GPU 메모리 오버헤드가 훨씬 낮지만, Infire를 더욱 최적화하여 활성화와 같은 내부 상태에 필요한 메모리를 강화했습니다. 현재 Infire는 2개의 H200 GPU에서만 Llama 4 Scout를 실행할 수 있으며, KV 캐시에 남은 용량은 56GiB 이상으로, 120만 개 이상의 토큰을 저장하기에 충분합니다. 또한 Infire는 KV 캐시에 여전히 30GiB 이상이 이용 가능한 8개의 H100 GPU(예, H100)에서 Kimi K2.5를 실행할 수 있습니다. 두 경우 모두 애초에 vLLM을 부팅하는 데 문제가 있습니다.
저희는 멀티 GPU 지원을 추가하는 과정에서 부팅 시간을 개선할 수 있는 기회를 추가로 확인했습니다. Kimi K2.5와 같은 대규모 모델의 경우에도 Infire는 20초 이내에 요청에 대한 서비스를 시작할 수 있습니다. 로드 시간은 드라이브 속도에만 의존합니다.
저희는 독점 추론 엔진에 투자하여 제약이 없는 시스템에서 초당 토큰 처리량을 최대 20%까지 높일 수 있어 하드웨어를 극대화할 수 있으며, 이전에는 완전히 실현할 수 없었던 저가형 하드웨어를 사용하여 최신 모델을 실행할 수 있게 되었습니다.
매주 머신 러닝 커뮤니티를 위해 새로운 기술, 연구, 모델이 출시됩니다. Cloudflare는 GPU를 효율적으로 운영하는 동시에 고객에게 고품질의 고성능 추론을 제공하기 위해 기술 스택을 지속해서 최적화하고 있습니다. 이러한 도전 과제가 흥미롭게 느껴진다면, 인재를 채용합니다!