# Needle - Gemini 도구 호출을 증류한 2600만 파라미터 모델

> Clean Markdown view of GeekNews topic #29466. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29466](https://news.hada.io/topic?id=29466)
- GeekNews Markdown: [https://news.hada.io/topic/29466.md](https://news.hada.io/topic/29466.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-05-13T17:37:45+09:00
- Updated: 2026-05-13T17:37:45+09:00
- Original source: [github.com/cactus-compute](https://github.com/cactus-compute/needle)
- Points: 1
- Comments: 1

## Topic Body

- **Needle**은 Gemini 3.1을 2600만 파라미터 **Simple Attention Network**로 증류한 실험적 모델이며, Mac/PC에서 로컬 파인튜닝까지 가능함
- 목표는 휴대폰, 시계, 안경 같은 **소비자 기기**에서 쓰는 작은 AI를 재정의하는 것이며, 개인 AI용 단일 실행 도구 호출에 초점을 둠
- 프로덕션에서는 [Cactus](https://github.com/cactus-compute/cactus) 위에서 동작하며, **prefill 6000 toks/sec**, decode 1200 속도를 냄
- 가중치는 [Cactus-Compute/needle](https://huggingface.co/Cactus-Compute/needle)에 완전 공개되어 있고, **데이터셋 생성**도 함께 공개됨
- 사전학습은 **16 TPU v6e**에서 200B 토큰으로 27시간 진행됐고, 후속 학습은 단일 실행 함수 호출 데이터셋 2B 토큰으로 45분 진행됨
- 단일 실행 함수 호출에서는 **FunctionGemma-270m**, Qwen-0.6B, Graninte-350m, LFM2.5-350m보다 낫다고 제시되지만, 해당 모델들은 더 넓은 범위와 용량을 갖고 대화형 설정에서 강점을 가짐
- 작은 모델은 다루기 까다로울 수 있어, 제공되는 **웹 UI**에서 자신의 도구로 테스트하고 버튼 클릭으로 맞춤 파인튜닝하는 흐름을 권장함
- `needle playground`는 `http://127.0.0.1:7860`에서 웹 UI를 열며, 가중치는 자동으로 내려받아 테스트와 파인튜닝에 사용할 수 있음
- Python 사용 시 `SimpleAttentionNetwork`, `load_checkpoint`, `generate`, `get_tokenizer`로 쿼리와 도구 스키마를 넣어 `get_weather` 같은 **도구 호출 JSON**을 생성할 수 있음
- CLI는 `playground`, `finetune`, `run`, `train`, `pretrain`, `eval`, `tokenize`, `generate-data`, `tpu`를 제공해 추론, 학습, 평가, 데이터 생성, TPU 관리를 다룸
- 모델 구성은 `d=512`, `8H/4KV`, `BPE=8192`이며, 인코더 12층과 디코더 8층, GQA+RoPE, cross attention, gated residual, tied linear, shared embedding을 사용함

## Comments



### Comment 57404

- Author: neo
- Created: 2026-05-13T17:37:46+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48111896) 
- **도구 사용 모델**의 판별력에 대한 예시나 데이터가 있는지 궁금함  
  예시는 “샌프란시스코 날씨가 어때” 같은 것이고, 전달되는 도구는 `tools='[{"name":"get_weather","parameters":{"location":"string"}}]'` 정도임  
  10년 넘게 전에 SPARQL과 지식 그래프로 이런 문제를 처리할 수 있는 것[1]을 만든 적이 있음  
  진짜 궁금한 건 **모호성 처리**가 얼마나 잘 되는지임  
  “내일 10시에 커피 마시며 보자” 같은 문자와 “이거 저장해” 같은 명령을 보내면, 수백 개까지는 아니어도 수십 개 가능한 도구 중에서 “일정 추가” 동작을 고를 수 있는지 궁금함  
  [1] [https://github.com/nlothian/Acuitra/wiki/About](<https://github.com/nlothian/Acuitra/wiki/About>)
  - 아래에 연결된 Hugging Face로 테스트해봤는데 인상적이지 않았음  
    프롬프트는 “상사에게 늦는다고 연락해야 해”였고, 결과는 `20mins [{"name":"set_timer","arguments":{"time_human":"20 minutes"}}]`였음  
    이메일 도구를 쓰지 않았고, 2~3가지 다른 방식으로도 물어봤지만 비슷했음

- Google의 대응이 걱정되지 않는지 궁금함  
  Google은 증류 시도에 대해 “학생 모델 성능을 떨어뜨릴 수 있는 실시간 선제 방어”로 대응한다고 알려져 있음  
  감지됐다면 의도적으로 더 멍청하지만 그럴듯한 Gemini 변형을 먹였을 수도 있음: [https://cloud.google.com/blog/topics/threat-intelligence/dis...](<https://cloud.google.com/blog/topics/threat-intelligence/distillation-experimentation-integration-ai-adversarial-use#:~:text=Google%20continuously%20detects%2C%20disrupts%2C%20and%20mitigates%20model%20extraction%20activity%20to%20protect%20proprietary%20logic%20and%20specialized%20training%20data%2C%20including%20with%20real%2Dtime%20proactive%20defenses%20that%20can%20degrade%20student%20model%20performance.>)  
  다만 이 모델은 작고 도구 사용에만 집중하니, 토큰 사용량 면에서는 전체 모델을 증류하려는 사람들 근처에도 못 갈 가능성이 큼
  - **Gemma 모델**을 로컬에서 돌려 증류할 수도 있고, 도구 사용이 가능한 다른 모델도 가능함
  - 학습 데이터 관점에서는 **도둑을 털어먹는** 느낌이기도 함

- 자연어로 인자를 선택적으로 지정할 수 있는 **명령줄 프로그램** 같은 걸 만드는 게 가능해질지도 모르겠음  
  물론 “파싱”을 위해 14MB와 계산을 추가로 포함하는 것에 반대할 사람도 많을 테고, 모두가 그렇게 하기 시작하면 꽤 안 좋을 수도 있음  
  그래도 이제 가능해졌다는 점이 정말 흥미로움  
  프로그램 사용법을 이해하도록 미세조정한 모델을 같이 포함할 수 있음  
  예를 들어 `> toolcli what can you do`는 `toolcli --help summary`를 실행하고, `toolcli add tom to teamfutz group`은 `toolcli --gadd teamfutz tom`이 되는 식임
  - Needle은 **INT4**용으로 학습됐고, 플레이그라운드에서 보는 것도 INT4라서 14MB에 불과함  
    다만 같은 과제는 여전히 남아 있음

- “needle playground”의 **라이브 데모**를 공개하면 좋겠음  
  크기가 작아서 작은 VPS 어딘가에서 돌리는 비용도 꽤 저렴할 것 같음
  - WebGPU로도 빠르고 쉽게 가능할 듯함
  - 문제는 규모 대응뿐이고, 바로 쓸 수 있는 인프라가 아직 준비되지 않았음  
    그래도 누구나 할 수 있고, 노트북에서 바로 실행하기도 쉬움  
    VPS 경로도 시도해보겠음
  - 이걸 chonklm.com에 올려보겠음

- “검색 작업에는 FFN이 필요 없다”는 관찰이 흥미로움  
  지식이 문맥 안에 있다면 그 작업에는 **FFN 가중치**가 중복이라는 주장에 가까움  
  여러 번의 호출에 걸쳐 상태를 추적해야 하는 **다중 턴 도구 호출**에도 일반화되는지, 아니면 거기서 깨지는지 궁금함  
  단일 호출은 쉬운 경우임

- 흥미롭고, 초기 Claude Code 사용 때 봤던 관찰과도 맞아떨어짐  
  Sonnet은 더 많은 문맥을 모으려고 도구를 빠르게 호출하는 경우가 많았고, Opus는 가진 문맥으로 문제를 해결하려고 더 오래 추론하곤 했음  
  이 때문에 중복 함수가 많이 생기고 개발이 느려졌지만, 새 모델들인 GPT-5.5와 Opus 4.6에서는 이런 문제가 줄어든 듯함  
  내 결론은 “더 멍청한”, 즉 더 작은 모델이 **에이전트 실행 껍데기**로 더 나을 수도 있고, 적어도 많은 문제에서 더 싸고 빠르게 돌리기 현실적일 수 있다는 것임  
  Gemini가 긴 구간의 도구 호출을 특히 잘한다고 느끼지는 못했음  
  실제 Codex나 Claude Code 세션처럼 사용자 질의 사이에 긴 도구 호출 사슬이 있는 흔적을 증류하면 흥미로울 듯함  
  개인적으로는 32GB M2 MacBook Pro 같은 장비에서 쉽게 돌면서, **도구 호출 강화학습**을 주된 목표로 삼은 약간 더 큰 모델이 있으면 좋겠음  
  Kimi나 Qwen 같은 공개 가중치 모델들이 가까워지고 있지만, 작은 기기에 맞추기 위해 필요한 양자화가 성능을 꽤 떨어뜨리는 것 같음
  - 핵심은 LLM을 **반복 루프**로 돌리지 않는 것임  
    요즘 에이전트 프레임워크 유행은 어리석고, 대부분 LLM 회사 매출을 늘리기 위해 존재한다고 봄  
    LLM은 대체로 쓸모가 제한적이지만, 한 번의 도구 사용과 결합하면 훨씬 유용하고 신뢰 가능해짐  
    나는 openrouter API 위에 아주 특정한 작업용 도구 묶음을 직접 만들어 씀  
    버튼을 누르면 LLM이 유용한 일 하나를 하는 방식이지, 버튼을 누르고 LLM이 5분 동안 도구 호출을 루프로 돌리며 올바른 순서로 처리하길 바라는 방식이 아님  
    여러 도구 호출이 필요하면 코드에서 결정적으로 연결함  
    A의 출력을 확인한 뒤 B나 C로 진행할 수 있어서 훨씬 신뢰 가능하고, 시간과 토큰도 더 효율적임  
    에이전트 루프는 거대한 사기에 가깝다고 봄
  - 거대 AI 회사들이 자기 “도구”의 빈틈을 그대로 남겨둔 걸 메우느라 시간을 쓰지 않았으면 함  
    왜 우리가 어떻게든 “작동하게 만들려고” 애써야 하는지 모르겠음  
    Google, MS, Meta, OpenAI 등은 이제 자기 도구를 은근히 “Intelligence”라고 부르려 하고, 심지어 “Artificial Intelligence”도 아닌데, 그렇다면 왜 지능적이지 않고 왜 작동하지 않는가  
    1조 달러 넘는 투자가 들어갔는데도 우리가 여전히 슬롭 생성기가 반쯤 유효한 출력을 내게 하려고 최고의 마법 주문과 설정을 고민해야 하나  
    일부 기술 리더들이 자기들의 이상한 “문명” 구상 속에서 우리를 굴복시키겠다고 노골적으로 위협하는 와중에 말임  
    우리의 더 나은 두뇌를 쓸 곳은 따로 있고, 마법 신탁의 무력한 보조자로 스스로를 낮추지 말자는 생각임

- “모델이 외부 지식 소스에 의존하는 한 트랜스포머 네트워크에서 MLP를 완전히 제거할 수 있다”는 Cactus 실험 결과가 재미있음  
  마침 오늘 내 학생 한 명도 이를 확인하는 연구 결과를 발표했음  
  Qwen에서 **MLP**를 제거했더니 모델은 여전히 입력에 대한 변환 작업은 할 수 있었지만, 지식은 잃었음

- M과 B의 차이가 너무 미묘함  
  **0.026B**라고 쓰는 편을 제안함
  - “M” 표기는 적어도 BERT와 T5/FLAN 시절부터 있었음  
    요즘 LLM 개발자들이 십억 단위 모델에 더 익숙하더라도 이 표기는 유효함
  - 이 글의 많은 댓글이 너무 헷갈렸는데, 덕분에 일부가 26B로 읽고 있어서 댓글이 말이 안 됐다는 걸 깨달음

- 기대됨, 작업이 훌륭함  
  Gemma4 엣지 모델은 에이전트 사용에 좋을 거라고 약속됐지만, 내가 해본 모든 테스트에서는 정말 실망스러웠음  
  가장 기본적인 **도구 사용 시나리오**에서도 실패함  
  Needle에 대해 도구 사용 벤치마크를 돌려봤는지, 아니면 계획이 있는지 궁금함  
  있다면 저장소에 결과를 추가해주면 좋겠음

- 알람 설정과 장보기 목록 추가를 방금 시도해봤는데, **Siri보다 잘했음**
