← 최신 논문
🤖 machine learning

Efficient On-Device Diffusion LLM Inference with Mobile NPU

이 논문은 멀티 블록 투기적 디코딩(multi-block speculative decoding), 이중 경로 점진적 수정(dual-path progressive revision), 그리고 스왑 최적화 메모리 런타임을 채택하여 모바일 하드웨어의 한계를 극복하고 CPU 베이스라인 대비 최대 42배의 지연 시간 감소를 달려낸, 온디바이스 확산 LLM을 가속화하는 최초의 NPU 인지 추론 프레임워크인 llada.cpp를 소개한다.

원저자: Tuowei Wang, Yanfan Sun, Ju Ren

게시일 2026-06-15
📖 4 분 읽기☕ 가벼운 읽기

원저자: Tuowei Wang, Yanfan Sun, Ju Ren

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신의 스마트폰이 바쁜 주방이고, 요리사(AI)가 이야기를 쓰려고 한다고 상상해 보세요.

문제점: 느릿느릿, 한 번에 한 단어씩 쓰는 요리사

전통적인 AI 모델(당신의 휴대폰에 들어있는 것과 같은)은 이야기를 한 번에 한 단어씩 써 내려갑니다. 이것은 마치 요리사가 양파를 하나 썰고, 가스레인지가 달궈질 때까지 기다렸다가, 그다음 당근을 하나 썰고, 다시 기다려야 하는 것과 같습니다. 가스레인지가 아무리 강력하더라도, 요리사가 한 번에 한 가지 일만 할 수 있기 때문에 작업 속도는 느려질 수밖에 없습니다. 이로 인해 휴대폰에서 긴 텍스트를 생성하는 과정이 답답하게 느껴지고 배터리를 소모하게 됩니다.

새로운 아이디어: "디퓨전(Diffusion)" 요리사

**디퓨전 대규모 언어 모델(dLLM)**이라 불리는 새로운 유형의 AI는 이와 다르게 행동하려고 합니다. 이 방식은 한 단어씩 쓰는 대신, 페이지 전체를 "노이즈"(무작위한 낙서) 상태로 시작하여 이를 한꺼번에 실제 문장으로 정돈해 나갑니다. 이는 마치 요리사가 재료 더미를 통째로 조리대에 던져놓고, 동시에 완벽한 샐러드를 만들기 위해 재료들을 배치하는 것과 같습니다.

이 방식은 스마트폰의 초고속 "NPU"(대규모 병렬 연산에 특화된 전용 칩)를 훨씬 더 잘 활용할 수 있기 때문에 매우 좋아 보입니다. 하지만 여기에는 몇 가지 문제가 있습니다:

  1. "빈 팬(Empty Pan)" 문제: 요리사가 샐러드를 완성에 가깝게 완성할수록, 수정해야 할 재료가 줄어듭니다. 결국 강력한 NPU는 할 일이 부족해져서 그냥 놀게 되고, 이는 성능 낭비로 이어집니다.
  2. "아차, 마음이 바뀌었어" 문제: 때때로 요리사가 단어를 배치해 놓고 나서, "잠깐, 다음 문장이랑 안 어울리는데?"라고 깨닫기도 합니다. 그러면 AI는 다시 돌아가서 그 부분을 수정해야 합니다. 빠른 NPU에서 이런 작업을 수행하는 것은 지저분하고 전체 속도를 늦춥니다.
  3. "작은 냉장고" 문제: NPU에는 재료를 바로 요리할 수 있도록 보관하는 아주 작고 특별한 "냉장고"(메모리)가 있습니다. 만약 레시피가 너무 크면, 요리사는 재료를 넣었다 뺐다 하며 끊임없이 교체해야 하는데, 이 과정에서 시간이 오래 걸리고 에너지가 낭비됩니다.

해결책: llada.cpp

저자들은 이 세 가지 문제를 해결하기 위해 **llada.cpp**라는 새로운 시스템을 만들었습니다. 이것은 요리사가 강력한 NPU를 효율적으로 사용할 수 있게 해주는 새로운 주방 규칙이라고 생각하면 됩니다.

