🧠

「DifyではじめるRAG」開発セミナー(1)

2024/06/01に公開

生成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つです。

  1. 自社データは自社管理下に置ける
     全データを外部に流さずに済むため、データのセキュリティが保たれます。また、VectorStore自体を複数用意することも可能で、データ管理の柔軟性が高まります。
  2. ベンダーロックインしない
     LLMやVectorStore、設置する環境など特定のベンダーに依存しないため、自由にシステムを変更することができます。これにより、新しい技術が登場した際にも柔軟に対応できます。
  3. 最新技術への追従
     AIモデルに革新的な性能向上があった場合など、該当箇所のみを変更することで、最新の技術を活用できます。これにより、常に最適なAI技術を活用することが可能です。

森氏はこれらのメリットを強調しながら、RAGがいかに企業のデータ管理とAI活用を効率化するかを解説しました。
次に、森氏は、最近注目が集まっているノーコード・生成AIツール「Dify」を紹介。

Difyは、画面操作で生成AIのアプリを作れるプラットフォームで、オープンソースとして提供され、クラウド版とオンプレ版の両方が提供されており、VectorStoreも内部で連携しています。

森氏は次に、Difyを使用してRAG環境を準備する方法について説明しました。環境の準備には3つの方法があります。

  1. Cloud版
    https://cloud.dify.ai/ にアクセスし、GoogleかGitHubのアカウントでログインするだけで使用可能です。初回から無料で使用できるため、試してみるには最適な方法です。
  2. Docker版
    コマンドを数回実行するだけでセットアップ可能です。AWS、GCP、Azureなど自社用の環境を用意することもでき、HTTPSアクセスを希望する場合には多少の工夫が必要です。
  3. ソースからデプロイ
    Python、NodeJS、PostgreSQLなどの環境準備が必要ですが、自分の環境に合わせてカスタマイズすることが可能です。

続いて、AWSでの環境構築の具体例が紹介されました。

C5Large(2CPU)、Amazon Linux 2023、SSD 20GBのEC2インスタンスを使用し、スポットインスタンスでコストを節約しています。セキュリティグループで必要なポートを開放し、ロードバランサーとSSL証明書を設定することで、HTTPSアクセスが可能な環境を構築しました。

EC2でのDockerインストール手順も具体的に示されました。

SSHでログインしてDockerとDocker Composeをインストールする手順が示されました。以下のコマンドを使用します。

  1. 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
  1. 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の取得と起動方法についても説明がありました。

  1. 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