Cactus Needle 3: 8~29MB 온디바이스 툴콜링·추출 모델
Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash
TL;DR Highlight
8~29MB 모델이 모바일 툴콜에서 10배 큰 모델을 앞섰지만 실사용은 아직 거칠다
Who Should Read
스마트홈·모바일 앱에 오프라인 툴콜링이나 구조화 추출을 넣고 싶은 임베디드·앱 개발자
Core Mechanics
- 8~29MB 바이너리 하나로 동작
- Needle 3은 모바일·웨어러블·로봇·스마트홈·자동차·마이크로컨트롤러용 파운데이션 모델이다.
- 파라미터는 29M~121M, 레이어는 2~20개다.
- 범용 채팅 능력을 포기하는 대신 툴콜과 추출에 집중했다.
- 툴콜은 10배 큰 모델 이김
- 모바일 툴콜에서 크기가 10배인 모델보다 정확하다고 주장한다.
- 추출은 2~3배 큰 모델과 비슷하다고 한다.
- 비교 대상 모델은 f16 vLLM, DeepSeek V4 Flash는 클라우드 API로 돌렸다.
- 레이어를 골라 크기 조절
- 모든 레이어가 점점 용량이 커지는 서브네트워크라서 2L부터 20L까지 고를 수 있다.
- 이를 'intelligence laddering'이라 부르며 CQ2-bit 바이너리는 9~29MB다.
- Raspberry Pi 5에서 디코드 400~4k tok/s, 프리필 1~10k tok/s다.
- 파인튜닝하면 DeepSeek V4 Flash 추월
- DroidCall 파인튜닝으로 모든 서브네트워크가 18~36점 올랐다.
- 4레이어(29M)부터 튜닝본이 DeepSeek V4 Flash를 넘는다고 한다.
- 하위 태스크 하나를 한 epoch 튜닝한 결과다.
Community Reactions
- 스마트홈 데모에서 간접 표현이 자주 틀렸다는 경험
- "it's too cold"에 온도를 내리고 "make it hot"도 높은 confidence로 20→18로 내렸다는 후기가 있다.
- "warm the house"는 온도 대신 조명을 따뜻한 밝기로 바꿨다고 한다.
- "turn all the lights on/off" 같은 직접 명령은 잘 됐다고 한다.
- reasoning 필드는 믿기 어렵다는 의견
- 차 데모에서 "turn it up"을 볼륨 낮춤으로 해석했다는 사례가 있다.
- 집 데모에서 알람 끄기를 맞게 추론하고도 실행하지 않았다고 한다.
- "My car crashed I need help"에 confidence 1로 음악 재생을 골랐다는 사례도 있다.
- Runescape DB 툴콜에선 FunctionGemma가 낫더라는 경험
- 파인튜닝 후 정확한 인자 일치가 FunctionGemma BF16 85.2%, Needle 3 W4A8 20.4%, Needle 2 W4 18.7%였다고 한다.
- Needle 2보다는 개선됐다고 한다.
- 라벨링 분류에서도 MNLI가 훨씬 나았다는 보고가 있다.
- 데이터셋과 안티 유스케이스를 밝혀야 한다는 의견
- 이런 모델은 데이터셋이 모델링만큼 중요하고 곡명·아티스트 같은 고유명사는 스마트홈 기기만큼 어렵다는 의견이 있다.
- 작은 모델이 LLM을 이긴다는 과장 주장이 늘어 정작 유용한 혁신이 묻힌다는 지적이 있다.
How to Apply
- 내 도구 5개로 오프라인 툴콜 테스트
- 오늘 pip install cactus-needle 후 지금 쓰는 도구 3~5개를 @needle.tool로 감싸 직접 쓰는 문장 20개를 돌려 보라.
- 직접 명령과 간접 표현을 섞어 정답률을 따로 기록하라.
- confidence 임계값으로 실행·확인·거절 분기
- 서비스에 0.7 이상은 즉시 실행, 그 미만은 확인 질문, 빈 결과는 거절로 붙여라.
- 위험한 기기(오븐·난방)는 임계값을 더 높이거나 항상 확인을 거쳐라.
- 도구 설명을 좁게 쓰고 triggers 추가
- 도구를 동작 하나당 하나로 쪼개고 enum은 사용자가 말하는 단어로 이름 지어라.
- 반드시 도구에 닿아야 하는 의도에는 정규식 triggers를 붙여라.
- 타깃 도메인으로 LoRA 파인튜닝 후 기존 모델과 비교
- 내 도구 세트로 LoRA 튜닝한 4L 서브네트워크와 현재 쓰는 모델을 같은 테스트셋으로 비교하라.
- 인자 일치율과 지연·RAM을 함께 재서 교체 여부를 정하라.
Try It
# 터미널에서 실행: Needle 3 툴콜 간단 테스트 (원문 예시 기반)
pip install cactus-needle
# 아래를 test.py로 저장 (get_weather 등 내 함수로 교체)
import needle
from typing import Literal
@needle.tool(triggers=[r"\b(turn|switch|power|flip)\b.*\b(on|off)\b", r"\btoggle\b"])
def control_device(device: str, action: Literal["on", "off", "toggle"]):
"Switch or toggle any named smart-home device."
return {"device": device, "action": action}
agent = needle.Needle(tools=[control_device])
r = agent.complete("{{사용자 문장}}")
calls = r["function_calls"]
if calls and r["confidence"] >= 0.7:
print("실행", calls)
elif calls:
print("확인 질문", calls, r["reasoning"])
else:
print("거절")
# 이어서 해 볼 것: "it's too cold" 같은 간접 표현을 넣고 confidence가 낮게 나오는지 확인Terminology
관련 논문
Mercury 3: 규모를 키운 diffusion LLM, 초당 1,000토큰 이상
Diffusion LLM을 40배 키웠더니 속도 4~8배, 품질은 속도 특화 모델 수준
Timestral: Mistral의 시계열 파운데이션 모델
209M 파라미터 시계열 모델이 3대 벤치마크 1위, CPU에서도 돌아간다
DeepSeek V4.1 Flash 1017 (Max) 성능·속도·가격 분석
DeepSeek V4.1 Flash 1017 Max는 지능 지수 45에 211 tok/s, 입력 $0.30
LLM 프록시를 직접 안 돌리면 무슨 일이 벌어지는지 어떻게 아나
자체 LLM 프록시를 세웠더니 키·모델·캐시 미스를 직접 볼 수 있다
DeepSeek V4.1 Flash 1017: 싼 가격에 1M 컨텍스트를 주는 에이전트용 모델
DeepSeek V4.1 Flash 1017은 입력 $0.05/M, 1M 컨텍스트의 에이전트용 모델
DeepSeek-V4.1-Flash-1017 공개: 더 짧게 생각하고 더 빠르게 일하는 에이전트용 모델
DeepSeek V4.1 Flash 마이너 업데이트로 코딩·에이전트 벤치 점수↑, 실행 시간·출력 길이↓
Llmspeed: 로컬 LLM 속도를 하드웨어 구매 전에 체감해 보는 시뮬레이터
GPU·모델을 고르면 로컬 LLM 속도를 미리 체감하게 해 주는 시뮬레이터