llmfeed

Cactus Compute, 45M 파라미터 도구 호출 모델 Needle 2 공개

Cactus
  • Cactus Compute가 45M 파라미터 도구 호출 모델 Needle 2를 아파치 2.0 라이선스로 공개했다.
  • 모델 전체가 14MB 단일 바이너리에 들어가고, 한 세션이 28MB 램에서 돌아간다고 회사는 밝혔다.
모델Needle 2
저장소Cactus-Compute/needle2
개방성오픈형
파라미터 45M
라이선스 Apache-2.0

무엇인가

  • Cactus Compute가 Needle 2를 공개했다.
  • 도구 호출(tool calling)과 기기 조작, 구조화된 데이터 추출을 위한 45M 파라미터 규모의 공개 모델이다.
  • 라이선스는 아파치 2.0이다.
  • 회사에 따르면 모델 전체가 14MB 크기의 단일 바이너리이고, 한 세션을 28MB 램에서 실행한다.
  • 모델이 바이너리 안에 구워져 있어 별도 런타임이나 다운로드, 네트워크 연결이 필요하지 않다.
  • 회사는 자체 양자화 기술인 Cactus Quants로 CQ2-bit까지 압축해 전용 엔진에 담았다고 설명했다.

구조

  • Needle 2는 회사가 Simple Attention Network라고 부르는 소형 모델 설계를 따른다.
  • FFN 자리에 Hadamard MLP를 두고, GQA 어텐션, engram 키·값 메모리, 다중 레인 hyper-connections를 쓴다고 회사는 밝혔다.
  • 설계와 제거 실험은 별도 논문(arXiv:2607.18363)에 정리돼 있다.
  • 메모리는 상한이 정해져 있다.
  • 256토큰 슬라이딩 윈도를 쓰고 도구 정의를 KV 싱크로 고정해, 대화가 길어져도 전체 메모리가 28MB 근처에 머문다고 회사는 설명했다.

어디서 돌아가는지

  • 회사가 밝힌 속도는 다음과 같다.
  • 라즈베리 파이 5에서 초당 500토큰의 디코드 속도를 내고, Meta Quest 3S와 Apple Vision Pro 같은 VR 기기에서는 초당 400~1,500토큰, 삼성 A 시리즈처럼 200달러 미만 휴대전화에서는 초당 300~700토큰이다.
  • 세션 최대 램이 28MB 수준이라 ESP32-P4 같은 마이크로컨트롤러에서도 동작하며, 외부 사용자들이 ESP32-S3에서 약 11MB로 구동했다고 알려왔다고 회사는 전했다.
  • 지원 아키텍처는 ARM64, x86-64, ARMv7, RISC-V, WebAssembly이며, 애플·윈도우·리눅스·안드로이드·라즈베리 파이에서 쓸 수 있다.
  • 명령줄 실행 파일과 정적 라이브러리, 브라우저·Node용 WebAssembly 형태로 배포된다.
  • 회사는 비교 대상으로 FunctionGemma 270M, LFM2.5 230M, Apple FM을 들며, Needle 2가 이들보다 5배에서 70배 작고 이들의 f16에 대해 2비트인 상태에서 벤치마크 승패를 주고받는다고 밝혔다.
  • 다만 모델 카드에 구체적인 점수 표는 실려 있지 않다.

동작 방식

  • Needle 2는 모든 요청을 함수 호출로 처리한다.
  • 텍스트를 넣으면 JSON이 나오고, 선언한 스키마에서 컴파일된 바이트 단위 문법이 모든 토큰을 제약한다.
  • 행동을 수행하는 것과 구조화된 데이터를 뽑아내는 것은 같은 연산이며, 무엇을 선언하는지만 다르다.
  • 별도의 JSON 모드는 없다.
  • 선언된 도구로 처리할 수 없는 요청은 빈 호출 []로 거절한다. 자유 텍스트로 대신 답하는 우회 경로는 없다.
  • 인자에는 입력에 근거가 있는 값만 들어간다. 근거가 없는 선택 항목은 추측하지 않고 생략한다.
  • 응답에는 학습된 헤드가 산출한 보정된 신뢰도 점수가 함께 실린다. 이 값은 프롬프트와 생성된 호출을 함께 평가하는 사후 헤드 점수와, 호출 토큰의 디코딩 확률 가운데 더 작은 값이다. 회사는 제품에 맞는 임계값을 정해 그 이상이면 실행하고, 그 아래면 다시 묻거나 더 큰 모델로 넘기라고 권한다.
  • reasoning 필드에는 각 인자를 입력의 어느 부분에서 끌어냈는지에 대한 짧은 설명이 담긴다. 이 부분은 문법 제약 없이 생성되고, 호출 자체만 제약된다.
  • 도구를 다섯 개 넘게 선언하면 검색 기능이 작동한다. 초기화 때 각 도구 스키마를 한 번 임베딩하고, 매 턴 질의를 임베딩해 점수가 가장 높은 다섯 개만 문맥에 넣는다. 선택되지 않은 도구는 문법에서 아예 빠져 호출할 수 없다. 임베딩은 스키마와 모델을 기준으로 만든 지문과 함께 디스크에 보관할 수 있고, 스키마가 바뀌면 바뀐 부분만 다시 임베딩한다.
  • 한 세션은 하나의 도구 묶음을 공유하고, 대화만 되감는 기능이 따로 있다.
  • 선택적인 시스템 턴에는 지시가 아니라 환경 상태를 사실로 적는다.
  • 인식되는 항목은 date, locale, device, battery, network, location, user, assistant다.
  • "내일 7시" 같은 상대적 표현은 date 사실이 있을 때만 절대 시각으로 바뀌고, 없으면 사람이 쓴 표현이 그대로 통과한다.
  • 회사는 이 턴을 넣은 경우와 넣지 않은 경우를 모두 학습했으므로 생략해도 안전하며, 여기에 지시를 적어도 모델이 그에 따라 움직이지는 않는다고 밝혔다.

미세 조정

  • 모델은 공개돼 있고 처음부터 끝까지 학습할 수 있다.
  • 자체 도구와 영역에 맞춰 미세 조정한 뒤 .cact 형식으로 내보내 기본 모델과 같은 방식으로 배포할 수 있다.

원문