OWN NEWS GATHER
← 戻る
Hugging Face Blog

Hugging Faceの「transformers」がllama.cppのGGUF形式に対応 Apple Silicon環境での高速なローカル推論が可能に

要点

  • Hugging Faceは、機械学習ライブラリ「transformers」においてllama.cppの量子化モデルフォーマット「GGUF」へのネイティブ対応を追加した。

  • Hugging Face Hub上のGGUFファイルを指定することで、従来の from_pretrained などの標準APIを用いて直接モデルを読み込み、実行できる。

  • llama.cppの基盤であるggmlカーネルを kernels ライブラリ経由で再利用し、ネイティブ実装に近い推論パフォーマンスを実現している。

  • 初期対応としてApple Silicon搭載MacおよびQwen3.5アーキテクチャに焦点を当てており、Metal最適化カーネルが自動で適用される。

  • オープンソースのAIプラットフォームを提供するHugging Faceは2026年9月22日、同社の主要機械学習ライブラリ「transformers」において、ローカル推論向けフォーマット「GGUF」をサポートしたことを公式ブログで発表した。開発者は慣れ親しんだtransformersのAPIを利用しながら、PCのメモリ容量に適した量子化モデル(重みの精度を落としてデータ量を圧縮したモデル)を手元のマシン上で手軽に実行できるようになる。

GGUF対応の背景とローカル推論の広がり

近年、ノートPCなどのパーソナルコンピュータ上でAIモデルを直接動作させるローカル推論の環境が急速に整備されている。その中核を担ってきたのが、軽量な推論エンジンである「llama.cpp」だ。llama.cppは「Ollama」や「LM Studio」、「Jan」といった主要なローカルAIツールの基盤として採用されているほか、Appleの機械学習フレームワーク「MLX」などと並び、日常的な端末上でのモデル実行を実用的な選択肢へと押し上げてきた。

llama.cppの開発チームが策定した「GGUF」フォーマットは、モデルの重みデータに加えてトークナイザーの情報や対話用のチャットテンプレートなどのメタデータを単一のファイルにまとめた規格である。Hugging Face Hub上では、ggml-orgの公式アカウントをはじめ、Unsloth、LM Studio Community、bartowskiといった公開者から多種多様な量子化済みGGUFモデルが提供されており、累計で数百万回以上のダウンロード実績を持つという。Hugging Faceは、こうした豊富なGGUF資産をtransformersエコシステム内でもシームレスに扱えるようにすることを目指したと説明している。

ggmlカーネルの再利用によるパフォーマンスの維持

Hugging Faceは、単にファイルを読み込める互換性を提供するだけでなく、llama.cppに迫る実行速度を確保することが重要だと強調している。この目標を達成するため、同社は kernels ライブラリを通じてllama.cppの基盤となっている「ggml」の演算カーネルを直接再利用する設計を採用した。さらに、推論処理を担う generate 関数のオーバーヘッド(余分な処理負荷)を削減する最適化も施している。

今回の初期対応では、Apple Silicon搭載Macにおけるローカル推論を最優先に対象としており、モデルアーキテクチャとしては「Qwen3.5」からサポートが開始された。Mac環境においてモデルの重みがGPU向けフレームワーク「Metal」上に保持される場合、ライブラリは互換性のあるggmlおよびMetal用レイヤーカーネルを自動でロードする。アテンション機構の計算には最適化された ggml-org/ggml-attn が適用され、もしカーネルの取得に失敗した場合は警告とともに標準の sdpa(Scaled Dot-Product Attention)へ自動フォールバックする設計となっている。開発者が明示的に attn_implementation="sdpa" を指定して動作させることも可能だという。

量子化のバリエーションとメモリ消費の最適化

GGUFフォーマットの大きな利点の一つは、用途やマシン性能に合わせて量子化レベルを細かく選択できる点にある。特に「Q4_K_M」などのバリエーションでは、大部分の重みを4ビットに圧縮しつつ、計算精度への影響が大きい重要なテンソル(多次元配列データ)を高精度に維持する混合精度の手法が採られている。

公式ブログでは、Unslothが公開しているモデル「Qwen3.5-4B」を例に挙げ、量子化によるファイルサイズの変化を紹介している。非量子化のリファレンスである「BF16」形式では約8.42GBの容量が必要となるのに対し、量子化フォーマットでは以下のように大幅に軽量化される。

  • BF16: 8.42 GB(非量子化のリファレンス)
  • Q6_K: 3.53 GB(小型版より高い精度を維持)
  • Q5_K_M: 3.14 GB(容量と精度のバランス型)
  • Q4_K_M: 2.74 GB(ローカル推論の実用的な出発点)

Hugging Faceは、ローカル環境での利用にあたってはまず「Q4_K_M」から試用することを推奨している。その上で、マシンのメモリに余裕がある場合は「Q5_K_M」や「Q6_K」へと段階的に精度を引き上げるアプローチを提案している。より攻撃的な圧縮を行うことで大型モデルを限られたメモリに収めることも可能だが、量子化による品質への影響はモデルやタスクによって異なるため、実際のユースケースに合わせて性能を評価することが重要だと説明している。

導入要件と利用方法

今回のGGUFサポートを利用するための環境要件は以下の通りである。

  • ハードウェア: Apple Siliconを搭載したMac
  • PyTorch: 公開されている ggml-quantization カーネルビルドがサポートするバージョン(通常は直近の最新2リリース)
  • ライブラリ: 最新版の transformers(次回正式リリースまではGitHubのmainブランチ)および互換性のある kernels

ライブラリは、以下のコマンドで最新版を取得できる。

pip install -U "git+https://github.com/huggingface/transformers.git" kernels

実際のコードにおけるモデルの読み込みはシンプルに設計されている。Hugging Face HubのモデルIDとGGUFのファイル名を、AutoTokenizer および AutoModelForCausalLM の from_pretrained メソッドに引数 gguf_file として渡すだけで完了する。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "unsloth/Qwen3.5-4B-GGUF"
filename = "Qwen3.5-4B-Q4_K_M.gguf"

tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    gguf_file=filename
)

GGUF固有の設定が必要なのはこの読み込み部分のみであり、それ以降のチャットテンプレート適用(tokenizer.apply_chat_template)やテキスト生成処理(model.generate)などは、すべて従来のtransformersと同じ標準APIを用いてそのまま実行できるとしている。

元URL