「DifyではじめるRAG」開発セミナー(1)
生成AI協会(GAIS)の渡辺です。
2024年5月30日(木)に一般社団法人 生成AI協会(GAIS)主催の 「RAG 開発セミナー」 がオンラインで開催されました。このセミナーでは、最初に、アステリア株式会社のエバンジェリストであり、生成AI協会のエバンジェリストでもある 森一弥氏 が 「DifyではじめるRAG」 というタイトルで講演を行いました。セミナーの模様を紹介していきたいと思います。
森氏はGAISの公式WebにDifyについて次の記事を投稿しています。こちらも参考にしてください。
■プログラムのいらないAI開発「Dify」のインパクト(森一弥氏)
https://gais.jp/dify-impact/
森氏のセミナーでは、RAG(Retrieval Augmented Generation)について詳しく説明しました。
RAGの仕組みを理解するために、まずは基本的なフレームワークについて解説がありました。ユーザーが質問をすると、ベクターストアに保存されている類似データを検索し、その結果を踏まえてLLMが回答を生成するという流れです。このアプローチにより、より正確で関連性の高い回答が得られるようになります。
次に、森氏はRAGの具体的な仕組みについて詳しく説明しました。まずは、RAGのデータベース(VectorStore)の準備について解説しました。企業や組織が保有するPDF、Word、Excel、HTMLなどのドキュメントを読み込み、分割してチャンクデータリストを作成します。このチャンクデータをベクター化し、VectorStoreに保存します。これにより、ドキュメントの内容が効率的に検索できるようになります。
次に、類似検索と生成実行のプロセスについて説明がありました。
ユーザーが質問を入力すると、その質問に類似したデータがVectorStoreから検索されます。検索結果と質問を組み合わせたプロンプトを生成し、そのプロンプトをもとにLLMが回答を生成します。これにより、より関連性の高い回答を得ることができます。
森氏は続いて、RAGを使用する理由について説明しました。RAGを導入することで得られる主なメリットは次の3つです。
-
自社データは自社管理下に置ける
全データを外部に流さずに済むため、データのセキュリティが保たれます。また、VectorStore自体を複数用意することも可能で、データ管理の柔軟性が高まります。 -
ベンダーロックインしない
LLMやVectorStore、設置する環境など特定のベンダーに依存しないため、自由にシステムを変更することができます。これにより、新しい技術が登場した際にも柔軟に対応できます。 -
最新技術への追従
AIモデルに革新的な性能向上があった場合など、該当箇所のみを変更することで、最新の技術を活用できます。これにより、常に最適なAI技術を活用することが可能です。
森氏はこれらのメリットを強調しながら、RAGがいかに企業のデータ管理とAI活用を効率化するかを解説しました。
次に、森氏は、最近注目が集まっているノーコード・生成AIツール「Dify」を紹介。
Difyは、画面操作で生成AIのアプリを作れるプラットフォームで、オープンソースとして提供され、クラウド版とオンプレ版の両方が提供されており、VectorStoreも内部で連携しています。
森氏は次に、Difyを使用してRAG環境を準備する方法について説明しました。環境の準備には3つの方法があります。
-
Cloud版
「https://cloud.dify.ai/ にアクセスし、GoogleかGitHubのアカウントでログインするだけで使用可能です。初回から無料で使用できるため、試してみるには最適な方法です。 -
Docker版
コマンドを数回実行するだけでセットアップ可能です。AWS、GCP、Azureなど自社用の環境を用意することもでき、HTTPSアクセスを希望する場合には多少の工夫が必要です。 -
ソースからデプロイ
Python、NodeJS、PostgreSQLなどの環境準備が必要ですが、自分の環境に合わせてカスタマイズすることが可能です。
続いて、AWSでの環境構築の具体例が紹介されました。
C5Large(2CPU)、Amazon Linux 2023、SSD 20GBのEC2インスタンスを使用し、スポットインスタンスでコストを節約しています。セキュリティグループで必要なポートを開放し、ロードバランサーとSSL証明書を設定することで、HTTPSアクセスが可能な環境を構築しました。
EC2でのDockerインストール手順も具体的に示されました。
SSHでログインしてDockerとDocker Composeをインストールする手順が示されました。以下のコマンドを使用します。
- Dockerをインストール
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user
- Docker Composeをインストール
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
Difyの取得と起動方法についても説明がありました。
-
gitのインストールとDifyの取得、起動
以下のコマンドを使用してgitをインストールし、Difyのリポジトリをクローンします。
sudo yum install -y git
git clone https://github.com/langgenius/dify.git
cd dify/docker
sudo docker compose up -d
このコマンドを実行することで、Difyのソースコードをローカルマシンにクローンし、Dockerコンテナとして起動します。
2. ブラウザで初期設定、アクセス
次に、ブラウザでDifyの管理者アカウントの設定を行います。以下の画面が表示され、メールアドレスとパスワードを入力してアカウントを作成します。
管理者アカウントの設定画面で、必要な情報を入力して「サインイン」ボタンをクリックします。
これで、Difyのセットアップが完了し、ダッシュボードにアクセスできるようになります。
森氏は、RAG環境を構築する際に必要となるAPIの準備についても詳しく説明しました。
RAGを運用するためには、以下のLLM(大規模言語モデル)のAPIが必要です。
- OpenAIのAPI(ChatGPTの有料ライセンスとは別)
- Google Gemini
- その他
- APIが対応しているものであれば、ローカルに構築したものでもOK
さらに、連携したい各種ツールのAPIキーなどの設定も重要です。
- 用意されているツールのAPIキーを設定
- カスタムツールの場合は、OpenAPI(Swagger)形式の仕様書(JSONまたはYAML)を設定
- REST形式なら個別に入力も可能
これにより、様々なツールやサービスとの連携がスムーズに行えるようになります。森氏は、これらの設定を行うことで、より効率的にRAGを運用できることを強調しました。
森氏は、続いてDifyの実際の使用方法についてデモを行いました。
次回
■「DifyではじめるRAG」開発セミナー(2)
で、ご紹介していきます。
■ライター紹介:渡辺 誠(わたなべ まこと)
ご連絡は Facebook に
- NPO法人 IoTメディアラボラトリー 理事
- 一般社団法人 生成AI協会(GAIS) 理事
- センスウェイ株式会社 CTO
- 東京ワイン倶楽部 幹事メンバー
- 日本ソムリエ協会(J.S.A.) ワインエキスパート
Discussion