Claude 사용자를 위한 Apple Foundation Models 3와 온디바이스 LLM 스택
**WWDC 2026 (2026년 6월 8일 발표)**에서 Apple은 Foundation Models의 3세대 — AFM 3 — 를 출시했으며, Foundation Models 프레임워크를 확장했습니다. Swift를 절대 쓰지 않는 사람에게도 중요한 방식으로: 프레임워크는 이제 써드파티 LLM 프로바이더(Anthropic Claude와 Google Gemini가 Swift 패키지로 출시)를 받으며, 온디바이스 경로는 장난감 3B 모델이기를 그만두고 대부분의 전문가를 NAND에 유지하고 프롬프트가 필요한 것만 RAM으로 스와핑하여 Apple Silicon에서 실행되는 20-billion-파라미터 스파스 MoE를 추가합니다. Claude 앱을 만들고 "온디바이스"를 API 워크플로우와 별개의 우주로 다뤄왔다면, 그 갭이 올해 좁혀지고 있습니다. 이 페이지는 실제로 출시된 것, 명백하지 않은 메커니즘, 그리고 이제 있는 구체적인 마이그레이션과 호환성 선택지를 풀어냅니다.
- 네 개의 AFM 3 모델 — Core (3B), Core Advanced (20B 스파스), Cloud, Cloud Pro — 이름을 짓고 어느 것이 어디서 실행되는지 알기
- 20B 모델이 iPhone에 애초에 맞도록 하는 플래시 플러스 DRAM 전문가 라우팅 트릭 이해
- Foundation Models 프레임워크의 @Generable / @Guide 매크로를 제약 디코딩에 사용 — 모델은 문자 그대로 잘못된 JSON을 방출할 수 없음
- WWDC26에서 무엇이 바뀌었는지 알기: 동일한 Swift 세션 API에 Claude 또는 다른 어떤 LLM도 플러그인할 수 있게 하는 LanguageModel / LanguageModelExecutor 프로토콜
- 온디바이스 3B에 손을 뻗을 때, Private Cloud Compute로 점프할 때, 그리고 Claude API에 워크로드를 유지할 때를 결정하기
한 문장 버전
AFM 3는 Apple의 온디바이스 LLM에 대한 두 번째 진지한 시도입니다: 재구축된 3B 밀집 모델(Core), 대부분의 전문가를 플래시 스토리지에 유지하여 iPhone에서 실행되는 새로운 20B 스파스 MoE(Core Advanced), Apple Silicon과 Google Cloud의 NVIDIA GPU에 있는 Cloud와 Cloud Pro 페어, 그리고 이제 동일한 LanguageModel 프로토콜 뒤에서 Anthropic Claude와 Google Gemini를 일급 스왑 가능 프로바이더로 다루는 프레임워크. 개발자가 온디바이스로 호출하는 것은 무료; App Store Small Business Program 회원(첫 다운로드 200만 미만)에게 Private Cloud Compute도 무료.
AFM 3에 대한 세 가지 명백하지 않은 것
모두가 "Apple에는 3B 온디바이스 모델이 있다"는 헤드라인을 쓰고 있습니다. 대부분의 리뷰가 건너뛴 메커니즘은 다음과 같습니다.
1. 20B 모델은 대부분이 RAM이 아니라 NAND에 살기 때문에 iPhone에 맞습니다
"iPhone의 20-billion-파라미터 모델"의 순진한 읽기는 불가능합니다: 4비트에서도 20B 가중치는 ~10 GB로, iPhone이 RAM에 유지할 수 있는 것을 훌쩍 넘습니다. Apple의 트릭은 WWDC 2026 발표에 따르면 전체 AFM 3 Core Advanced 모델을 플래시 메모리(NAND)에 저장하고 추론 시 입력 의존적 라우팅된 전문가만 DRAM으로 스와핑하는 것입니다. 아키텍처에는 상주하는 공유 전문가와 라우터가 프롬프트당 고르는 라우팅된 전문가(전체 20B가 아니라 한 번에 1–4B 파라미터 활성화)가 있습니다. Quantization Aware Training과 결합하여, 이것이 Apple이 ~8 GB의 사용 가능한 RAM이 있는 기기에 20B 클래스 모델을 배송할 수 있게 하는 것입니다. 여러분에게 결과: iPhone 측 지연 시간은 이제 행렬 곱셈에 덜 지배되고 NAND 읽기 대역폭과 라우터의 선택에 더 지배됩니다 — 3B 밀집 모델과는 매우 다른 성능 엔벨로프입니다.
2. 제약 디코딩은 런타임이 아니라 Swift 컴파일러에 구워져 있습니다
프레임워크의 @Generable 매크로는 종종 "구조화된 출력"으로 설명되며, 이는 그것이 하는 일을 축소합니다. @Generable은 컴파일 시간에 실행됩니다: Swift 타입에 대한 JSON 스키마와 파서를 생성하고, 그러면 프레임워크는 그 스키마를 제약 디코딩에 사용합니다 — 온디바이스 모델은 토큰 레벨에서 Swift 구조체로 다시 파싱되는 출력을 생성하도록 강제됩니다. "유효한 JSON이기를 바라고 재시도"는 없습니다. @Guide 어노테이션은 디코딩 시간에도 강제되는 제약(.anyOf(["PG", "PG-13", "R", "G"]), 범위, 설명)을 추가할 수 있게 합니다. Claude 툴-사용 루프 주위에 JSON 복구 폴백을 쓰는 데 시간을 보냈다면, 앱의 온디바이스 3B 모델 쪽은 그 전체 재시도 계층을 떨어뜨릴 수 있습니다.
3. 프레임워크는 이제 하나의 Swift API 뒤에서 Claude와 Gemini를 포함한 어떤 LLM도 받습니다
WWDC 2026 세션 **"Bring an LLM provider to the Foundation Models framework"**는 두 개의 새 프로토콜을 출시했습니다: LanguageModel(능력과 executor 구성 선언)과 LanguageModelExecutor(실제 생성, KV 캐시, 스트리밍 처리). 누구나 이에 준수하는 Swift 패키지를 배송할 수 있습니다 — Apple은 Anthropic Claude와 Google Gemini를 출시 시점 프로바이더로 명시적으로 명명했습니다. 결과: 앱의 관점에서 동일한 LanguageModelSession, 동일한 @Generable 타입, 동일한 툴 호출 계약, 동일한 트랜스크립트 모델이 기본 모델이 온디바이스 3B이든, Private Cloud Compute든, Anthropic API의 Claude든, Google Cloud의 Gemini든, Hugging Face의 MLX 가중치 파일이든 적용됩니다. 모델 선택은 SDK 재작성이 아니라 Swift 패키지 종속성이 됩니다.
한눈에 보는 AFM 3
실제로 어디서 무엇이 실행되는가
- 모든 Apple Intelligence 기기에서 실행. Foundation Models 프레임워크를 통해 Swift에서 무료로 호출 — API 키, 네트워크, 토큰당 청구서 없음. 여기에 분류, 추출, 요약, 온디바이스 재작성, 그리고 비행기 모드에서 작동해야 하는 모든 것을 배치하세요.
- Apple의 가장 강력한 실리콘에서 실행; 이전 Apple Intelligence 기기는 투명하게 Core로 폴백. 3B가 태스크를 거부하거나 환각하고 요청이 전문가 스왑 지연 시간을 기다릴 수 있지만 온디바이스에 머물러야 할 때 이것을 사용하세요(예: 개인 건강/금융 추론).
- 기기 모델이 충분하지 않을 때 프레임워크는 PCC로 라우팅합니다. 특정 서버 SKU를 선택하지 않습니다 — 추론 레벨을 요청하면 Apple이 고릅니다. 온디바이스와 동일한 프라이버시 계약: PCC의 노드 attestation은 Apple 직원이 요청을 읽지 못하게 방지합니다.
- LanguageModel + LanguageModelExecutor에 준수하는 패키지 추가(Anthropic Claude와 Google Gemini가 출시 시점 예). 세션 API에서 코드는 동일합니다 — 모델 선택은 패키지 종속성입니다.
최소한의 온디바이스 호출
프레임워크의 헤드라인 기능은 거의 의식 없이 온디바이스 3B에서 타입 있는, 스키마 검증된 출력을 얻을 수 있다는 것입니다.
On-device 3B call with @Generable structured output (Swift)
import FoundationModels
@Generable
struct TripIdea {
@Guide(description: "Short, evocative title")
let title: String
@Guide(description: "One-paragraph pitch, 40–80 words")
let summary: String
@Guide(.range(1...14))
let estimatedDays: Int
@Guide(.anyOf(["easy", "moderate", "hard"]))
let difficulty: String
}
let session = LanguageModelSession() // defaults to on-device Core
let idea = try await session.respond(
to: "Suggest a shoulder-season trip in Puglia for a family with a 6-year-old.",
generating: TripIdea.self // constrained decoding
)
print(idea.title, idea.difficulty, idea.estimatedDays)런타임에 모델은 토큰 레벨에서 실행 텍스트를 TripIdea로 파싱 가능하게 유지하는 토큰을 방출하도록 강제됩니다. JSON 문자열을 절대 보지 않습니다; TripIdea 값을 받습니다. 이는 세션이 온디바이스 3B, PCC, 또는 Swift 패키지로 배관한 써드파티 프로바이더와 대화하든 동일한 계약입니다.
Claude를 동일한 Swift 세션으로 가져오기
WWDC 2026 "Bring an LLM provider" 세션은 이를 구체화했습니다: LanguageModel과 LanguageModelExecutor를 구현하고, git-태그된 Swift 패키지로 게시하면, 이미 온디바이스 3B를 사용하던 앱 코드는 하나의 이니셜라이저를 변경하여 여러분의 프로바이더를 호출할 수 있습니다.
Sketch of a third-party provider conforming to LanguageModel
import FoundationModels
public struct ClaudeSonnet5: LanguageModel {
public let capabilities = LanguageModelCapabilities(capabilities: [
.toolCalling, .guidedGeneration, .reasoning
])
public var executorConfiguration: ClaudeExecutor.Configuration
}
public final class ClaudeExecutor: LanguageModelExecutor {
public struct Configuration: Hashable { // hashable = KV-cache key
public var modelID: String
public var tokenProvider: TokenProvider // NOT a plain API key string
}
public required init(configuration: Configuration) throws { /* … */ }
public func respond(
to request: LanguageModelExecutorGenerationRequest,
model: Model,
streamingInto channel: LanguageModelExecutorGenerationChannel
) async throws {
// 1. Map Foundation Models transcript → Anthropic /messages payload
// 2. Stream deltas back via channel.send(.response(action: .appendText(...)))
// 3. Surface tool calls / reasoning via the same transcript entry types
}
}API가 의도적으로 당신을 밀어붙이는 두 가지 미묘함. 첫째, Configuration은 목적적으로 Hashable입니다: 프레임워크는 executor를 구성별로 캐시하므로 동일한 구성 = 동일한 executor = 턴 전반에 걸쳐 보존된 KV 캐시입니다. 둘째, 가이던스는 이니셜라이저에서 일반 API 키 문자열을 명시적으로 권장하지 않습니다 — TokenProvider나 사인인 플로우를 선호하고, 키체인 지속 토큰, 클라우드 호출에는 App Attest를 사용하여 기기가 여러분의 엔드포인트에 외부에서 히트하는 변조된 빌드가 아닌지 확인하세요.
무엇을 언제 사용할지 — Claude 빌더를 위한 결정 표
- 온디바이스 AFM 3 Core (3B)에 손을 뻗어라: 요약, 분류, 엔티티 추출, 온디바이스 재작성, 키보드 제안 — 경계 있는 프롬프트와 타입 있는 출력이 네트워크 왕복을 이기는 모든 것. 무료.
- AFM 3 Core Advanced (20B)에 손을 뻗어라: 기기를 떠날 수 없는 개인 추론(건강, 금융, 미공개 문서)이며 3B가 서투른 것. NAND 전문가 스왑 때문에 지연 시간이 가변적일 것을 기대하세요.
- Private Cloud Compute (Cloud / Cloud Pro)에 손을 뻗어라: 온디바이스 20B가 따라잡을 수 없지만 프라이버시가 여전히 써드파티 API를 배제하는 더 큰 컨텍스트, 더 긴 추론, 또는 멀티모달.
- Anthropic API의 Claude(또는 새 Swift-패키지 프로바이더)에 머물러라: 긴 에이전트 실행, 확장 사고, 큰-컨텍스트 코드베이스 작업, 그리고 Android와 웹에서 동일한 모델이 필요한 크로스-플랫폼 앱. Claude vs 다른 것들 파운데이션 페이지 참조.
- 온디바이스 3B를 JSON 복구 루프로 감싸지 마세요: 제약 디코딩이 있습니다. 출력이 파싱되지 않으면 스키마가 잘못되었거나 @Generable을 건너뛴 것입니다.
크로스링크
- 온디바이스는 로컬 AI 에이전트와 Ollama로 모델 로컬 실행에서 다루는 로컬-에이전트 스토리의 카운터웨이트입니다. Apple의 앵글은 다릅니다: 별도의 로컬 서버가 아니라 퍼스트파티 OS 통합입니다.
- Apple의 온디바이스 모델과 Claude를 나란히 실행하는 사이에서 고른다면, 설계 패턴은 Claude + 로컬 모델: 하이브리드 패턴과 Local or Claude agent에 있습니다.
- "이 모델들이 어떻게 다르며 어느 것을 골라야 하는가"의 더 넓은 프레이밍은 모델 고르기와 모델 간 프롬프트 이식을 참조하세요.
- 로컬 + 클라우드 하이브리드를 배송하는 보안 함의는 로컬 및 하이브리드 에이전트 보안에 있습니다.
빠른 확인
Check yourself
0/5소스 & 추가 자료
- Apple 파운데이션 모델 3세대 소개 — Apple Machine Learning Research (2026년 6월 8일): AFM 3 Core / Core Advanced / Cloud / Cloud Pro 아키텍처, NAND-플러스-전문가-스왑 설명, 25개 언어 커버리지, Quantization Aware Training, PT-MoE 서버 아키텍처.
- Foundation Models 프레임워크에 LLM 프로바이더 가져오기 — WWDC26 session 339 —
LanguageModel/LanguageModelExecutor프로토콜 설계, 스트리밍/트랜스크립트 모델, 커스텀 세그먼트, 써드파티 프로바이더. - 개발자를 위한 Apple Intelligence — Foundation Models 프레임워크 개요, 동적 프로필, 평가, 그리고 App Store Small Business 무료-PCC 가격 노트.
- Foundation Models 프레임워크 만나기 — WWDC25 session 286 및 Foundation Models 프레임워크 심층 다이빙 — WWDC25 session 301 — WWDC26이 기반으로 하는 원래
@Generable/@Guide/ 툴 호출 API. - Apple Intelligence Foundation Language Models: 기술 리포트 (arXiv 2507.13575) — 온디바이스 아키텍처 스토리를 근거로 하는 데 유용한 이전 세대 기술 세부사항.