WindowsとDockerなローカル環境で、OllamaとOpenWebUIを使って、人工知能なGammaセットアップする話

はじめに
いわゆるAI:人工知能と呼ばれる物体を触ってみるお話です。
こういうのを触りたい人ってのは、とりあえずちょっとは開発のようなものが出来るか分るかの人だと思うので、初歩的なお話はかなり端折ってるし、何よりも説明が雑です。なにとぞ。
よくわからんってことは、てきとーに調べてね。
Ollamaってなによ。
いわゆるAI(Artificial Intelligence:人工知能)というか、LLM(Large Language Model:大規模言語モデル)というか、そういうのを動かすための、オープンソースなツールです。
アイキャッチの絵にいるゆるい動物がそいつです。
Open Web UIってなによ。
いわゆるLLMとかそういうのを扱うときに便利になるツールと思ったらいいと思うです。
Gammaってなによ。
Googleの作った、なんかすごいっぽいAIみたいなものです。
正確にはLLMなんで、あれですが、色々細かいことはいいんです。
前提条件
- Windows 11 23H2
- Docker Desktop for Windows
- PowerShell
Windows 11 23H2
Windows11で、まめにWindows Updateがちゃんと当ててるなら、きっと23H2だと思うです。
確認は、Windowsキー+R
を押して、出てきたウィンドウにwinver
と打ってOK
を押せば、バージョン情報が出てきてくれます。
Docker Desktop for Windowsのインストール
Dockerのダウンロードページで「Docker Desktop」をダウンロードして、インストールするといいと思います。
なんかごちゃごちゃ設定とかあるけど、だいたいてきとーでいいです。
サインアップもしてもしなくてもいいと思うです。
PowerShellをインストール
マイクロソフト謹製PowerShellの説明を読んでインストールするといいと思うです。
なんかごちゃごちゃ書いてるけど、要するに安定版のMSIパッケージダウンロードしてインストールしちゃうのが一番簡単だと思うです。
楽ですが、快適な環境を作るまでが結構めんどいので、別になくてもいいです。
docker単体で建てる
とりあえず触ってみたいだけなら、こっちでいいと思います。
あとで、docker composeで動かす方法も書いてるので、一括管理したい人はそっちを見てね。
Ollamaを立ち上げる
OllamaのDockerHubに書いてる通りではあるんですが、読むの面倒だと思うので、いい感じのを用意しておきました。
なんかごちゃごちゃ書いてるけど、WSLからではなく、PowerShellから動かすなら「NVIDIA Container Toolkit」もいらないっぽいです。
PowerShellで動かしていきましょう。
PS > docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:latest --restart unless-stopped
コマンド1本でOllamaが立ち上がったはず。
open web uiを立ち上げる
Open Web UIのドキュメントにもごちゃごちゃ書いてますが、やっぱりめんどいので、とりあえずいい感じのを作っておきました。
PS > docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart unless-stopped ghcr.io/open-webui/open-webui:main
こっちもコマンド1本でおわり。
コマンド2本だけで立ち上がっちゃいましたね。カンタンカンタン。ただ、これらコンテナの管理がちょっとめんどかったりしますが、使ってみるだけならこれが一番早いと思います。
なお、次の章で、docker-composeで建てる方法やってみる人は、
PS > docker rm ollama PS > docker rm open-webui
で、今建てたOllamaとOpen web uiを削除しといた方がいいと思うです。
docker composeで動かす
ollamaとopen web uiを別々に立ててると、個別にやり取りしやすいのでいいこともあるわけですが、わたしのようなめんどくさがり屋は、一括管理がしたいわけです。
なので、docker composeでまとめて管理する方法もかいておきます。
ollamaとopen web uiを一緒に管理しつつ、立ち上げる。
てきとうなディレクトリにdocker-compose.yml
なファイルを生成して、下のを書き込む。
X:\oi\docker-compose.yml
にファイルを作ったテイでお話をすすめます。
services:
ollama:
volumes:
- ollama:/root/.ollama
container_name: ollama
pull_policy: always
tty: true
restart: unless-stopped
image: ollama/ollama:latest
## GPU support
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities:
# - gpu
open-webui:
build:
context: .
args:
OLLAMA_BASE_URL: '/ollama'
dockerfile: Dockerfile
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
ports:
- 3000:8080
environment:
- 'OLLAMA_BASE_URL=http://ollama:11434'
- 'WEBUI_SECRET_KEY='
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
ollama: {}
open-webui: {}
##GPU support
から下8行のコメントアウトを外してね。外した時にインデント崩れるとエラーになるから、ちゃんとインデントをそろえてね。 GPUは
nvidia
製品がついており、そのコアを全部(all
)使う前提で書いてます。PowerShellを開き、目的のディレクトリに移動(cd
)し、docker compose
で起動。
PS > cd X:\oi
PS > docker compose up -d
ちゃんと起動出来たら、Docker Desktop上に「openwebui」ってのがでてくるです。
以降、wondowsをシャットダウンしたとしてもこのコマンド2本だけでいつでも立ち上げられるようになります。
Docker Desktopから「openwebui」の行を起動してももちろんよいです。
docker-compose使う方法は、docker-compose.yml
を用意するのが面倒くさいですが、設定が視覚的にわかりやすいし、なによりも、一度用意すれば、以後docker compose up -d
と打つだけで簡単に立ち上げられるので、よきです。
とりあえずアクセスしてみる
さてお待ちかね、今建てたOpen Web UIにアクセスしてみましょう。
ブラウザでlocalhost:3000
を打つだけです。
昔の文具券の絵とか宇宙とかが表示されたら、OllamaとOpen Web UIの立ち上げ成功です。

Gammaを準備してみる
localhost:3000
でちゃんと表示されたら、下の方の「Get started」を押して進んでいきましょう。
管理用アカウント作れって言われるので、てきとうにちゃちゃっと作成して先にすすみましょ。
ダッシュボード画面のようなところに到着したら、左上「Select a model」を押してgemma:7b
と入力。「Pull "gemma:7b" from Ollama.com」を押したら、ダウンロードが開始されます。

ちょこっと時間がかかるので、気長に待ちましょう。
ダウンロードがおわったら選択できるようになっており、選ぶと、チャットが開始できるようになります。
「gemma:7b」をポチっとおしましょう。
gemma:7b
だと、処理が重すぎるかもしれないです。そんなときは、
gemma:2b
を試してみてもよいかもしれないです。 雑に言ってしまえば、2b
は、7b
のお手軽版みたいなものです。詳しくはググってください。

これで、セッティングが完了しました。
いい感じに使いこなして、面倒くさい仕事をショートカットしましょう。
おまけ
せっかくセットアップができたので、何か聞いてみましょう。
その雑なプロンプトでどんな反応が返ってくるかをみてみます。
ポケモン赤版について聞いてみる
最初のポケモン選びって色々悩みますよね。なので聞いてみました。

・・・ということで、ポケモン赤版を懐かしむ時には、オーキド博士からピジョンをもらおうね。
この記事でやりたかったことを聞いてみる。
こんな長々と記事を読まなくても、これだけでよかったらしい。(本当かな????

どうでもいいこと
Gammaのロゴが、Gamecubeのロゴに見えるのは私だけではないはず。