記事のサマリー(TL;DR)
- Hugging Faceは、AppleのFoundation Modelsフレームワークの代替として使えるAnyLanguageModelの1.0版を、swift-huggingface 1.0・swift-xet 1.0と合わせて公開しました。
- この1年でツール呼び出し(tool calling)やガイド付き生成(guided generation)が全プロバイダーで動作するようになったほか、画像添付やOS 27でのCore AIモデル対応などが追加されました。
- OpenAIやAnthropic、Google Gemini、Ollama、Hugging Face Inference Providersなど、ホスト型モデルへの対応プロバイダーも拡大しました。
詳細
AnyLanguageModelとは
AnyLanguageModelは、2025年11月にHugging Faceのブログで紹介された、AppleのFoundation Modelsフレームワークと置き換え可能な(drop-in replacement)ライブラリです。アプリが使用するモデルやプロバイダーを選べるようにすることを目的としています。開発者からは、ローカルモデルに関心はあるものの始め方が分からない、複数の推論プロバイダーに対応する複雑さを避けたい、という声が寄せられており、AnyLanguageModelはこうしたフィードバックから生まれました。提供元は、ローカル推論とホスト型推論にはそれぞれ長所があり、この新しい世代のインテリジェントアプリの構築において両者とも役割を持つと説明しています。共通のAPIを用いることで、タスクごとに適したモデルを選びやすくなるとしています。
公開から1年、数十回のリリースを経て、AnyLanguageModel 1.0が、swift-huggingface 1.0およびswift-xet 1.0とともに公開されました。
ドロップイン互換のAPI
AnyLanguageModelの核となる考え方は変わっていません。Foundation Models APIを、アプリに適したモデルとともに利用するというものです。利用を始めるには、import文を次のように変更します。
- import FoundationModels
+ import AnyLanguageModel
同じセッションコードが、システムモデル、llama.cpp・MLX・Core MLを通じたオープンウェイトモデル、そして後述のホスト型プロバイダーで動作します。
この1年間で追加された主な機能は以下の通りです。
- ツール呼び出し(Tool calling):すべてのプロバイダーで動作します。
- ガイド付き生成(Guided generation):すべてのプロバイダーで動作し、ネストした
@Generable型やその配列にも対応します。 - 画像サポート:Foundation Models 27の構文を使ってプロンプトに画像を添付できます。これはiOS、macOS、visionOS 27でシステムモデルを使用する場合も含まれます。
- OS 27での対応拡大:OS 27では、AnyLanguageModelはFoundation Modelsの
LanguageModelプロトコルに準拠する任意のモデル(Core AIモデルを含む)とも動作します。
AnyLanguageModelと合わせて、swift-huggingfaceとswift-xetも整備し、Hub(Hugging Face Hub)からのモデルダウンロードを高速化する機能をSwiftアプリにもたらしています。
ホスト型モデルへの対応も拡大
今年はホスト型モデルへの対応も拡大しました。AnyLanguageModelは現在、以下に対応しています。
- OpenAIのChat Completions APIおよびResponses API
- Open Responses(互換エンドポイントを持つ任意のプロバイダー向け)
- Anthropicの Messages API(アダプティブ・シンキングおよびeffortオプション対応)
- Google Gemini API
- Ollama
- Private Cloud Compute(OS 27上)
- Hugging Face Inference Providersおよびその他のOpenAI互換エンドポイント(カスタムベースURLを通じたOpenRouterなど)
Inference Providersを使うと、デバイス上では実行できないほど大きなオープンウェイトモデルを、同じセッションコードで利用できます。
let model = OpenAILanguageModel(
baseURL: URL(string: "https://router.huggingface.co/v1/")!,
apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
model: "openai/gpt-oss-120b",
apiVariant: .chatCompletions
)
ホスト型プロバイダーは、ローカルモデルと同じ機能(ガイド付き生成、ストリーミング対応のツール呼び出し、レスポンスでのトークン使用量表示)を利用できます。推論(reasoning)も、トランスクリプトの一部として扱われるようになりました。プロバイダーを切り替えた際、新しいプロバイダーが推論ブロックを再生できない場合には、リクエストから推論ブロックが自動的に省かれます。
APIキーは文字列ではなくクロージャから取得する方式になったため、アプリは自前のサーバーから短命なトークンを取得できます。READMEでは、ユーザー自身のAPIキーを使わせる場合と、リクエストをプロキシ経由にすべき場合の使い分けが説明されています。
また、AnyLanguageModelはLinux上でも動作するため、同じコードをサーバー上でも使用できます。
オープンウェイトモデルの性能向上
ローカルモデルの利用が容易になった一方で、モデル自体の性能も向上しており、提供元は小規模モデルから始めるのに適した状況になっていると説明しています。現在Hub上でダウンロード数が多いモデルの例として、以下が挙げられています。
- Gemma 4 E2B(Google提供):GGUF形式、量子化認識トレーニング(quantization-aware training)適用のQ4_0で約3.4GB。
- LFM2.5 2.6B(Liquid AI提供):GGUF形式、Q4_K_Mで約1.7GB。
- Qwen3.8 27B(Alibaba提供、MLX向け):4bitで約16GB。
最初の2つはiPhoneに収まるサイズであり、Qwen3.8 27Bはメモリ32GB以上のMacで動作するとされています。MLXモデルの選択は1行で記述できます。
let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")
なお、Mac Studioをフル構成で4台用意できる場合、Z.ai提供のGLM-5.3はBF16形式で約1.5TBになるとされています。それ以外の環境向けには、Inference Providers経由での利用が可能です。
1.0へのアップグレード
依存関係の記述例は以下の通りです。
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
from: "1.0.0",
traits: ["MLX"]
)
]
既存アプリをアップグレードする場合は、AnyLanguageModel、swift-huggingface、swift-xetそれぞれのリリースノートに記載された移行ガイダンスを参照するよう案内されています。
提供元は、コミュニティからのフィードバックと貢献が主要機能の多くを形作ってきたとして、貢献者への謝意を述べています。
今後の予定
提供元は、言語モデルは製品にインテリジェンスを組み込むための強力な手段であると同時に、開発者が活用できる多様なモデルの一種に過ぎないとしています。今後は、同様のアプローチ(使い慣れたSwift APIと、デバイス上で動作する複数モデルからの選択)を、さらに多くの機能領域に広げていくとされています。近く提供予定のものとして、「判断を行うモデル」と「音声を聞き取るモデル」が挙げられています。