📖

Apple Silicon(M3) Macで Ollama を動かしてみた

2024/05/28に公開

LLMがローカルで動かせるようになると、LLMプラットフォーマーの利用料がかからなくなったり、24時間365日動作可能なAIエージェントが実現出来たり、情報漏洩のリスク回避への期待が出来るなど、様々なメリットがあることからローカルLLMは注目されています。

Ollama は、LLM をローカル環境で簡単に動かすことの出来るオープンソースフレームワークです。
https://github.com/ollama/ollama

実行環境

マシーン:MacBook Pro(Apple M3 Maxチップ)
メモリ:128GB ユニファイドメモリ
OS:macOS Sonoma

Ollama の特徴

Ollamaには、ざっくり説明すると以下のような特徴があり、シンプルにローカル環境でLLMを実行、管理できます。

  • Modelfile を使用して、モデルの設定やパラメータを簡単にカスタマイズ出来る
  • CLIとREST API を提供しているため、簡単にモデルの作成、実行、管理が出来る
  • Pythonライブラリが提供されているので、Pythonプロジェクトに簡単にLLMを統合できる

インストール

以下の公式リンクから macOS 用のインストーラーをダウンロードします。
https://ollama.com/download

ダウンロードが完了したら、画面の指示に従いインストーラーを実行します。

アプリを起動するとメニューバーにアイコンが表示されます。

CLI で Llama3を実行

ターミナルを開き、Ollamaが起動している状態で以下を実行するとLlamaが動きます。

ollama run llama3

成功の図

Open WebUI で実行

Open WebUI を使うと、コマンドラインではなくブラウザから ollama を実行できます。

https://docs.openwebui.com/getting-started/

Dockerを使って Open WebUI を起動します。

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

ブラウザから、WebUI にアクセス

http://localhost:3000/

WebUI が立ち上がりました。

Docker Composer を使いたい場合は以下を参照
https://docs.openwebui.com/getting-started/#docker-compose

REST API を実行

Generate Mode で実行

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?"
}'

Chat Mode で実行

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    {
      "role": "user",
      "content": "why is the sky blue?"
    }
  ],
  "stream": false
}'

参考リンク

Ollama公式サイト
GitHub - Ollama
Open WebUI
Olama API

Discussion