コンテンツにスキップ

Compute

Open WebUI + Ollama

このテンプレートを起動すると、ブラウザにプライベートな ChatGPT 風のチャット画面が現れます。背後で動くのは、いまレンタルした GPU 上だけで実行されるモデルです。

イメージは grafilab/openwebui:0.10.2 で、次の 2 つを同梱しています。

  • ポート 80 の Open WebUI。https://<your-slug>.instance.grafilab.ai で公開されます。
  • Ollama。同じコンテナ内でバックグラウンド起動し、127.0.0.1:11434 で待ち受けます。

Ollama は意図的に localhost にバインドされており、プロキシ経由では公開されません。認証機構を持たないため、到達できる人は誰でもあなたの GPU で任意のモデルを読み込んで実行できてしまいます。Open WebUI 経由か SSH 経由で使い、Web Access でマッピングしないでください。

イメージにモデルは焼き込まれていません。起動後に必要なものを pull すると、レンタルの期間中はコンテナ内に置かれます。

自分が管理するハードウェアでモデルを動かすこと自体が目的のときに選びます。プライベートなアシスタント、サードパーティ API に渡したくないモデル、フルスピードで試したい特定のオープンウェイトモデルなどです。

本当に欲しいのが Grafilab のホスト型モデルを Open WebUI のインターフェースから使うこと——GPU のレンタルもモデルのダウンロードも不要で、トークン単位の従量課金——であれば、インスタンスは必要ありません。好きな場所で Open WebUI を動かし、Models API に向けてください。Open WebUI 連携 を参照してください。

通常どおりインスタンスをデプロイし、ステップ 2 の Template Selection で Open WebUI + Ollama を選びます。実行予定のモデルに十分な VRAM を持つカードを選んでください。重みは GPU メモリに収まる必要があり、4 bit 量子化した 7〜8B のモデルは 24 GB のカードに余裕で収まりますが、70B のモデルは収まりません。

詳しい手順は GPU インスタンスをデプロイする にあります。

最初にサインアップしたアカウントが管理者になります。URL を誰かに共有する前に、自分ですぐに済ませてください。

  1. コンソールで My Instance を開き、カードが Active になるまで待ちます。

  2. ブラウザで https://<your-slug>.instance.grafilab.ai を開きます。スラグはインスタンスカードに表示される 3 単語の名前です。

  3. Sign up を選び、名前・メールアドレス・パスワードを入力して送信します。このアカウントが管理者として作成されます。

  4. 同じインスタンスでのそれ以降のサインアップは、あなたが承認するまで保留になります。承認は慎重に行ってください。承認したユーザーは、あなたが料金を払っている GPU でジョブを実行します。

サインアップではなくサインインのフォームが表示された場合は、誰かが先に到達しています。新しいインスタンスを起動し、URL を共有する前に確保してください。

モデルを取得してチャットする

Section titled “モデルを取得してチャットする”

pull するまで何もインストールされていません。方法は 2 つあります。

ユーザーメニューを開き、Settings → Admin Settings → Models を選び、モデルのダウンロード欄に llama3.2 などのモデル名を入力して pull を開始します。進行状況は同じパネルに表示され、完了するとチャットのモデル選択に現れます。

SSH で接続し(インスタンスを管理する を参照)、直接 pull します。

ターミナルウィンドウ
ollama pull llama3.2
ollama list

ollama list は、コンテナ内にあるモデルとそのディスク上のサイズを表示します。ブラウザタブを再読み込みすると、新しいモデルが選択肢に現れます。

サイズ感の目安として、モデルにはおおよそダウンロードサイズ分の VRAM に加えて、コンテキストウィンドウ用の余裕が必要です。インスタンスカードの VRAM の値を確認し、その範囲に収めてください。収まらないモデルは CPU にあふれて極端に遅くなるか、そもそも失敗します。

新しいチャットを開始し、pull したモデルを選んでメッセージを送ります。pull 直後の最初の応答は、重みを VRAM に読み込むため遅くなります。それ以降は高速です。

処理が CPU ではなく GPU で行われていることを確認するには、応答の生成中に SSH で次を実行します。

ターミナルウィンドウ
nvidia-smi

プロセス一覧に ollama のプロセスが見え、GPU メモリの使用量がゼロでないはずです。

任意: Grafilab のホスト型モデルも追加する

Section titled “任意: Grafilab のホスト型モデルも追加する”

両方を同時に使えます。GPU 上のローカルモデルと、Grafilab のホスト型カタログを同じ選択肢に並べられます。Open WebUI で Settings → Admin Settings → Connections を開き、ベース URL https://llm.grafilab.ai/v1 と Grafilab の API キーで OpenAI 互換の接続を追加して保存します。

キーの発行方法を含む詳細は、Open WebUI 連携 のページにあります。

Nothing persists past the rental

Instances have no persistent volume. Anything you write at runtime — downloaded models, installed packages, notebooks, outputs — lives in the container for the lifetime of the rental and is gone when it expires. Before Expire at, back up the folders you care about to Grafilab storage and download the archive.

失って痛いのは pull したモデルです。ネットワーク越しに取得した数ギガバイトが対象になります。起動し直す予定があり、ダウンロードを省きたいなら、レンタルが切れる前にインスタンスカードの Backup を使ってください。

Open WebUI は、自前のログインを持つ唯一の組み込み Web テンプレートで、その分だけ Web テンプレートの中では最も安全です。とはいえ、そのログインの強さは承認の規律次第であり、前段のプロキシは何も足してくれません。

Anyone with the URL can reach your web UI

The Grafilab proxy does not add a login in front of your instance. Your random three-word slug (https://<your-slug>.instance.grafilab.ai) is the only barrier, and the shipped web templates have no application login of their own (Open WebUI is the exception). Treat the URL like a password: don’t paste it in public places, and if you need a lock, add one inside the app over SSH.

  • サインアップはできたが、アカウントが承認待ちになる。 最初のアカウントではありませんでした。管理者アカウントでサインインし、管理者のユーザー一覧を開いて承認してください。
  • 最初の応答に数十秒かかる。 モデルを VRAM に読み込んでいます。同じセッションでのそれ以降の応答は高速です。モデルを切り替えると読み込みは最初からやり直しになります。
  • 生成に失敗する、または応答の途中でモデルがアンロードされる。 指定したコンテキストと合わせると、モデルが VRAM に収まっていません。より小さな量子化を pull する、コンテキストを短くする、VRAM の多いカードで起動し直してください。
  • 起動直後に URL が応答しない。 インスタンスカードが Active になるまで待ってください。コンテナがまだ起動中です。