はじめに
ChatGPTの発表以来、AIに関する技術の進歩がすごいですね。
試行錯誤するには、各プロバイダーから提供されているLLMを利用したり、サービスを利用する必要があるわけですが、検証だけでも費用が生じます。
個人で検証するには大変な作業です。趣味や学習のために大量のLLM使用をしていたのでは身が持ちません。こうした中で、無料で使えるLLMが登場しているわけですが、それらをうまく使えるツールがあります。
Ollamaをインストールする
Ollamaは以下のGithubで入手できます
当初はWindows版をインストールしていたのですが、モデルをインストールするたびに容量が増えていって、Cドライブが枯渇しそうになりました。
そこでWSL(Ubuntu)を別ドライブに構築して、そっちでOllamaを使用するように変更しました。
ということで、WSLを利用してOllamaをインストールします。
インストール手順
ここに記されている通りにWSL内でコマンドを実行していきます。
curl -fsSL https://ollama.com/install.sh | sh
基本的にこれだけでOllamaのインストールは完了です。
起動するために以下のコマンドを実行します
sudo systemctl start ollama
次はOllamaをサービスとして常時起動しておくようにします
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
/etc/systemd/system/ollama.service を作成します。viやnanoを利用するのがよいでしょう。
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
作成したOllamaサービスをリロードし、常時起動とします。
sudo systemctl daemon-reload
sudo systemctl enable ollama
NVidiaのCUDAを使用する場合は以下からインストールします。
ここで留意ですが、CUDAの最新版をインストールすると、pythonのtorchなどがまだ対応していないことがありますので、一つ前をインストールしたほうが良いかもしれません。自分がインストールしたときは、CUDA12.6が最新でしたが、pythonの各パッケージが12.4までしか対応していない状況でした。
CUDAのインストールをしたら、以下のコマンドで有効になっているか確認しましょう
nvidia-smi
自分の環境では以下のように表示されました。GeForce RTX 3060をしてしているのが分かります。
モデルを使用する
ここに使用できるモデルがリストアップされています。
代表的なものとしてllama3.1を使ってみます
ダウンロードだけしたい場合は以下を実行します
ollama pull llama3.1
以下はモデルのダウンロードと起動が同時に行われます。
ollama run llama3.1
メッセージを試しに書いてみました
英語の時と日本語で違いはあるようですね。回答の文章量が違います。
これでOllamaのWSLへのセットアップは完了ですが、これだけだと毎回コマンドプロンプトを使用することになるので、WebでOllamaを使用できるようにします。
Docker: Open-WebUIを使用する
docker-composeファイルを作成します
services:
# for ollama webui
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
volumes:
- ./volumes/open-webui:/app/backend/data
ports:
- 8980:8080
environment: # https://docs.openwebui.com/getting-started/env-configuration#default_models
- OLLAMA_BASE_URLS=http://host.docker.internal:11434
- ENV=dev
- WEBUI_AUTH=False
- WEBUI_URL=http://127.0.0.1:8980
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
Ollama(host.docker.internal:11434)と接続して、localhost:8980で表示できるようにします。
docker-compose up -d
これでlocalhost:8980をwebブラウザで表示してみます。
チャット画面になって使いやすくなりました。
モデル選択をすると、Ollamaでpullしたモデルが表示されます。
OllamaのAPI
localhost:8980/docs にアクセスすると、OpenAPIのSwagger画面を表示させることができます。
OllamaをWebブラウザで使用する以外に、APIアクセスすることで直接利用することができるみたいです。FastAPIで実装してるみたいですね。
さいごに
AIと聞くと、なんでもできる万能なアンドロイドみたいなイメージがわきますが、実際のところは、まだまだその領域には達していません。
「現在のAI技術は革新的なモデルが出ているものの、それを使いこなすテクニックが確立していないため、日進月歩で研究が進んでいる途中」だということです。試行錯誤です。
ところが現在はLLMと呼ばれるAI-Modelが次々と発表され、その性能が評価されますが、実際に重要なのは、「それをどのように活用するか」という点です。
AI-Modelをカスタイズする手法としてRAGやファインチューニングといった手法が登場しました。
どんな質問をすればAIが適切な答えを返すかという観点から、プロンプトが工夫されています。プロンプトエンジニアという職業も少しずつ登場しています。
さらには、各モデルを組み合わせたり、やりとりさせたり、ワークフローに組み込んだりと、様々なテクニックが出てきました。
まさに日進月歩です。AIは新しいからこそ、誰もがまだまだ新人という時期です。誰にでもチャンスがあります。ぜひみなさんトライしてください。