Ollamaはローカル環境でLLMが使える無料のツールです。
Ollamaを使えば、LlamaやGemmaなどの人気LLMをローカル環境で動かすことができます。
この記事では、Ollamaの環境構築からモデルを使ったテキスト生成の方法まで紹介します。
Ollamaとは
Ollamaは、ローカル環境でLLMモデルを動かすことができる無料のツールです。
LlamaやGemmaなどの人気モデルに対応しており、ChatGPTのような分かりやすいインターフェイスで利用できます。
OllamaをPythonで使用する方法は、別の記事で解説しています。
ローカルの実行環境
LLMのモデルを使う際に、GPUが必要になります。
この記事では、次のようなGPUを搭載した環境を用意しています。
- GPU:NVIDIA A100
- GPUメモリ(VRAM:80GB)
- OS:Ubuntu 22.04LTS
Windowsをお使いの方は、Ubuntuをインストールする記事をご覧ください。
Ollamaの環境構築
この記事では、OllamaとOpen WebUIの2つのDockerコンテナを使って構築します。
Ollamaはモデルによるテキスト生成を行い、Open WebUIはインターフェースを提供する役割になります。
Dockerのインストール方法は以下の記事をご覧ください。
docker-compose.ymlを作成します。
mkdir ollama
cd ollama
nano docker-compose.yml
開いたdocker-compose.ymlファイルに以下の記述をコピーして貼りつけます。
services:
ollama:
image: ollama/ollama
runtime: nvidia
container_name: ollama
ports:
- "11434:11434"
volumes:
- .:/app/ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "8080:8080"
volumes:
- .:/app/open_webui
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
ollama:
open-webui:
docker-compose.ymlの記述をもとに、Dockerコンテナを構築して起動します。
docker compose up
コンテナが起動したら、ローカルPCの「ブラウザの検索窓」に以下のURLを入力し、Enterを押すとOllamaの画面が表示されます。
http://localhost:8080/
Open WebUIのアカウント未登録の場合は「Sign up」をクリックして、アカウントを作成してください。
既にアカウント登録済みの場合は、メールアドレスとパスワードを入力し、「Sign in」をクリックしてログインします。
Ollamaにモデルを設定していきます。
右上の[丸い]アイコンをクリックし、「Settings」を開きます。
サイドバーから「Admin Settings」を選択します。
サイドバーから「Models」を選択し、「Pull a model from Ollama.com」にダウンロードするモデル名を入力し、「ダウンロード」アイコンをクリックします。
Ollamaに対応しているモデルは、Githubから参照できます。
「Download」列の「ollama run」の右側に表示されている名称が、入力するモデル名になります。
- llama3
- llama3:70b
- phi3
- phi3:medium
Ollamaで用意されていないカスタムモデルを使用する方法は、別記事で解説しています。
Ollamaでテキスト生成
Ollamaを使ってテキスト生成をしてみます。
左上の「New Chat」をクリックし、画面上の「Select a model」から、ダウンロードしたモデルを選択します。
画面下の「Send a Message」に”プロンプト”を入力し、[矢印]ボタンを押すと、テキストが生成されます。
次のような出力がされました!
PyTorchのデータローダーの使い方を日本語で簡単に教えて下さい。
PyTorchのデータローダー(Data Loader)は、機械学習モデルで使用するデータを効率的に読み込み、Batch化して提供します。以下は、日本語での簡単な解説です。
1.インスタンス化
from torch.utils.data import Dataset, DataLoader
# 自分のDatasetクラスを作成
class MyDataset(Dataset):
def __init__(self, data_path):
# データパスからデータを読み込みます
self.data = …
def __len__(self):
return len(self.data)
def __getitem__(self, index):
# index番目のデータを取得して、PyTorchのTensor形式に変換します
data = …
return torch.tensor(data)
2.インスタンス化されたDatasetクラスを使用してDataLoaderを作成
# インスタンス化されたMyDatasetインスタンスを作成
dataset = MyDataset(‘path/to/data’)
# Data Loaderを作成(batch sizeは128)
data_loader = DataLoader(dataset, batch_size=128)
3.データローダーを使用してバッチサイズでデータを読み込み
for i, batch in enumerate(data_loader):
# バッチサイズでデータを取得できます
inputs, labels = batch
…
以上、PyTorchのデータローダーの基本的な使い方を説明しました。Datasetクラスを作成し、Data Loaderを作成して、バッチサイズでデータを読み込みます。
生成AI・LLMのコストでお困りなら
GPUのスペック不足で生成AIの開発が思うように進まないことはありませんか?
そんなときには、高性能なGPUをリーズナブルな価格で使えるGPUクラウドサービスがおすすめです!
GPUSOROBANは、高性能GPU「NVIDIA H200」を業界最安級の料金で使用することができます。
NVIDIA H200は、生成AI・LLMの計算にかかる時間を大幅に短縮することが可能です。
クラウドで使えるため、大規模な設備投資の必要がなく、煩雑なサーバー管理からも解放されます。