📝

OllamaでローカルLLMを使う際のTips

に公開

LLMについて詳しくない初心者が、OllamaでローカルLLMを扱う際に知っておくとよい事前知識についてまとめる。

クローズドモデルとオープンモデル

LLMの利用を考える際、モデルはクローズドモデルとオープンモデルの二種類に大別される。

クローズドモデルは、いわゆるOpenAIやAnthropicのようなLLMプロバイダーが内部でホストし、APIやアプリケーションを介してのみ利用可能なモデル。
gpt、claude、geminiなどの有名なモデルはいずれもクローズドモデルであり、モデルをローカルでホストすることはできない。

反対にオープンモデルはモデルのバイナリデータが公開されており、スペックを満たすマシンさえあれば誰でもローカルでモデルをホストできる。
いわゆるローカルLLMと呼ばれるモデルで、gpt-ossやqwen、gemmaなどがこれにあたる。
ローカルLLMを利用する際には、まず最初にHugging Face等で公開されているモデルのバイナリデータをダウンロードするところから始める。

ローカルLLMを動かす

専用のツールを利用することで、簡単にローカルLLMを動かすことができる。

有名なのはLM StudioとOllamaの二つ。
この二つは機能性にそこまで大きな違いはないが、CLIまたはREST APIでクイックに利用したい場合はOllama、GUIで利用したい場合はLM Studioが良さそう。

参考:
https://ensou.app/blog/local-llm-ollama-lm-studio-comparison/#heading-9

量子化

ローカルLLMに特徴的な概念として、量子化がある。

クローズドモデルは基本的に各LLMプロバイダーが最高性能のモデルを超スペックの環境でホストするが、ローカルLLMは一般人が一般的なスペックのマシン上で動作させられることが重要になる。
LLMは性質上、モデルサイズが大きくなるほど性能が上がる傾向にあり、高性能モデルをホストするには膨大なサイズのメモリを確保する必要がある。
ローカルLLMでも、性能の高いモデルほどメモリサイズが要求されるため、一般的なスペックのマシンで利用するのは難しい。

量子化は、モデル性能の低下をできるだけ抑えながらモデルのサイズを小さくするための手法で、一般的にモデルのパラメータや推論時の演算に適用する浮動小数点数の精度を下げることによって実現する。

例として、GoogleのGemma3モデルの概要を見るとモデルパラメータごとに5つの精度レベルのモデルが用意されている:
https://ai.google.dev/gemma/docs/core?hl=ja#sizes

Qwen3モデルでも複数の量子化タイプモデルが公開されている。

https://huggingface.co/Qwen/Qwen3-32B-GGUF/tree/main

ローカルLLMを量子化したモデルであれば、一般的なメモリ16~32GB程度のスペックのマシン上でも動作させることが可能。

モデルのファイル形式

ローカルLLMを利用するにはモデルの重み情報が必要になる。
この重み情報を表現するファイルの形式がいくつか存在する。
ローカルモデルはGGUF形式かsafetensors形式で公開されることが多い。

Ollamaは、基本的にGGUF形式にしか対応していない。
モデルがsafetensors形式で公開されるケースも多いが、この場合はllama.cppというツールを介してGGUF形式に変換する必要がある。
一部アーキテクチャのみsafetensors形式をサポート)

モデルの使い方

Ollamaで公式にサポートされるモデルであれば、ollamaコマンドでモデル名を指定するだけで実行できる。モデルは自動でローカルにダウンロードされる。
https://ollama.com/search

他に、HuggingFace上にGGUFが公開されているモデルであれば、ollamaコマンドでダウンロードを含めて直接呼び出すことができる。
https://huggingface.co/docs/hub/en/ollama

Hugging Faceに公開されていないGGUFをOllamaで利用したい場合、GGUFを参照するModelfileを作成し、ollama createコマンドでモデルをOllamaに登録できる。
https://github.com/ollama/ollama?tab=readme-ov-file#customize-a-model

まとめ

  • Ollamaを使ってローカルLLMを実行できる。
  • Ollamaで公式にサポートされているモデルやHugging FaceにGGUFが公開されていればOllama上で利用可能。
  • その際、量子化済みモデルを選択すれば一般的なスペックのマシンでもローカルLLMを実行できる。
  • サポートもされておらずHFに公開されていないカスタムモデルでも、ローカルからOllamaに登録することで利用可能。

Discussion