cactus-compute/needle
Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, ASR, structured extraction and embeddings on phones, wearables, smart homes, robots, cars and microcontrollers.
Needle – 초소형 디바이스 파운데이션 모델
소개 – Needle은 모바일, 웨어러블, 로봇, 스마트 홈 허브, 차량용 ECU, 심지어 마이크로컨트롤러와 같은 매우 작은 디바이스에 적합한 파운데이션 모델 제품군(최신 버전은 Needle 3)입니다. 모델 전체가 단일 8‑29 MB 바이너리(.cact 파일)로 배포되며, CPU, WASI, 브라우저 및 기타 엣지 런타임에서 작동하는 사용자 지정 C++ 엔진에서 실행됩니다.
핵심 기능
| 기능 | 내용 |
|---|---|
| 도구 호출 | 공개한 Python 함수(도구) 목록을 기반으로, Needle은 적절한 도구를 선택하고 자연어 입력에서 모든 인수를 채웁니다. 여러 호출을 순서대로 반환하거나 일치하는 도구가 없을 때 빈 목록을 반환할 수 있습니다. |
| 구조화된 추출 | JSON 스키마(형태)를 선언합니다. 복잡한 텍스트를 입력하면 Needle은 항상 파싱 가능한 타입 필드를 조정된 신뢰도 점수와 함께 반환합니다. |
| 텍스트 임베딩 | 동일한 모델로 모든 문장에 대해 고밀도 벡터를 출력할 수 있어 로컬 의미 검색, 라우팅 또는 유사도 매칭이 가능합니다. |
| 음성 인식 (Whistle) | Needle의 엔진을 공유하는 16.9 MB 음성 모델입니다. 언어 감지, 타임스탬프, 키워드 편향, 스트리밍 지원을 포함한 원패스 전사(최대 30초)를 지원합니다. |
| 신뢰도 점수 | 모든 응답에는 학습된 신뢰도 헤드(confidence head)가 포함되어 있어, 애플리케이션이 행동할지, 명확화를 요청할지, 거부할지 결정할 수 있습니다. |
작동 원리
- 계층화된 Simple Attention 네트워크 – 각 깊이(2‑20층)가 완전히 배포 가능한 서브 모델인 "Simple Attention" 백본. 기존 피드포워드 네트워크 대신 Monarch Hadamard MLP, 인과 컨볼루션 탭이 있는 GQA 어텐션, engram n‑gram 메모리, 멀티 레인 하이퍼 커넥션을 사용합니다.
- 파라미터 효율성 – 대부분의 가중치는 engram에 저장되며, 121 M 파라미터 모델이 50 M 파라미터 모델처럼 동작합니다.
- 바이트 수준 문법 – JSON 스키마에서 컴파일된 문법이 토큰 생성을 제한하여 구문적으로 올바른 출력을 보장합니다.
- 양자화 – 가중치는 가중치당 2.125비트(Cactus Quants)로 저장되며, 배포되는 바이너리는 8‑29 MB입니다.
시작하기
pip install cactus-needle # 코어 라이브러리 + 런타임
pip install "cactus-needle[train]" # 선택적 학습 유틸리티
import needle
@needle.tool
def get_weather(city: str):
"""도시의 현재 날씨를 가져옵니다."""
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")['results'])
# → [{'city': 'Lagos', 'temp_c': 27, 'sky': 'clear'}]
run호출은function_calls, 모델 내부의reasoning추적,confidence점수를 포함하는 JSON 객체를 반환합니다.- 음성의 경우, 단순히
needle.transcribe("clip.wav")를 호출하거나 스트리밍 APIneedle.stream(chunks)를 사용하세요.
벤치마크
- 도구 호출 – 전체 테스트 분할에서의 정확 일치 정확도는 10배 크기의 모델을 능가합니다.
- 구조화된 추출 – 필드 수준의 micro‑F1은 더 큰 베이스라인 모델보다 우수합니다.
- Whistle – Whisper‑base보다 8.6배 작고 첫 토큰까지의 속도가 6.6배 빠르며, LibriSpeech, SPGISpeech, Earnings‑22, FLEURS 등에서 더 낮은 단어 오류율을 기록합니다(리포지토리의 벤치마크 SVG 및 Cactus Compute 사이트의 상세 표 참조).
사용자 지정 및 미세 조정
- LoRA 기반 로컬 미세 조정 (
needle finetune) – 베이스를 고정한 상태에서 어텐션 프로젝션 어댑터를 학습하고,needle build로 미세 조정된.cact를 내보냅니다. - 전체 모델 플랫폼 미세 조정 (
needle platform finetune) – Cactus GPU에서 실행되며 모든 깊이를 학습하고, 선택적으로 신뢰도 헤드를 재조정하며, 모든 레이어 수에 맞는 미세 조정된 바이너리를 반환합니다. - 미세 조정된 서브 네트워크(최소 2층)는 특정 도구 세트에서 DeepSeek V4 Flash와 같은 29 M 파라미터 모델을 능가할 수 있습니다.
배포
- 대상 플랫폼(macOS‑arm64, linux‑arm64, WASI 등)별로 사전 빌드된 엔진 바이너리가 제공됩니다.
needle build --platform <folder> [--layers N]으로 배포 폴더를 빌드합니다. 이 명령은 적절한 엔진을 가져와 옆에.cact가중치를 배치합니다.- 바이너리를 직접 실행합니다:
./macos-arm64/needle --model needle3.cact --tools tools.json --serve. - 텔레메트리는 기본적으로 활성화되어 있습니다.
NEEDLE_TELEMETRY=0및DO_NOT_TRACK=1로 비활성화할 수 있습니다.
리소스
- 모델 가중치 및 엔진 – Hugging Face 리포지토리
Cactus-Compute/needle3및Cactus-Compute/whistle. - 문서 및 가이드 – 설계 도구, 신뢰도 처리, 구조화된 추출, 미세 조정, 지원 디바이스,
.cact파일 형식 및 포팅 노트는 모두 Cactus Compute 블로그에 있습니다(README에 링크 기재). - 대화형 데모 – https://cactuscompute.com/needle 에서 브라우저로 Needle을 체험해보세요.
인용 연구나 제품에 Needle을 사용하는 경우, 제공된 BibTeX 항목을 인용하십시오.
위의 모든 정보는 리포지토리의 README에서 직접 가져온 것이며, 외부의 가정은 추가되지 않았습니다.
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch