Anemll/Anemll
Artificial Neural Engine Machine Learning Library
ANEMLL – Apple Neural Engine에서 대규모 언어 모델 실행하기
개요 – ANEMLL(‘애니멀’로 발음)은 Hugging Face의 LLM을 가져와 Apple Neural Engine (ANE)을 사용하여 Apple Silicon 기기(iPhone, iPad, Mac, visionOS)에서 로컬로 실행할 수 있게 해주는 오픈소스 툴킷입니다. Core ML로의 모델 변환, 프로파일링 도구, Swift 기반 참조 앱, Python 수준의 채팅 데모 등 전체 파이프라인을 다룹니다.
핵심 구성 요소(README에 설명된 대로)
| 구성 요소 | 기능 |
|---|---|
| LLM 변환 도구 | Hugging Face 가중치를 읽어 Core ML 모델(단일 모놀리식 파일 또는 청크 파일)을 출력하는 스크립트(convert_model.sh, convert_monolith.sh). LLaMA, Qwen, Gemma 3, DeepSeek 등을 지원하며, 선택적으로 모델 내 argmax 및 가중치 중복 제거(ANEMLL-Dedup)가 가능합니다. |
| ANE 프로파일러 | Xcode 없이 작동하는 Core ML/ANE 프로파일러. 계산 계획 분석, 호환성 보고서 및 벤치마크 수치를 제공합니다. |
| Swift 참조 구현 | 빠른 온디바이스 추론을 보여주는 Swift 라이브러리 및 CLI(anemll-swift-cli)와 iOS/macOS/visionOS용 전체 화면 채팅 UI(음성 입력, AirDrop 모델 공유, Markdown 렌더링). |
| Python 샘플 코드 | chat.py(빠른 테스트) 및 chat_full.py(대화 기록 처리)와 일련의 변환 검증 테스트. |
| iOS/macOS 샘플 앱 | 재설계된 “ANEMLL Chat” 앱(TestFlight를 통해 이용 가능). 엔드투엔드 모델 다운로드, 로컬 가져오기 및 기기 내 스트리밍 채팅을 보여줍니다. |
| ANEMLL-BENCH | 모델 및 양자화 수준 전반에 걸친 체계적인 ANE 성능 벤치마킹을 위한 별도의 저장소. |
지원되는 모델(v0.3.5 안정 버전 기준)
- Gemma 3 – 270 M, 1 B, 4 B(양자화 인식 학습), 슬라이딩 윈도우 + 글로벌 어텐션, 최대 4 K 컨텍스트.
- LLaMA 3.1/3.2 – 1 B, 8 B.
- Qwen 3 – 0.6 B, 1.7 B, 8 B.
- Qwen 2.5 – 0.5 B, 1.5 B, 3 B, 7 B.
- DeepSeek R1 – 8 B 증류 버전(LLaMA 기반).
- DeepHermes – 3 B, 8 B(미세 조정된 LLaMA).
이 모든 모델은 ANE에서 완전히 실행되는 Core ML 모델로 변환할 수 있으며, 선택적으로 양자화(LUT4/LUT6) 및 호스트-기기 간 데이터 전송을 줄이는 특수 모델 내 argmax 모드를 사용할 수 있습니다.
0.3.5 베타 버전의 주요 특징
- 풀스택 iOS/macOS/visionOS 채팅 앱: 음성 입력, AirDrop 공유, Markdown 렌더링 및 “생각 모드”를 갖추고 있습니다.
- 모놀리식 모델 지원: 모델당 하나의 Core ML 파일.
ANEMLL-Dedup을 통해 저장 공간 오버헤드를 약 50% 절감. - 모델 내 argmax (
--argmax): argmax 연산을 Core ML의 LM 헤드 내부로 이동하여, 승리한 토큰 인덱스/값만 호스트로 전송함으로써 대역폭을 획기적으로 줄입니다. - Swift 추론 안정성: IOSurface 기반 버퍼와 직렬 예측 큐를 통해 iOS에서의 경쟁 상태를 제거.
- ANE 프로파일러: Xcode 없이 명령줄에서 프로파일링 가능. 호환성 문제 파악에 유용.
- 벤치마크 결과: 표준 NLP 작업에서 ANEMLL-FP16은 동일 하드웨어의 Hugging Face FP16보다 약간 우수한 성능을 보입니다(ARC, BoolQ 등에서 평균 +0.71% 정확도 향상).
- 자동 가상 환경 활성화: 변환 스크립트는 비활성화하지 않는 한
env-anemllvenv를 실행합니다.
일반적인 워크플로우(빠른 시작)
# 1. 재현 가능한 Python 환경 생성(uv 권장)
brew install uv
./create_uv_env.sh # Python 3.9로 env-anemll 생성
source env-anemll/bin/activate
./install_dependencies.sh # coremltools, transformers 등
# 2. 모델 변환(예: Gemma-3-270M)
./anemll/utils/convert_model.sh \
--model google/gemma-3-270m-it \
--output ./models/gemma3_270m \
--context 512 \
--chunk 1 \
--argmax
# 3. Python에서 추론 테스트
python ./tests/chat.py \
--meta ./models/gemma3_270m/meta.yaml \
--prompt "Hello, ANEMLL!"
# 4. (선택 사항) Swift CLI 또는 iOS 채팅 앱 실행
./anemll-swift-cli/run.sh ./models/gemma3_270m/meta.yaml
# 또는 TestFlight 앱을 실행하여 전체 UI 경험을 시도
README에는 작은 참조 모델을 자동으로 다운로드, 변환하고 엔드투엔드 검증을 실행하는 테스트 스크립트(tests/conv/*.sh)도 제공됩니다.
ANEMLL을 사용하는 이유
- 온디바이스 개인정보 보호 – 네트워크 호출 없음; 전체 LLM이 기기의 ANE에서 로컬로 실행됩니다.
- 저전력 엣지 AI – 배터리 수명이 중요한 모바일 또는 임베디드 Apple Silicon 제품에 적합합니다.
- 빠른 추론 – ANE는 FP16 행렬 연산을 병렬로 실행할 수 있으며, 모델 내 argmax가 지연 시간을 더욱 줄여줍니다.
- 개발자 친화적 – 빠른 프로토타이핑을 위한 Python 유틸리티와 프로덕션급 iOS/macOS 앱을 위한 Swift 라이브러리가 포함되어 있습니다.
설치 및 시스템 요구 사항(요약)
- Apple Silicon 기반 macOS Sequoia 이상(M1/M2/… 권장).
- 16 GB 이상의 RAM(8 B 모델의 경우 32 GB).
- Python 3.9-3.11(3.9 버전에서 가장 많이 테스트됨).
- Xcode 명령줄 도구(Core ML 컴파일러용).
coremltools9.0 이상,transformers4.36.0 이상, NumPy, scikit-learn 등.- 선택 사항: 빠른 환경 생성을 위한
uv.
추가 정보
- 문서 –
docs/폴더(변환 가이드, 프로파일러 문서, Swift CLI 가이드, 샘플 앱 설명). - 사전 변환된 모델 – Hugging Face 조직
anemll(즉시 사용 가능한.mlmodelc번들). - 벤치마크 –
ANEMLL-BENCH저장소 및 README 내 작업 수준 결과 표. - 커뮤니티 – X/Twitter에서
@anemll을 팔로우하여 업데이트를 확인하세요. 저장소에 별을 눌러 지원을 보여주세요.
요약
ANEMLL은 대규모 언어 모델과 Apple의 온디바이스 신경망 하드웨어 사이의 간극을 메우는, 활발히 유지 관리되는 오픈소스 프로젝트입니다. 변환 스크립트, 프로파일링 도구, Swift 및 Python 참조 구현, 즉시 사용 가능한 iOS/macOS 채팅 앱을 제공하여 개발자가 iPhone, iPad, Mac 및 visionOS 기기에서 개인정보를 보호하는 LLM을 실행할 수 있도록 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트