【Ollama】自宅サーバーでかんたんにローカルLLMを動かす方法*
こんにちは、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からも使えます!)
Ollamaの導入・構築方法
OllamaはLinuxかmacOSかで、導入方法が異なります。
また、Dockerで導入することも出来ます。
macOS
macOSの場合は、普通のソフトと同じようにインストールすることで使えるようになります。
macOS用ダウンロード
Linux
以下のコマンドをシェルで実行することで、インストールが行われます。
インストール後はスタートアップに登録されるので、再起動しても自動で立ち上がります。
curl https://ollama.ai/install.sh | sh
モデルの追加方法
Ollamaは公式からモデルをダウンロードして追加する方法と、自分で作った(or ダウンロードした)モデルを追加する方法の2つの方法があります。
公式からモデルをダウンロードする方法
以下のページから使いたいモデルを選びます。
そして、以下のようなコマンドを実行します。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
Discussion