로컬 추론(Local inference)과 호스팅된 추론(hosted inference)은 각각 장점을 가지고 있으며, 둘 다 차세대 지능형 앱 구축에 중요한 역할을 합니다. 공통 API를 사용하면 각 작업에 맞는 적절한 모델을 선택하기가 더 쉬워집니다.
1년여와 수십 번의 출시 끝에 AnyLanguageModel 1.0이 출시되었으며, swift-huggingface 1.0 및 swift-xet 1.0도 함께 공개되었습니다.
변경점과 향후 계획은 다음과 같습니다:
AnyLanguageModel의 핵심 아이디어는 변함없습니다: 앱에 맞는 Foundation Models API를 사용하여 모델을 활용하는 것입니다. 시작하려면 import 구문을 변경해야 합니다:
- import FoundationModels
+ import AnyLanguageModel
이후 세션 코드는 시스템 모델, llama.cpp, MLX, Core ML을 통한 오픈 가중치(open-weight) 모델, 그리고 아래 호스팅 제공업체들과 함께 작동합니다.
지난 1년 동안 여러 주요 기능들이 추가되었습니다:
Tool calling: 모든 제공업체와 작동합니다.Guided generation: 중첩된 @Generable 타입 및 배열을 포함하여 모든 제공업체에서 작동합니다.Image support: Foundation Models 27의 구문을 사용하여 프롬프트에 이미지를 첨부할 수 있게 되어, iOS, macOS, visionOS 27에서 시스템 모델을 사용할 때도 가능합니다.
OS 27에서는 AnyLanguageModel이 Core AI 모델을 포함하여 Foundation Models의 LanguageModel 프로토콜을 준수하는 모든 모델과 함께 작동합니다.
AnyLanguageModel과 더불어, Hub에서 Swift 앱으로 가속화된 모델 다운로드를 제공하기 위해 swift-huggingface와 swift-xet을 구축했습니다.
호스팅 모델에 대한 지원도 올해 확장되었습니다. AnyLanguageModel은 이제 다음을 지원합니다:
- OpenAI의 Chat Completions 및 Responses API
- Open Responses: 호환 가능한 엔드포인트를 가진 모든 제공업체용
- Anthropic의 Messages API: 적응형 사고(adaptive thinking) 및 노력(effort) 옵션 포함
- Google의 Gemini API
- Ollama
- OS 27에서의 Private Cloud Compute
- Hugging Face Inference Providers, 그리고 OpenRouter와 같은 다른 OpenAI 호환 엔드포인트를 사용자 정의 기본 URL을 통해 지원할 수 있습니다.
Inference Providers를 사용하면 장치에서 실행하기에는 너무 큰 오픈 가중치 모델도 동일한 세션 코드로 사용할 수 있습니다:
호스팅 제공업체는 로컬 모델과 동일한 기능을 사용합니다: 가이드 생성(guided generation), 스트리밍을 이용한 도구 호출(tool calling with streaming), 응답에 대한 토큰 사용량 측정 기능 등이 포함됩니다.
추론(Reasoning) 과정도 이제 전사 기록(transcript)의 일부입니다. 제공업체를 전환할 때, 새로운 제공업체가 추론 과정을 재현할 수 없는 경우 추론 블록은 요청에서 자동으로 생략됩니다.
API 키는 문자열 대신 클로저(closure)를 통해 받으므로, 앱에서 자체 서버로부터 단기 토큰을 가져올 수 있습니다. README에는 사용자에게 직접 키를 사용하도록 허용해야 하는 경우와 요청을 프록시(proxy)를 통해 라우팅해야 하는 경우에 대한 설명이 나와 있습니다.
AnyLanguageModel은 Linux에서도 실행되므로, 동일한 코드를 서버에서 사용할 수 있습니다.
로컬 모델 사용이 더 쉬워졌지만, 모델 자체의 성능이 더욱 향상되어 작은 규모의 모델부터 시작하기 좋습니다. 현재 Hub에서 가장 많이 다운로드되는 몇 가지 모델을 소개합니다:
- Google의 Gemma 4 E2B: GGUF 형식으로,
Q4_0 양자화 인식 학습(quantization-aware training)을 거쳐 약 3.4 GB입니다.
- Liquid AI의 LFM2.5 2.6B: GGUF 형식으로,
Q4_K_M에서 약 1.7 GB입니다.
- Alibaba의 Qwen3.8 27B for MLX: 4비트 기준으로 약 16 GB입니다.
앞의 두 모델은 iPhone에 적합하며, Qwen3.8 27B는 메모리가 32GB 이상인 Mac에서 실행됩니다. MLX 모델을 선택하는 것은 한 줄이면 충분합니다:
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
그리고 만약 최대 용량의 Mac Studio 네 대를 보유하고 있다면, Z.ai의 GLM-5.3은 BF16 기준으로 약 1.5 TB가 필요합니다. 나머지 사용자들에게는 추론 제공업체(Inference Providers)를 통해 이용 가능합니다.
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
...```
기존 앱을 업그레이드하는 경우, AnyLanguageModel, swift-huggingface, 및 swift-xet의 릴리스 노트에서 코드 업데이트에 대한 도움말을 확인하십시오.
커뮤니티의 피드백과 기여가 저희 주요 기능 몇 가지를 형성했습니다. AnyLanguageModel을 앱 개발자들에게 더 유용하게 만드는 데 도움을 준 모든 분들께 감사드립니다.
언어 모델은 제품에 지능을 구축하는 강력한 도구임이 입증되었습니다. 또한, 개발자들이 활용할 수 있는 여러 종류의 모델 중 하나입니다. 저희는 이와 같은 접근 방식을 더 많은 기능으로 가져오게 되어 기대가 큽니다. 즉, 기기에서 실행되는 다양한 모델 옵션과 익숙한 Swift API를 제공하는 것입니다. 곧 출시될 기능: 스스로 결정하는 모델, 그리고 듣는 모델.