1. 멀티 블록 투기적 디코딩(Multi-Block Speculative Decoding): "다음 레시피 미리 보기"

비유: 요리사가 현재의 샐러드(블록 A)를 마무리하고 있는데, NPU가 남은 채소가 딱 한 잎뿐이라 지루해하고 있다고 상상해 보세요. 이때 시스템은 "이봐, 혹시 모르니까 지금 바로 다음 샐러드(블크 B)를 위한 재료 준비를 시작하자!"라고 제안합니다.
작동 원리: 현재의 블록이 100% 완료되지 않았더라도, 시스템은 몰래 미래의 단어들을 미리 작업하기 시작합니다. 이를 통해 강력한 NPU가 쉬지 않고 계속 일하게 하여 활용도를 극대화합니다. 만약 미래의 단어들이 맞다면 아주 좋고, 틀리더라도 시스템은 그냥 그것들을 버리고 다음 단계로 넘어가면 됩니다.

2. 이중 경로 점진적 수정(Dual-Path Progressive Revision): "급행 차선 vs 완행 차선"

비유: NPU는 포뮬러 원(F1) 레이싱 카와 같습니다. 믿기지 않을 정도로 빠르지만 코너를 잘 돌지는 못합니다. 반면 CPU는 믿음직하고 느린 SUV와 같습니다. 작은 변화나 까다로운 조정을 하는 데는 아주 뛰어납니다.
작동 원리: AI가 특정 단어에 대해 확신이 있을 때는 NPU가 그대로 유지합니다. 하지만 AI가 단어에 대해 확신이 없어 "마음을 바꿔야" 하는 상황이 오면, llada.cpp는 빠른 NPU 레이싱 카를 멈추지 않습니다. 대신, 이 "수정 작업"을 백그라운드에서 더 유연한 CPU SUV에게 조용히 전달합니다. NPU는 새로운 단어들을 가지고 계속 앞으로 달려나가는 동안, CPU는 뒤에서 조용히 예전의 단어들을 고쳐나갑니다.

3. 스왑 최적화 메모리 런타임(Swap-Optimized Memory Runtime): "정리된 찬장"

비유: NPU의 작은 냉장고가 너무 작아서 재료를 무작정 집어넣으면, 재료를 교체하기 위해 문을 열고 닫는 데 시간을 다 써버리게 됩니다.
작리는 방식: llada.cpp는 초정밀 찬장 관리자 역할을 합니다. 전체 레시피를 미리 살펴보고, 어떤 재료가 지금 당장 냉장고에 있어야 하고 어떤 것이 나중에 있어도 되는지를 정확히 파악합니다. 또한 요리사가 현재 요리하는 동안 다음 배치의 재료를 미리 준비해 두어, 냉장고 문이 닫혀 있는 시간을 최소화합니다. 이를 통해 데이터를 옮기는 과정에서 발생하는 "대기 시간"을 제거합니다.

결과

저자들은 이를 실제 스마트폰(OnePlus Ace5 Pro 등)에서 테스트했습니다.

  • 속도: llada.cpp가 기존 방식보다 AI를 17배에서 42배 더 빠르게 만든다는 것을 발견했습니다.
  • 품질: 작성된 이야기는 이전과 똑같이 훌륭했습니다. 즉, 속도가 빨라졌다고 해서 정확도가 떨어지지는 않았습니다.
  • 배터리: NPU가 작업을 빠르게 끝내고 유휴 상태로 머물지 않았기 때문에, 휴대폰은 전반적으로 더 적은 에너지를 사용했습니다.

요약하자면, llada.cpp는 휴대폰의 AI가 교통 체증에 갇히지 않고 자신의 초고속 두뇌(NPU)를 사용하는 법을 가르쳐주는 스마트한 관리자이며, 이를 통해 모바일 AI를 즉각적이고 반응성이 좋게 만들어 줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →