【GTX 1660ti】Meta Llama3をローカルで動かした話【GTX 1650】
想定している読者
非技術者・非開発者(AIを道具として利用している人)
Linux の基本的な操作ができる人
Windows の場合は WSL2 が利用できる人
自分のローカル環境 GPU で LLM(ChatGPTのようなもの)を動作させたい人
はじめに
ローカルで動作が可能な Meta 最新 LLM Llama3(Language Large Models Meta AI) を 旧GTX グラボで動作可能か検証してみました。
検証した環境は
GTX 1660ti (6G)
GTX 1650 (4G)
の二枚刺しです。システムは Linux mint 21.3(i7-6700/32G)です。
準備
llama ローカル利用で、もっとも簡単に導入できるという話の ollama を利用します。
確認したのは、ollama (Docker 版)と open-webui の組み合わせです。open-webui は ChatGPT とほぼ同じ UI が利用できます。
非開発・非技術者向けの記事を心がけているので、Docker の説明も少しします。Docker とはコンテナと呼ばれる仮想環境を使用してアプリケーションを実行できる技術です。システムの依存関係を気にせずに特定のアプリをワンコマンドで利用する事ができます。
筆者環境の場合は、
sudo apt install docker.io
で導入したデフォルト・バージョンになります。GPU ハード資源を利用する事になるので、もう少し手順が必要です。
公式 https://hub.docker.com/r/ollama/ollama に Docker で GPU を利用する際の詳しい説明があるので、それに従います。
NVIDIA Container Toolkit をインストールします。
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
Docker の設定をします。
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
設定が終了し、Docker & GPU が動作する状態であれば、次のコマンドで導入&起動できます。必要な Docker イメージやファイルは自動でダウンロードされます。
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
正常に終了すれば、ブラウザから http://localhost:3000 でアクセスできます。
動作確認
アカウントの作成を促されますが、これはローカル管理のものなので、適当で構いません。
右上の設定ボタンから、
Ollama.com に登録されている llama3 モデルをダウンロードします。一番小さなモデルです。
上部欄よりモデルを選択します。
貧弱なGPUなので、動作しない・またはもっさりを予想していたのですが、キビキビ動きます。しかも二枚刺しの GPU (GTX 1660ti 6G + 1650 4G)を分散して利用できているようです。
基本的に日本語は未対応という事ですが、こちらの日本語はほぼ完璧に理解してくれるようです。しかし、回答する時はほとんど英語になってしまいます。(時々日本語の事もあります)
※ Windows の WSL2 でも動作は確認しています。ただし WSL の場合は WSL2 専用の GPU ドライバを設定しておく必要があります。
※ RTX 3060 では 6G 程度を占有していたため、二枚刺しの場合はメモリまで分散して保持しているようにみえます。
Docker の終了と起動
Docker をはじめて利用する方のための簡単な説明です。
docker ps -a
とすると、利用している docker の一覧が表示されます。
終了する場合は、
docker stop open-webui
再度開始する場合は
docker start open-webui
暴走した場合は restart
docker restart open-webui
アンインストール(Dockerイメージを削除)する場合は、
docker images
として一覧を表示し、open-webui の「IMAGE ID」を取得します。
docker rmi <IMAGE ID>
としてイメージを削除します。