Re Reference AI

インフラ

Ollamaとは

コマンド1つでLLMをローカル環境にダウンロードし実行できる、オープンソースのツール

ローカルLLM推論

ひとことで言うと

コマンド1つで、AIモデルを自分のパソコンにダウンロードして動かせるツール。

概要

Ollama(オラマ)とは、LLMを個人のPC上に簡単にダウンロードし実行できるようにする、オープンソースのツール。 内部ではllama.cppを推論エンジンとして利用し、`ollama run llama3`のようなシンプルなコマンド1つで、量子化されたモデルのダウンロードから起動、対話までを完結できる。 ローカルのREST APIとしても動作するため、Open WebUI等のフロントエンドや自作アプリケーションから呼び出す用途にも使われる。 Modelfileと呼ばれる設定ファイルを使って、システムプロンプトやパラメータをあらかじめ組み込んだ独自のモデル設定を作成・共有でき、開発者が試行錯誤する際の手軽さが広く支持されている。

背景

LLMをクラウドAPI経由ではなく自分のPC上で動かしたいというニーズがある一方、llama.cpp等のライブラリを直接扱うにはコマンドラインでのビルドやモデル形式の変換といった専門知識が必要だった。 Ollamaは、この導入の手間を簡素化し、開発者がより手軽にローカルLLMを試せるよう開発された。

歴史

2023年: Ollamaが公開され、コマンドラインからのモデル管理・実行の手軽さで、ローカルLLM実行環境として急速に普及した。

アーキテクチャ

内部でllama.cppを推論エンジンとして利用し、モデルファイルはGGUF形式に量子化された状態で配布・実行される。 モデルの取得・バージョン管理・APIサーバーとしての提供までを1つのCLIツールで完結できるよう構成されている。

コード例

Python公式クライアントでの呼び出し(概念例)

import ollama

response = ollama.chat(
    model="llama3",
    messages=[{"role": "user", "content": "日本の首都はどこですか?"}],
)
print(response["message"]["content"])

利点

  • 簡単なコマンドだけでLLMのダウンロードから実行までを完結でき、導入の手間が少ない
  • ローカル実行のため、データを外部へ送信せずにLLMを利用できる
  • REST APIとしても動作し、他のアプリケーションから呼び出しやすい

欠点

  • 実行するPCのGPU・メモリ性能に、扱えるモデルサイズや速度が制約される
  • クラウドの大規模モデルと比べ、利用できるモデルの性能に上限がある
  • vLLM等と比べ、大量の同時リクエストを処理する用途には向かない

比較

  • llama.cppOllamaは、内部でllama.cppを推論エンジンとして利用している
  • LM StudioOllamaがCLI中心であるのに対し、LM StudioはGUIを備えたローカルLLM実行ツール
  • Open WebUIOpen WebUIは、Ollama等をバックエンドに利用するチャットUIとしてよく組み合わせて使われる
  • 量子化Ollamaで配布されるモデルの多くは、量子化されたGGUF形式で提供される
  • GGUFOllamaで配布・実行されるモデルの多くは、GGUF形式で提供されている

関連用語

llama.cppLM StudioOpen WebUI量子化GGUFローカルLLM

よくある質問

Ollamaで動かせるモデルは?

LlamaMistralGemmaQwen等、GGUF形式に変換された主要なオープンウェイトモデルの多くに対応している。

OllamaはGPUがなくても使える?

CPUのみでも動作するが、内部で利用するllama.cpp同様、GPUがある環境の方が生成速度は速くなる。

参考文献

関連Zenn記事