機密情報を大量に食わせても問題のないLLMが欲しい

いずれは Microsoft や Google が、ちょっと設定すれば実用に耐えるものを出してくれる気もするんだけど、まだないので世の巨人たちの肩に乗って作るしかない

Difyのセルフホスティングにチャレンジしてみたので以下に知見をまとめる

環境構築の概要

構築環境概要

  • VM: Amazon Lightsail - Amazon Linux 2023 ($24/月)
  • SSL化: Load Balancer ($18/月)
  • Dify: 0.6.11から0.6.12 fix1にアップグレード

これでClaude 3.5 Sonnetを使用可能なセキュアな環境を構築した。

試行錯誤のポイント

  1. VMスペック
    • $12プラン(90日無料)はすぐにハングアップ。実用に耐えず。
    • $24プランに移行し安定動作を確認。
  2. OS選択
    • Ubuntu 22.04 LTSとAmazon Linux 2023を比較。
    • Amazon Linux 2023がやや軽量と感じた。
  3. セキュリティ対策
    • Cloudflare Tunnelは検討したが、VMリソース消費が課題で不採用。
    • IP直接アクセスでもhttpsが必要。
    • certbot運用の煩雑さを避けるため、Load Balancerでhttps化を実現。
    • Amazon Linux 2023 は regreSSHion の影響を被るのでこれも忘れず
  4. Difyセットアップ
    • 0.6.11をインストール後、0.6.12 fix1にアップグレード。
    • .envファイルの適切な作成も実施。

結局お金で解決したけれど、自由にしていい砂場があるのは楽しい。
結構勉強にもなった

コマンドなど

AWS Lightsail のインスタンスを作った後、SSH接続して以下を実行

最初は1行ずつ打ち込んでたが、途中から面倒になって、 nano dify-install.sh で保存してから、
sudo bash dify-install.sh でまとめて走らせるようにした

# システムを最新の状態に更新
sudo dnf update -y

# 必要なパッケージをインストール
sudo dnf install docker git -y

# Difyリポジトリをクローン (最新の安定版を指定)
git clone -b 0.6.11 --single-branch https://github.com/langgenius/dify

# Docker Composeをインストール
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Dockerサービスを開始し、自動起動を有効化
sudo systemctl start docker
sudo systemctl enable docker

# Difyのディレクトリに移動
cd dify/docker

# Docker Composeでコンテナを起動
sudo docker-compose up -d

ここまで実行したら、外部IPアドレスをブラウザに打ち込んで、/install を実行し、管理ユーザを作成しておく(dify 0.6.12 fix は .env 周りがうまく設定できなかったので、0.6.11 を入れて管理ユーザ作成してupdate する形が安定した)

cd dify
sudo git checkout -b main
sudo git pull origin main

cd docker
sudo docker-compose down

#やらなくていいかも
sudo tar -cvf volumes-$(date +%s).tgz volumes

sudo cp .env.example .env

sudo docker-compose up -d

後はクラウド版と同じようにDify でこねこねするだけ