Needle 2 14MB 에이전트형 LLM, 200달러 미만 기기에 온디바이스 도구 호출 기능 제공
Needle 2는 200달러급 기기를 위한 풀 세션 LLM을 제공합니다
Needle 2는 45 M-parameter 모델을 14 MB 바이너리에 담아, 28 MB RAM에서 완전한 추론 세션을 실행하며, Raspberry Pi 5에서 500 tokens/sec의 디코드 속도를 달성합니다. 이를 통해 저가형 스마트폰, 웨어러블, 마이크로컨트롤러 및 로봇에서 기능적이고 프라이버시를 보호하는 AI 구현이 가능해졌습니다.
핵심 기술 성과
1. 손실 없는 2-bit 양자화로 14 MB 크기 실현
Needle 2는 사전 학습 중에 가중치, 활성화 및 KV cache를 양자화하는 커스텀 CQ2-bit 포맷인 Cactus Quants를 사용하여 엔드 투 엔드로 학습되었습니다. 모델이 한 번도 full-precision 가중치를 본 적이 없기 때문에, 2-bit 표현은 품질 저하를 일으키지 않으며, 이를 통해 45 M 파라미터가 디스크에서 단 14 MB만 차지하도록 합니다.
2. 단순화된 Attention Network로 토큰당 연산량 감소
이 아키텍처는 밀집된 MLP 프로젝션을 고정된 Walsh-Hadamard 변환과 학습된 대각 행렬로 대체하여, matmul-active 파라미터를 82 M에서 35 M으로 줄였습니다. 그 결과 연산 비용은 토큰당 70 MFLOPs로, 유사한 크기의 기존 transformer 대비 약 2~3배 감소했습니다.
3. 바이트 수준 문법 및 engram 룩업을 통한 어휘 사전 가지치기
컴파일된 바이트 수준 문법은 각 단계에서 유효한 토큰 세트를 제한하여, 구조적 토큰에 대해 **softmax의 최대 98%**를 건너뜁니다. engram 레이어는 산술 연산 없이 해시된 n-gram 테이블(≈8 M 파라미터)에서 몇 개의 행을 읽어 들여 FLOPs와 메모리 대역폭을 더욱 낮춥니다.
4. 고정 크기 슬라이딩 KV cache로 28 MB RAM 상한 보장
256-token 슬라이딩 윈도우가 KV cache의 범위를 제한하므로, 세션 메모리가 대화 길이에 따라 늘어나지 않습니다. 시스템 프롬프트와 도구 스키마는 영구적인 싱크(sink)로 고정되어 모델이 도구 정의를 잊어버리지 않도록 보장합니다.
5. 단일 바이너리, 하드웨어 적응형 런타임
C++ 엔진은 시작 시 CPU를 조사하여 최적의 커널(SDOT, NEON, AVX2, RISC-V vectors, WASM SIMD 또는 scalar)을 선택합니다. 모든 가중치는 디스크에 압축된 상태로 유지되며, 레지스터 내부에서만 확장되어 상주 메모리를 14 MB blob 크기로 유지합니다.
엣지 하드웨어 성능
| 기기 | Prefill 속도 | Decode 속도 |
|---|---|---|
| Raspberry Pi 5 | 800 tok/s | 500 tok/s |
| Meta Quest 3S / Apple Vision Pro | 400–1,500 tok/s (코어에 따라 다름) | — |
| $200‑class phones (Samsung A-Series) | 300–700 tok/s | — |
| ESP32-S3 (외부 PSRAM 포함) | 28 MB RAM 상한 내에서 실행 | — |
이 수치들은 Needle 2가 GPU나 NPU가 없는 기기에서도 완전히 오프라인으로 작동하여, 음성 제어 어시스턴트를 위한 대화형 지연 시간을 제공할 수 있음을 보여줍니다.
대형 모델 대비 도구 호출 정확도
Needle 2는 에이전트형 도구 사용 및 구조화된 추출을 위해 특수 제작되었습니다. 5개의 공개 벤치마크에서 5~70배 더 작은 크기임에도 불구하고 훨씬 더 큰 모델들과 대등하거나 능가하는 성능을 보여줍니다.
Mobile Actions (961 rows)
- Needle 2 정확도: 63.7 % (이름 정확도 98.3 %)
- FunctionGemma 270M: 전체 64.0 %, 이름 정확도 87.3 %
- LFM2.5 230M: 전체 69.1 %, 이름 정확도 93.0 %
- Apple FM (on-device): 전체 57.6 %
DroidCall (200 rows)
- Needle 2: 전체 17.0 %, 이름 정확도 36.5 %
- FunctionGemma 270M: 전체 17.5 %, 이름 정확도 37.5 %
- LFM2.5 230M: 전체 11.0 %
Seal-Tools (in-domain, 700 rows)
- Needle 2: 32.6 % 전체, 64.9 % 이름 정확도
- LFM2.5 230M: 전체 26.9 %, 이름 정확도 45.4 %
- FunctionGemma 270M: 전체 16.3 %, 이름 정확도 56.0 %
Seal-Tools (out-of-domain, 654 rows)
- Needle 2: 28.7 % 전체, 58.7 % 이름 정확도
- LFM2.5 230M: 전체 17.0 %
- FunctionGemma 270M: 전체 15.6 %
BFCL v4 single-turn (3,641 rows)
- 전체 점수: Needle 2 42.6 vs Apple FM 61.7, LFM2.5 60.8, FunctionGemma 46.1
- Well-formed 비율: Needle 2 93.4 % (FunctionGemma의 100 %와 유사)
결론: 작업이 정확한 도구 호출인 경우, Needle 2의 특화된 학습과 문법 강제 기능은 5~6배 더 큰 모델들과 경쟁할 수 있게 해줍니다.
실제 배포 사례
Pebble의 Index 01 웨어러블은 Needle 2를 로컬에서 실행하여 네트워크 의존성 없이 음성 명령을 동작으로 변환합니다. 이 기기는 화면이 없으므로 신뢰성과 지연 시간이 매우 중요하며, 14 MB 모델은 두 제약 조건을 모두 충족합니다.
"Pebble Index Ring은 화면이 없습니다. 그래서 기기에 말을 걸면 인터넷 연결 여부와 상관없이 매번 동작이 일어나야 합니다. 우리는 클라우드에 의존하는 대신 앱 내에서 Cactus Needle를 로컬로 실행합니다. 모델의 크기는 매우 작고 성능은 결코 실망시키지 않습니다." — Pebble engineering team
커뮤니티 피드백 하이라이트
"마이크로-LLM 분야는 과소평가되어 있습니다. 더 큰 에이전트가 작은 전문가 모델을 학습시키는 모델 계층 구조가 일반적인 패턴이 될 수 있습니다." — nater5000
"신뢰도 게이팅(Confidence gating)이 중요합니다. 모호한 쿼리에서 모델이 기권하는 대신 때때로 낮은 신뢰도의 호출을 반환합니다." — grenli
"ESP32-S3에서 실행하는 것이 가능하지만, 바이너리 플래싱을 위한 문서가 아직 부족합니다." — forsalebypwner
"모델의 추론 필드가 함수 호출 후에 나타나는데, 이는 다운스트림 파이프라인에서 혼란을 줄 수 있습니다." — alex7o
"4-bit보다 2-bit 포맷이 선택된 이유는 바이너리 크기를 14 MB 미만으로 유지하기 위해서였습니다. 4-bit를 사용했다면 비례하는 품질 향상 없이 크기만 커졌을 것입니다." — r0ze-at-hn
이러한 의견들은 온디바이스 에이전트 패러다임에 대한 열광과 도구, 신뢰도 보정 및 배포 편의성에 대한 실질적인 우려를 동시에 보여줍니다.
한계점 및 미해결 과제
- 일반 지식 – Needle 2는 채팅 모델이 아닙니다. 기기 동작 이외의 세상에 대한 지식이 부족하여, 개방형 질문에는 낮은 신뢰도나 잘못된 호출을 반환하는 경우가 많습니다.
- 신뢰도 보정 – 클라우드로 에스컬레이션하기 위한 임계값은 학습되지만 공개적으로 문서화되어 있지 않습니다. 사용자들은 간혹 과도하게 확신에 찬 잘못된 호출이 보고됩니다.
- 도구 스키마 유연성 – 새로운 함수를 추가하려면 Mac/PC에서 미세 조정(fine-tuning)이 필요합니다. 이 과정은 빠르지만(몇 분에서 몇 시간) 비기술직 개발자에게는 여전히 장벽입니다.
- 하드웨어 지원 – 현재 바이너리는 Cortex-M, x86, WASM을 대상으로 합니다. 일부 사용자에게는 일반적인 64비트 ARM 데스크톱에서 실행을 시도했을 때 실패한 사례가 있습니다.
Needle 2가 엣지 AI 생태계에 중요한 이유
Needle 2는 문제가 구조화된 함수 매핑으로 프레임워크화될 때 에이전트 역량에 수십억 개의 파라미터가 필요하지 않음을 입증합니다. 아키텍처, 양자화 및 런타임을 공동 설계함으로써 Cactus Compute는 대부분의 IoT 기기(≈80%의 엣지 하드웨어 비용이 $200 미만)의 메모리 및 연산 범위 내에 들어오는 모델을 제공합니다. 이는 AI 배포 모델을 클라우드 중심 API에서 프라이빗하고 즉각적이며 오프라인인 어시스턴트로 전환하여, 보청기, 홈 오토메이션, 로봇 공학 및 저가형 스마트폰 분야에서 새로운 사용 사례를 열어줍니다.
시작하기
- 모델 가중치 – Hugging Face의 Apache 2.0 라이선스 체크포인트:
Cactus-Compute/needle-2. - 런타임 – 의존성 없는 C++ 바이너리(GitHub에 소스 제공)가 최적의 커널을 자동으로 선택합니다. 브라우저용 WASM 모듈로도 사용할 수 있습니다.
- 미세 조정(Fine-tuning) – Python 패키지
needle을 사용하면 노트북에서 몇 시간 만에 사용자 정의 도구 정의를 추가하고 학습할 수 있습니다. - 데모 – 웹 플레이그라운드에서 웨어러블, 스마트 홈 및 로봇을 위한 음성-동작 시나리오를 확인할 수 있습니다.
Needle 2는 14 MB LLM이 온디바이스 도구 호출을 안정적으로 수행할 수 있음을 증명하며, 현재 존재하는 수십억 개의 저가형 엣지 기기 전반에 걸쳐 보편적이고 프라이버시를 우선시하는 AI로 가는 실질적인 경로를 제시합니다.
Sources
관련
- 프로젝트
- Dispatch
- Dispatch
- Dispatch
- Dispatch