AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Needle – 초소형 디바이스에서 함수 호출을 수행하는 26M 파라미터 SLM

Needle은 Cactus Compute가 공개한 2,600만 파라미터 함수 호출(function calling) 모델이다. Gemini 3.1에서 증류한 Simple Attention Network 구조를 사용하며, 휴대폰·워치·안경 같은 소비자 디바이스에서 개인 AI가 도구를 호출하는 시나리오를 겨냥한다.

핵심 아이디어

Needle은 범용 대화 모델이 아니라 단일 턴 함수 호출에 초점을 맞춘 초소형 SLM이다. 사용자 질의와 도구 스키마를 입력받아 어떤 도구를 어떤 인자로 호출할지 생성한다.

프로젝트가 공개한 기본 구조는 다음과 같다.

항목내용
파라미터26M
토크나이저BPE 8,192
구조인코더 12층 + 디코더 8층, GQA/RoPE, cross attention
사전학습TPU v6e 16개에서 200B 토큰
후처리 학습단일 턴 함수 호출 데이터 2B 토큰
라이선스MIT

왜 작은 모델인가

개인 AI가 항상 클라우드 프론티어 모델을 호출하면 비용, 지연시간, 프라이버시 문제가 생긴다. Needle은 “대화 전체를 잘하는 모델”이 아니라 “로컬에서 도구 선택을 빠르게 처리하는 모델”로 역할을 좁힌다.

이 접근은 local-slmlitert-lm이 다루는 온디바이스 AI 방향과 맞닿아 있다. 대형 모델은 복잡한 추론을 맡고, 초소형 모델은 반복적·구조화된 라우팅을 맡는 식의 하이브리드 구성이 가능하다.

실행 예시

git clone https://github.com/cactus-compute/needle.git
cd needle && source ./setup
needle playground

플레이그라운드는 http://127.0.0.1:7860에서 열리며, 가중치를 자동 다운로드한 뒤 사용자의 도구 정의로 테스트와 파인튜닝을 수행한다.

Python에서는 체크포인트와 토크나이저를 불러와 질의와 도구 스키마를 전달한다.

from needle import SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer

params, config = load_checkpoint("checkpoints/needle.pkl")
model = SimpleAttentionNetwork(config)
tokenizer = get_tokenizer()

result = generate(
    model, params, tokenizer,
    query="What's the weather in San Francisco?",
    tools='[{"name":"get_weather","parameters":{"location":"string"}}]',
    stream=False,
)

한계와 적합한 용도

Needle은 FunctionGemma-270M, Qwen-0.6B, Granite-350M, LFM2.5-350M보다 작은 규모를 내세운다. 다만 저장소도 명시하듯 더 큰 모델은 대화 능력과 범용성에서 유리하다. Needle은 다음 상황에 더 적합하다.

  • 제한된 로컬 하드웨어에서 함수 호출 라우터가 필요한 경우
  • 도구 스키마가 좁고 반복되는 개인 AI 앱
  • 초소형 모델 구조와 증류·파인튜닝 실험
  • 모바일·웨어러블 AI의 로컬 전처리 계층

관련 문서

  • local-slm — 로컬 소형 언어 모델 개요
  • gemma — Google 경량 오픈 모델 계열
  • litert-lm — Google의 엣지 디바이스 LLM 추론 프레임워크
  • llm-inference — LLM 추론 과정의 기본 원리

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)