5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollamaをwslにインストールして使う。ついでにwebブラウザでOllamaを表示させる

Last updated at Posted at 2024-08-23

はじめに

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をしてしているのが分かります。
image.png

モデルを使用する

ここに使用できるモデルがリストアップされています。
代表的なものとしてllama3.1を使ってみます
ダウンロードだけしたい場合は以下を実行します

ollama pull llama3.1

以下はモデルのダウンロードと起動が同時に行われます。

ollama run llama3.1

image.png

メッセージを試しに書いてみました
image.png
英語の時と日本語で違いはあるようですね。回答の文章量が違います。
image.png

これで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ブラウザで表示してみます。
image.png
チャット画面になって使いやすくなりました。
モデル選択をすると、Ollamaでpullしたモデルが表示されます。

OllamaのAPI

localhost:8980/docs にアクセスすると、OpenAPIのSwagger画面を表示させることができます。
OllamaをWebブラウザで使用する以外に、APIアクセスすることで直接利用することができるみたいです。FastAPIで実装してるみたいですね。
image.png

さいごに

 AIと聞くと、なんでもできる万能なアンドロイドみたいなイメージがわきますが、実際のところは、まだまだその領域には達していません。
「現在のAI技術は革新的なモデルが出ているものの、それを使いこなすテクニックが確立していないため、日進月歩で研究が進んでいる途中」だということです。試行錯誤です。
 ところが現在はLLMと呼ばれるAI-Modelが次々と発表され、その性能が評価されますが、実際に重要なのは、「それをどのように活用するか」という点です。
 AI-Modelをカスタイズする手法としてRAGやファインチューニングといった手法が登場しました。
 どんな質問をすればAIが適切な答えを返すかという観点から、プロンプトが工夫されています。プロンプトエンジニアという職業も少しずつ登場しています。
 さらには、各モデルを組み合わせたり、やりとりさせたり、ワークフローに組み込んだりと、様々なテクニックが出てきました。
 まさに日進月歩です。AIは新しいからこそ、誰もがまだまだ新人という時期です。誰にでもチャンスがあります。ぜひみなさんトライしてください。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?