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

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パッケージダウンロードしてインストールしちゃうのが一番簡単だと思うです。

💡
必須じゃないけど、ついでに、Windows Terminalも入れると色々楽です。
楽ですが、快適な環境を作るまでが結構めんどいので、別になくてもいいです。

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使って計算したい人は、途中の##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」をポチっとおしましょう。

💡
PCの構成によっては、gemma:7bだと、処理が重すぎるかもしれないです。
そんなときは、gemma:2bを試してみてもよいかもしれないです。 雑に言ってしまえば、2bは、7bのお手軽版みたいなものです。詳しくはググってください。

これで、セッティングが完了しました。
いい感じに使いこなして、面倒くさい仕事をショートカットしましょう。


おまけ

せっかくセットアップができたので、何か聞いてみましょう。

💡
ただの動作確認というか、そもそも余興程度にしか思ってないので、プロンプトが雑です。
その雑なプロンプトでどんな反応が返ってくるかをみてみます。

ポケモン赤版について聞いてみる

最初のポケモン選びって色々悩みますよね。なので聞いてみました。

・・・ということで、ポケモン赤版を懐かしむ時には、オーキド博士からピジョンをもらおうね。

この記事でやりたかったことを聞いてみる。

こんな長々と記事を読まなくても、これだけでよかったらしい。(本当かな????

どうでもいいこと

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