流行りの生成AIを使ってみたくて試してみました。
おおよそは他の方の情報をコピペしただけですが、後に続く方の参考になるかと思ってメモしておきます。
手順は覚えてる範囲で書いていますが、追試してないので間違ってたらごめんなさい。
環境
以下の環境で構築しました。CPUやメモリは少なくても大丈夫ですが、GPUに関してはVRAMが12GB以上かつNVIDIAのものではないとダメかと思います。使用する14Bモデルが11GBぐらいあるので。
- Ubuntu Linux 24.04
- CPU:Ryzen 7 5700G、RAM:64GB
- nVidia RTX3060 12GB
構築手順
Ubuntu 24.04をクリーンインストールして、最新版にした状態からスタートしました。
インストール時にnvidiaのGPU用ドライバーが自動的に組み込まれている想定です。(クリーンインストールだと指定できます)
- dockerを入れる。
sudo apt install docker.io
- ユーザーをdockerグループに入れる。
id `whoami`
で所属してるグループを確認
grep docker /etc/group
でdockerグループがあるか確認
sudo usermod -aG docker @USERNAME@
←@で囲んだ部分は自分のユーザー名
再ログインかOS再起動すれば次回からdockerグループに入ってるはず
id `whoami`
で確認できる - (必須ではないけど)btopを入れる。
sudo apt install btop
なくても動きます。
CPUやRAMやGPUなどの使用率をターミナルで一覧できるので便利です - nvidia-container-toolkitを入れる。
NVIDIAのサイトInstalling with Aptに従います。
ただし、2番のsedを使う部分はsudoを頭につける必要ありです。
※元の手順書がrootユーザーの存在するDebian向けなのかも? - からあげさんのサイトを参考にOllamaを入れる
コピペすると行頭に$
が入ってるので削除が必要。--gpus=all
付きの方を使いました。
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
- 続けてOpenWebUIを入れる
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
- モデルをpullする
モデル名はdevliveさんの記事を参考に、hf.coからggufまでをコピーしてます。9GBぐらいダウンロードします。
docker exec ollama ollama pull hf.co/mmnga/cyberagent-DeepSeek-R1-Distill-Qwen-14B-Japanese-gguf
- pullするデータはホストの
/var/lib/docker/volumes/ollama/_data
に保存されます
- pullするデータはホストの
- ブラウザで
http://localhost:3000
を開く。Firefoxで大丈夫でした - OpenWebUIの初期設定をする。メールアドレスとパスワードは次回以降に使うので、どこかにメモしましょう
停止手順と2回目以降の起動手順
今までロクにDocker触ったことがなくて、ここで手こずりました。
停止手順
以下の手順で停止しました。
-
docker ps
で稼働中のコンテナ名のリストを表示して一番右側のカラムの名前を確認。ここまでの手順通りならopen-webui
とollama
がいるはず -
docker stop open-webui
でOpenWebUIを停止 -
docker stop ollama
でOllamaを停止
2回目以降の起動手順
以下の手順で2回目以降は起動できました。
-
docker start ollama
でOllamaを起動 -
docker start open-webui
でOpenWebUIを起動 - ブラウザで
http://localhost:3000/
を開く。エラーになる場合は1分ほど待ちます
参考にしたサイト
以下のサイトを参考にしました
-
Installing the NVIDIA Container Toolkit
DockerからGPUを参照する際に必要らしいツールを入れる手順を参考にしました -
Ollama + Open WebUI でローカルLLMを手軽に楽しむ
Docker導入後のコマンドを参考にしています(というかほぼコピペしました -
Ollama で 「DeepSeek-R1 」の日本語追加学習モデルを動かす
pullするモデルの名前はこちらを参考にしました