Hugging FaceからのGGUFモデルをインポートする Ollama
Ollamaの公式ライブラリは、利用可能なモデルの一部しかカバーしていません。Hugging Faceには、コミュニティによるファインチューニングモデル、最新モデル、まだパッケージ化されていないバージョンなど、数万ものGGUFファイルが公開されています。本ガイドでは、Hugging Faceの任意のGGUFをOllamaにインポートする方法を説明します。ollama run hf.coコマンドで直接インポートする方法、ローカルファイルを使うModelfile FROMの方法、VRAMに応じた量子化の選び方、そして回答の一貫性を損なう壊れたチャットテンプレートの修復方法を取り上げます。
#Hugging FaceからGGUFファイルをインポートする理由
Ollama は実用的なモデルのライブラリ(ollama.com/library)を維持していますが、収録範囲は意図的に限定されています。メンテナーは、特に需要の高いモデルを、それぞれについて選んだ量子化形式で公開しています。特定の用途向けにファインチューニングされたモデル、出たばかりのバージョン、フランス語のモデル、または特定の量子化形式を探す場合は、オープンウェイトモデルの共有プラットフォームとして最大規模の Hugging Face で探す必要があります。
GGUF形式(GGMLの後継形式)は、Ollamaがネイティブでサポートする形式です。モデルの量子化された重み、トークナイザー、メタデータを単一のファイルに格納します。TheBloke、bartowski、unslothなどのコントリビューターは、モデルごとに十数種類の量子化を含む、数千のGGUFファイルを即座に利用可能な形で公開しています。これらのファイルをインポートする方法を知っていれば、Ollamaのインストール環境でこのエコシステム全体を利用できるようになります。
- 最近公開されたモデル
- Hugging Faceに昨日公開されたモデルは、公式なOllamaのライブラリに登録される前にすでに利用可能です。
- ニッチな用途向けのファインチューニング済みモデル
- コード、医療、ロールプレイ、フランス語に特化したモデルで、まだ誰も正式なパッケージ化に手をかけていないもの。
- 量子化レベルを細かく指定
- VRAMに収まる正確なレベル(Q4_K_M、Q5_K_M、Q8_0…)を選択し、デフォルトの単一バリエーションにとどまらないようにします。
- プライベートモデル
- ご自身でファインチューニングしたモデルやダウンロードしたGGUFモデルを、Modelfileを使ってローカルにインポートしたもの。
#前提条件
お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
- Ollama インストール済み
- hf.coのネイティブサポートには、新しいバージョン(0.5以降)が必要です。デーモンはデフォルトで http://localhost:11434 で待ち受けます。「ollama --version」で確認してください。
- インターネット接続
- Hugging Faceから直接ダウンロードする方法を使う場合に必要です。その後、モデルは100%ローカルで動作します。
- 十分なVRAMまたはRAM
- Q4での目安として、7Bモデルは約5 GB、14Bモデルは約9 GB、32Bモデルは約19 GB、70Bモデルは約40 GBのメモリに収まります。GPUがない場合はRAM容量が重要になり、動作は遅くなります。
- GGUFのリポジトリ名
- たとえば bartowski/Qwen3.5-9B-Instruct-GGUF。Hugging Face モデルページの URL でこれを確認してください。
GGUFのリポジトリを探すには、Hugging Faceの検索でフォーマットによるフィルタリングが可能です。モデル名を検索して「GGUF」を追加するか、サイドバーでライブラリ「GGUF」でフィルタリングしてください。「Files and versions」タブを開くと、.ggufファイルのリストが表示されます。これは量子化ごとに1つずつで、サイズはGB単位で表示されます。これは後続の作業にとって貴重な情報です。
#直接的な方法:ollama run hf.co/...
これは、Hugging FaceのGGUFモデルをOllamaにインポートする方法として、圧倒的に簡単です。バージョン0.5以降、OllamaはHugging FaceのリポジトリからGGUFをコマンド1つで直接取得でき、ファイルを手動でダウンロードしたり、Modelfileを書いたりする必要はありません。構文では、リポジトリのパスの先頭にhf.co/を付けます。
指定がない場合、Ollama はデフォルトの量子化を選択します(リポジトリに Q4_K_M が存在する場合は通常 Q4_K_M になります)。特定の量子化を指定するには、コロン(:)の後に追加してください。通常のモデルタグと同様の形式です。タグ名は .gguf ファイルのサフィックスに対応し、大文字と小文字を区別しません。
Ollamaはファイルをダウンロードしてローカルストレージに保存し、会話を開始します。その後、モデルは「ollama list」にhf.co/...という完全な名前で表示され、すぐに再起動できます。名前が長くて入力しづらい場合は、「ollama cp」で短い別名を付けられます。
#VRAM に応じて適切な量子化を選ぶ
同じモデルが複数の量子化形式で公開されています。量子化は、品質とメモリ使用量の間の中心的なトレードオフです。量子化を強めるほど(重みあたりのビット数が少ないほど)、ファイルは小さくなり、控えめな性能のカードにも収まりやすくなりますが、その代わりに精度がわずかに低下します。選ぶ際は、VRAMに余裕を持って収まる範囲で、最もビット数の多い量子化形式を選ぶのが基本です。
- Q4_K_M — 推奨
- 大半の用途において最適なバランスです。品質の低下はほとんど気づかないほどで、メモリ使用量も抑えられます。迷った場合は、標準の選択肢として選んでください。
- Q5_K_M — 一段上
- やや重く、やや高精度です。VRAMに余裕があり、8ビットに切り替えずに最高の品質を求める場合に適しています。
- Q8_0 — ほぼ損失なし
- 量子化していないモデルに非常に近いものの、サイズはQ4の約2倍です。わずかな品質低下も重要になる用途で、かつVRAMに余裕がある場合に限った選択肢です。
- FP16 — フル精度
- 量子化されていない、最もサイズの大きいモデルです。ローカル推論で必要になることはまれです。ほとんどの場合はQ8_0で十分で、メモリ使用量を半分にできます。
量子化したモデルがメモリに収まるかを見積もるには、Hugging Faceに表示されている.ggufファイルのサイズを基準にし、コンテキストとシステム用に約1〜2 GBの余裕を加えてください。以下に、モデルサイズ別のQ4_K_MでのVRAM容量の目安と、それぞれのモデルを実行できる代表的なGPUを示します。
- 3B ≈ 2 GB
- どんな環境でも動作し、エントリークラスのグラフィックカードや CPU だけでも実行できます。RTX 3060 12 GB に最適で、コンテキスト用の容量にも十分な余裕があります。
- 7B ≈ 5 GB
- RTX 3060 12GB、RTX 4070 12GBで快適に動作します。日常的な用途で最も幅広く使えるフォーマットです。
- 14B ≈ 9 GB
- RTX 4070 12 GBでは余裕が少なく、RTX 4080 16 GBなら余裕があります。推論やコード生成で良好な品質が得られるクラスです。
- 32B ≈ 19 GB
- RTX 4090 24GB、またはユニファイドメモリを搭載したMac M4 Pro。ワークステーションで利用できるハイエンドの選択肢です。
- 70B ≈ 40 GB
- 48 GB以上が必要です。大容量のユニファイドメモリを搭載したMac Studio、またはマルチGPU構成が必要になります。Q4、あるいはさらに圧縮率の高い量子化に切り替えてください。
#Modelfile方式:FROM fichier.gguf
直接取り込む方法は、GGUFがHugging Face上にあり、オンラインでアクセスできることを前提とします。しかし、すでに.ggufファイルを手動でダウンロードした場合、llama.cppで自作した場合、またはモデルをカスタマイズ(システムプロンプト、パラメータ)したい場合は、Modelfileを使う必要があります。これはDockerfileに似た小さなテキストファイルで、ローカルのGGUFからOllamaモデルを構築する方法を記述します。
中心となる設定はFROMで、.ggufファイルのパスを指します。GGUFファイルの隣に「Modelfile」(拡張子なし)というファイルを作成し、少なくとも以下の行を含める必要があります。
次に、「ollama create」コマンドを使ってモデルを構築し、好みの名前を指定します。OllamaはGGUFファイルを読み取り、自らのストレージに登録し、他のモデルと同様に利用可能にします。
Modelfileを詳しく設定すれば、さらに多くのことができます。システムプロンプトの設定、サンプリングパラメータの調整、そして特に重要なのが、モデルが期待するチャット形式であるTEMPLATEの定義です。次のセクションで説明するように、品質に関する問題の大半は、これらの設定で解決できます。
#チャットテンプレートの破損を修正
これはGGUFのインポートで最も陥りやすい落とし穴です。インポートしたモデルが、でたらめな応答を返すことがあります。文がいつまでも終わらない、出力に奇妙なタグ(<|im_end|>、[INST]、<end_of_turn>)が混じる、質問を無視した回答を返す、同じ応答を繰り返す、といった問題です。10回中9回は、モデル自体の性能が悪いわけではありません。チャットテンプレートが、学習時に使われたものと一致していないのが原因です。
各モデルファミリーには、それぞれ決まった会話形式があります。Qwenや多くのファインチューニング済みモデルではChatML(<|im_start|>)、MistralやLlama 2では[INST]...[/INST]、Gemmaでは<start_of_turn>、Llama 3では独自の形式を使用します。GGUFのメタデータに誤ったテンプレートが含まれていたり、Ollamaが誤ったテンプレートを推定したりすると、回答の品質が低下します。最もよく見られる症状は、ターン終了タグが生成を停止させる代わりに、回答内にそのまま表示されることです。
- 症状:タグがそのまま表示される
- モデルの回答に <|im_end|> または <|eot_id|> が表示されます。対応する PARAMETER stop が欠けているか、テンプレートが正しい終了トークンを出力していません。
- 症状:無限に生成される
- モデルがまったく停止せず、会話のターンを自動的に続けます。想定されている停止トークンが宣言されていません。
- 症状:一貫性のない回答
- モデルがシステムプロンプトを無視したり、的外れな回答を返したりします。ロールの形式(system/user/assistant)が学習時のものと一致していません。
修正するには、Modelfileで正しいTEMPLATEと適切なPARAMETER stopを指定します。正確な情報の基準となるのは、Hugging Faceにある元のモデルの「model card」です。正確な形式が記載されている「prompt format」または「chat template」のセクションを探してください。ChatMLを使うモデル(Qwenとその派生モデル)の場合、テンプレートと停止条件は次のようになります。
次に「ollama create」で再構築し、テストしてください。テンプレートを書き直さずに適切なものを取得する効果的な方法は、Ollama にすでにある同じファミリーの公式モデルを出発点にすることです。そのモデルの生成された Modelfile を確認し、TEMPLATE ブロックを流用してください。
#トラブルシューティング
- 「Error: pull model manifest」
- hf.co のパスの綴りが間違っているか、リポジトリが非公開またはアクセス制限付きであるか、Ollama のバージョンが古すぎることが考えられます。リポジトリの正確な URL を確認し、Ollama を更新してください。
- 量子化タグは存在しません
- Ollamaでタグが見つからないと表示された場合は、Hugging Faceの「Files and versions」を開き、.ggufファイルの末尾の識別子(例:Q4_K_M、IQ4_XS)を正確にコピーしてください。大文字と小文字は区別されませんが、名前は一致する必要があります。
- モデルの動作が非常に遅い/応答が途切れ途切れになる
- VRAMが不足しているため、モデルの一部がシステムRAMにオフロードされ、CPUで処理されています。「ollama ps」でGPUとCPUのどちらで動作しているかを確認し、量子化のビット数を一段下げるか、より小さなモデルに切り替えてください。
- リポジトリにはsafetensorsしか含まれていない
- .ggufファイルがない場合は、コミュニティが変換した「GGUF」版を探すか、llama.cppのスクリプトを使って自分でモデルを変換してください。
- 出力にタグが混入する
- チャットテンプレートが正しくありません。前のセクションを参照し、Modelfile で適切な TEMPLATE と PARAMETER stop を指定してください。
#さらに詳しく
GGUFをインポートするには、Ollamaのエコシステムにおける2つの基本スキルが必要です。このガイドの続きを学ぶには、次の本サイトのガイドをご覧ください:
- 量子化の選択(Q4、Q5、Q8、FP16)
- 品質とメモリ使用量のトレードオフを詳しく理解し、使用するカードに合ったGGUFのバリエーションを選ぶ。
- Ollama Modelfile でモデルをカスタマイズする
- Modelfileをさらに活用する:システムプロンプト、パラメータ、テンプレート、同じモデルの複数のバリエーション。
- Ollama のインストール:Windows、macOS、Linux
- 初めてのGGUFをインポートする前に、ゼロから始める方向けの、最新の基本インストールガイド。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。