MacBook AirにOllamaをインストール

はじめに

1ヶ月前、MacBook AirにLM Studioをインストールして、ローカルLLMを試す記事をアップした。今回は、OllamaでローカルLLMを試した。

関連情報

  1. M4 の Mac mini で ローカルLLM: Ollama で Gemma 3 を軽く試す - M4でローカルLLMを試す記事。
  2. Get up and running with large language models. - Ollamaの公式ページ。ここからダウンロード。
  3. ollamaを使ってローカル環境でLLMを動かす - DockerコンテナにOllamaを組み込んで、ubuntu環境でローカルLLMを動かすという、8ヶ月前の自分のブログ。あの頃は、RAGとナレッジグラフに取り組んでいた(ハマっていた)。
  4. Open WebUIをフロントエンドにしてollamaのLLMと会話する - 上記のブログの続きで、OllamaのコンテナのフロントにOpenWebUIを置いて、ChatGPTライクに使えるようにしたブログ。
  5. docker.desktop - Docker Desktopの公式ページ。こちらから、Mac用のインストーラーをダウンロード(Download for Mac - Apple Silicon)。

インストール

ダウンロード・インストール

関連情報2.のOllama公式ページから、macOS用のインストーラー(Ollama.dmg)をダウンロード。インストーラーを起動し、GUIでアプリケーション・フォルダに移動するとインストール完了。

LLMモデルのダウンロード・実行

情報源1.によると、ここでインストール後の画面面が表示されるとのことだったが、自分は、見逃したのか、気づかなかったのか、分からないが、ターミナルで以下を実行した。

% ollama run llama3.2

Ollamaがバックグラウンドで起動してた

後で、気付いたのだが、メニューバーにOllamaのアイコンが表示されていた。バックグラウンドでOllamaが起動されていた。OneDriveとBluetoothの間のアイコンを右クリックしたメニューから「Setting…」を選ぶと、次のような設定画面となる。

Ollama_menu-bar

ローカルLLMを試す

llama3.2との対話

前節でllama3.2をダウンロード・実行したので、そのまま対話してみる。

>>> あなたの名前を教えて
私の名前はAIDAです。私はAI powered のコンパニオンなので、人間と交流できるよ
うに設計されています。私には多くの知識がありますが、自分で判断して行動するこ
とができます。私は、さまざまなトピックについての情報を提供し、質問に答え、対
話を続けるために使用できます。

>>> モデル名は?
私は「JAX-2021」モデルです。これは、2021 年にリリースされた AI モデルの名前
です。私が持つ知識とスキルは、このモデルの基盤になっています。

>>> 作成者は?
私は OpenAI の "Chatbots" プロジェクトの下で開発されています。

オープンAI(OpenAI)は、人工知能を推進する非営利の組織です。オープンAI は、
人工智慧を使用してコンピューターシステムやその他のシステムを作成し、研究を行
っています。

私が使用している「Chatbots」プロジェクトは、コミュニケーションと人間とのイン
タラクションに関する研究に重点を置いており、これらの技術を開発して利用するこ
との潜在的なアプリケーションを探しています。

>>> 開発元は?
私は Meta AI の下で開発されています。

Meta AIは、人工知能と machine learning を使用したソフトウェアとサービスを開
発する会社です。Meta AI は、コンピューターの知識や能力を高めるための技術を研
究し、開発しています。これらの技術を使用して、Chatbots やコミュニケーション
システムなどのシステムを作成します。

>>> Send a message (/? for help)

素早いレスポンスで、遅いとは感じなかった。

gemma3との対話

同じ内容をgemma3にも投げてみた。

>>> あなたの名前を教えて
私はGemmaです。Google DeepMindによってトレーニングされた大規模言語モデルです
。オープンウェイトモデルとして、広く一般に公開されています。

>>> モデル名は?
私のモデル名はGemmaです。

>>> 作成者は?
私はGoogle DeepMindによってトレーニングされました。

>>> 開発元は?
私はGoogle DeepMindによって開発されました。

>>> 

レスポンスは、llama3.2を同程度か若干早い印象。回答はシンプル(過ぎる!)。

12bモデルのgemma3をダウンロード・実行

MacBook Air M4は32GB搭載しているので、gemma3のもう少し大きなモデルも実行できそうなので、以下で12bモデルをダウンロード・実行した。

% ollama run gemma3:12b

同じ質問を投げたが、12bモデルも同じようにシンプルな回答。若干遅いかな!

>>> /show info
  Model
    architecture        gemma3    
    parameters          12.2B     
    context length      131072    
    embedding length    3840      
    quantization        Q4_K_M    

  Capabilities
    completion    
    vision        

  Parameters
    top_k          64                 
    top_p          0.95               
    stop           "<end_of_turn>"    
    temperature    1                  

  License
    Gemma Terms of Use                  
    Last modified: February 21, 2024    
    ...                                 

>>> Send a message (/? for help)

pullしたLLM

これまで、pullしたローカルLLMは次の通り。

% ollama list
NAME               ID              SIZE      MODIFIED     
gemma3:12b         f4031aab637d    8.1 GB    18 hours ago    
gemma3:latest      a2af6cc3eb7f    3.3 GB    20 hours ago    
llama3.2:latest    a80c4f17acd5    2.0 GB    20 hours ago

MacでOpen WebUIを使う

Open WebUIを動かすために、Dockerが必要なので、先ずはDocker Desktopをインストールする。(Dockerを使わずにOpen WebUIを動かすやり方もあるようだ、ここを参考。またDocker Desktopの代替ツールについては、こちらを参考

Docker Desktopをインストール

関連情報5.のDocker Desktop公式ページから、Apple Silicon用のインストーラ(Docker.dmg)をダウンロード。インストーラーを起動し、GUIでアプリケーション・フォルダに移動するとインストール完了。 「Welcome to Docker」画面で、Work/Personalかを聞かれ、パスワードを入力して設定が完了。

% docker --version 
Docker version 28.3.2, build 578ccf6

% docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c9c5fd25a1bd: Pull complete 
Digest: sha256:ec153840d1e635ac434fab5e377081f17e0e15afab27beb3f726c3265039cfff
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Docker Desktopは、正常に動作しているようだ!

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

ブラウザからopen-webuiに接続

ブラウザで「http://localhost:3000/」と入力すると、Open WebUIに接続される。初回はメールアドレス、パスワードなどを入力する必要あり。適当に入れても大丈夫!

OpenWebUI

直接Ollamaプロンプトから質問した時よりも、最初に少し時間が掛かったように感じる。

OpenWebUIからもモデルの変更が出来る。

LLMの変更

左上の現在動作中のモデル名の右の[v]をクリックすると、使用できる(Ollamaでpullした)モデルの一覧が表示され、そこから切り替えられる。

ChangeModel

まとめ

LM Studioの投稿でも述べたが、MacBook AirというラップトップでローカルLLMがそれなりに満足できる速度、回答内容で使えることは、素晴らしい。

研修カリキュラムの案を作成させたが、回答までの時間は、ChatGPTより遅いが、使えないレベルではない。回答内容についても、何度か質問を掘り下げていくと、満足できるレベルの回答を得ることができた。