🦙

【Ollama】自宅サーバーでかんたんにローカルLLMを動かす方法*

2024/02/08に公開

こんにちは、1日16時間以上はAIを触っている株式会社FP16の二宮です。
(FP16だけに...?笑)

「OpenAIやMicrosoftにずっとお金を払っていたくない!」
「自分たちで管理できる場所で実行したい!」

と思うことはありませんか?

今回はそんな方へ向けての記事です。

Ollamaとは?

今回はOllamaというこれからローカルでLLMを動かすなら必ず使うべきツールについて紹介します。

Ollamaは、LLama2やLLava、vicunaやPhiなどのオープンに公開されているモデルを手元のPCやサーバーで動かすことの出来るツールです。

LinuxとmacOSに対応しており、WindowsでもWSLを使うことで動かすことが出来ます。(Windowsも今後対応予定)

OllamaはCLI又はAPIで使うことができ、そのAPIを使ってオープンソースでOllama WebUIも開発されています。

APIはRESTで叩くことも出来ますし、PythonとTypeScript向けのライブラリも公開されており、快適・安定した開発体験を得ることが出来ます。(LangChainからも使えます!)

https://github.com/ollama/ollama-python

https://github.com/ollama/ollama-js

Ollamaの導入・構築方法

OllamaはLinuxかmacOSかで、導入方法が異なります。
また、Dockerで導入することも出来ます。

https://hub.docker.com/r/ollama/ollama

macOS

macOSの場合は、普通のソフトと同じようにインストールすることで使えるようになります。
macOS用ダウンロード

Linux

以下のコマンドをシェルで実行することで、インストールが行われます。

インストール後はスタートアップに登録されるので、再起動しても自動で立ち上がります。

curl https://ollama.ai/install.sh | sh

モデルの追加方法

Ollamaは公式からモデルをダウンロードして追加する方法と、自分で作った(or ダウンロードした)モデルを追加する方法の2つの方法があります。

公式からモデルをダウンロードする方法

以下のページから使いたいモデルを選びます。
https://ollama.ai/library
そして、以下のようなコマンドを実行します。

ollama pull モデル名

Llama2の70bを追加したい場合はこんな感じです。

ollama pull llama2:70b

自前のモデルを追加する方法

自前のモデルがあるディレクトリ階層で、Modelfileというファイル名で、新しくファイルを作成します。
そして、このように記述します。

FROM ./モデルファイル名

vicunaを導入したい場合はこんな感じです。

FROM ./vicuna-33b.Q4_0.gguf

そして、モデルの追加コマンドを実行します。

ollama create モデル名 -f Modelfile

これでモデルの追加は完了です。

APIで操作する方法

OllamaはAPI経由でかんたんに操作することが出来ます。
Ollamaは基本的に11434番ポートで起動します。

このような形式でリクエストを送ることでレスポンスが返ってきます。

curl -X POST http://localhost:11434/api/generate -d '{
  "model": "モデル名",
  "prompt":"プロンプト"
 }'

例えばこんな感じです。

curl -X POST http://localhost:11434/api/generate -d '{
  "model": "llama2:70b",
  "prompt":"ラーメンとうどんはどっちが美味しい?"
 }'

チャット形式の場合はこのようにリクエストを送ります。

curl http://localhost:11434/api/chat -d '{
  "model": "llama2:70b",
  "messages": [
    { "role": "user", "content": "ラーメンとうどんはどっちが美味しい?" }
  ]
}'

おまけ

外部から叩くときはこんな感じでポート指定などして起動できます!
0.0.0.0で外部から触れます。

OLLAMA_HOST=127.0.0.1:5050 ollama serve

pullするときはこうなります。

OLLAMA_HOST=127.0.0.1:5050 ollama pull qwen:72b
株式会社FP16

Discussion