
【참견】Apple 공식 변환 레시피의 7개 모델(gpt-oss 등)을 CoreAI (.aimodel) 형식으로 변환하여 배포
요약
Apple의 Core AI(.aimodel) 형식을 위한 7개 모델의 변환 번들을 Hugging Face에 공개했습니다. OS 버전에 따른 성능 차이와 재현성 문제를 해결하기 위해 직접 변환한 아티팩트를 제공하며, 벤치마크 결과와 샘플 앱을 포함합니다.
핵심 포인트
- Core AI 모델 변환 시 대량의 RAM(최대 128GB)이 필요하여 변환된 번들 배포가 효율적임
- macOS 버전에 따라 동일한 레시피라도 성능 차이(최대 2.2배)가 발생할 수 있음
- 재현성을 보장하기 위해 해시(hash)가 포함된 호스팅 아티팩트 사용 권장
- iOS 배포를 위해서는 디바이스에서 AOT 컴파일이 필수적임
WWDC 2026 에서 발표된 Core AI (Core ML의 후속).
Apple 공식이 몇 가지 모델의 에스포트 레시피 (export recipe)를 공개하고 있습니다.
coreai-models
다만, 변환 스크립트만 있을 뿐
변환된 모델은 배포되지 않고 있습니다 (CoreML 때는 있었습니다).
그래서 직접 변환하여 생성된 .aimodel
7개 모델을 Hugging Face에 공개했습니다.
각 모델 카드에 벤치마크 실측값도 기재했습니다.
샘플 앱도 준비했습니다.
측정은 모두 Apple 공식의 llm-benchmark
(512 프롬프트 / 1024 생성 / greedy / warm)를 사용했습니다.
coreai 형식의 .aimodel은
「coreai.llm.export
를 실행하면 누구나 만들 수 있습니다」
라고 하지만, 배포하는 이유는 두 가지가 있습니다.
에스포트에는 대량의 RAM이 필요합니다 (gpt-oss-20B의 변환은 128 GB Mac에서 실행).
반면, 실행은 아티팩트 (artifact)를 mmap 할 수 있다면 동작합니다. 변환된 것을 올려두면, 실행 측의 머신만으로 테스트할 수 있습니다.
덧붙이자면 Mistral-7B는 변환 원본 리포지토리가 27 GB 다운로드가 되기 때문에 (consolidated.safetensors가 중복 포함되어 있음),
4.1 GB의 변환된 번들 (bundle)을 받는 것이 압도적으로 빠릅니다.
이 부분이 핵심입니다.
동일한 에스포트 커맨드, 동일한 코드, 동일한 wheel임에도 불구하고, 에스포트한 OS가 macOS 26 → 27β로 바뀌었다는 이유만으로 2.2배 느린 아티팩트가 생성되었습니다 (Qwen3-0.6B: 1,121 → 484 tok/s).
26의 결과물은 양자화 Linear의 네이티브 lowering (프로그램 내에 dequant ops가 제로)인 반면, 27β는 명시적인 dequant로 떨어지는 차이가 있습니다.
자세한 내용은 벤치마크 리포지토리의 forensics에 있습니다.
즉, 「레시피를 공개하고 있다」는 것만으로는 재현성을 보장할 수 없습니다.
해시(hash)가 포함되어 호스팅된 아티팩트가 재현 가능한 ground truth 입니다.
공개한 모든 번들은 apple-silicon-llm-bench에서 측정한 것과 해시 레벨에서 동일합니다 (실제로 gpt-oss-20B를 HF에서 다시 다운로드하여 main.mlirb의 SHA-256이 카드에 기재된 값과 일치함을 확인했습니다).
Qwen3-0.6B 리포지토리에는 이 「빠른 쪽」의 macos-26-export 번들도 그대로 동봉되어 있습니다.
hf download mlboydaisuke/gpt-oss-20b-CoreAI-official
import FoundationModels
import CoreAILanguageModels
let model = try await CoreAILanguageModel(resourcesAt: modelURL) // → macos/ 폴더
...
swift run -c release llm-runner --model <bundle>/macos --prompt "Hello"
swift run -c release llm-benchmark --model <bundle>/macos
CoreAIChatMac의 "Choose Models Folder..."에서 다운로드한 폴더를 지정하기만 하면 됩니다.
iOS는 IR을 JIT 할 수 없으므로, 디바이스에서 사용하기 전에 AOT 컴파일이 필수적입니다:
xcrun coreai-build compile <ir>.aimodel \
--platform iOS --preferred-compute neural-engine --architecture h18p
# h18p = iPhone 17 Pro. metadata.json의 assets.main을 .aimodelc로 교체
이러한 주의사항(ハマりどころ)은 지난번 벤치마크 기사에 작성했습니다.
- OpenAI 출하 시의
MXFP4 양자화(Quantization)를 그대로 패스스루 (Pass-through) (추가 양자화 없음, 변환 약 3분) - M4 Max에서
78 tok/s / prefill 1,252 tok/s / warm 로드 2.1 s / 피크 RSS 33.9 GB -
COREAI_CHUNK_THRESHOLD
가 MoE의 prefill 메모리 다이얼(dial)이 됨: 4096 토큰 prefill이 チャンク(chunk)가 없으면 1,439 tok/s・dirty 18 GB, chunk-128일 경우 766 tok/s・1.7 GB
관련 리포지토리:
- 📊 벤치마크 (methodology・생 JSONL・Swift 어댑터 전체 공개): https://github.com/john-rocky/apple-silicon-llm-bench
- 🧰 커뮤니티 모델: https://github.com/john-rocky/coreai-model-zoo
- 📱 샘플 앱: https://github.com/john-rocky/coreai-samples
🐣
프리랜서 엔지니어입니다.
AI에 대해 다양한 기사를 쓰고 있습니다.
만약 다음과 같은 요청 사항이 있으시다면 언제든 편하게 상담해 주세요.
"AI 앱을 개발하고 싶다"
"AI 기능을 만들어 보았지만, 실제로 어떻게 운영해야 할지 모르겠다"
두 경우 모두 중간 비용을 절감한 가격으로 진행 가능합니다.
업무 상담은 이쪽으로 연락 부탁드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기