オルタナティブ・ブログ > デジタル共生:AI、IoT、ITと私たちの未来 >

最新のAI、IoT、ITのニュースを共有し、その影響と可能性を一緒に考察していきます。

GAIS主催:RAG 開発 セミナー・ダイジェスト ~「DifyではじめるRAG」森一弥氏(アステリア株式会社 エバンジェリスト)

»

2024年5月30日(木)の昼から、一般社団法人 生成AI協会(GAIS)主催の「RAG 開発 セミナー」がオンラインで開催されました。このセミナーでは、最初に、アステリア株式会社のエバンジェリストであり、生成AI協会のエバンジェリストでもある森一弥氏「DifyではじめるRAG」というタイトルで講演を行いました。森氏はGAISの公式WebにDifyについて次の記事を投稿しています。こちらも参考にしてください。

■プログラムのいらないAI開発「Dify」のインパクト
https://gais.jp/dify-impact/

森氏のセミナーでは、RAG(Retrieval Augmented Generation)について詳しく説明しました。

RAG-Seminar-1.pngRAGの仕組みを理解するために、まずは基本的なフレームワークについて解説がありました。ユーザーが質問をすると、ベクターストアに保存されている類似データを検索し、その結果を踏まえてLLMが回答を生成するという流れです。このアプローチにより、より正確で関連性の高い回答が得られるようになります。

RAG-Seminar-2.png次に、森氏はRAGの具体的な仕組みについて詳しく説明しました。まずは、RAGのデータベース(VectorStore)の準備について解説しました。企業や組織が保有するPDF、Word、Excel、HTMLなどのドキュメントを読み込み、分割してチャンクデータリストを作成します。このチャンクデータをベクター化し、VectorStoreに保存します。これにより、ドキュメントの内容が効率的に検索できるようになります。

RAG-Seminar-3.png次に、類似検索と生成実行のプロセスについて説明がありました。

ユーザーが質問を入力すると、その質問に類似したデータがVectorStoreから検索されます。検索結果と質問を組み合わせたプロンプトを生成し、そのプロンプトをもとにLLMが回答を生成します。これにより、より関連性の高い回答を得ることができます。

RAG-Seminar-4.png森氏は続いて、RAGを使用する理由について説明しました。RAGを導入することで得られる主なメリットは次の3つです。

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

森氏はこれらのメリットを強調しながら、RAGがいかに企業のデータ管理とAI活用を効率化するかを解説しました。

RAG-Seminar-5.png森氏は、最近注目が集まっているノーコード・生成AIツール「Dify」を紹介。Difyは、画面操作で生成AIのアプリを作れるプラットフォームで、オープンソースとして提供され、クラウド版とオンプレ版の両方が提供されており、VectorStoreも内部で連携しています。

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

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

RAG-Seminar-7.pngAWSでの環境構築の具体例が紹介されました。

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

RAG-Seminar-8.pngEC2でのDockerインストール手順も具体的に示されました。

SSHでログインし、DockerとDocker Composeをインストールします。これにより、EC2上でDifyを実行するための環境が整います。

RAG-Seminar-9.pngDifyの取得と起動方法についても説明がありました。

gitをインストールし、Difyのリポジトリをクローンして、Dockerを使用して起動します。ブラウザで初期設定を行い、管理者アカウントを設定することで、すぐに使用を開始できます。

RAG-Seminar-10.png森氏は、RAG環境を構築する際に必要となるAPIの準備についても詳しく説明しました。

RAGを運用するためには、以下のLLM(大規模言語モデル)のAPIが必要です。

  • OpenAIのAPI(ChatGPTの有料ライセンスとは別)
  • Google Gemini
  • その他
  • APIが対応しているものであれば、ローカルに構築したものでもOK

さらに、連携したい各種ツールのAPIキーなどの設定も重要です。

  • 用意されているツールのAPIキーを設定
  • カスタムツールの場合は、OpenAPI(Swagger)形式の仕様書(JSONまたはYAML)を設定
  • REST形式なら個別に入力も可能

これにより、様々なツールやサービスとの連携がスムーズに行えるようになります。森氏は、これらの設定を行うことで、より効率的にRAGを運用できることを強調しました。

森氏は、続いてDifyの実際の使用方法についてデモを行いました。

RAG-Seminar-11.pngDifyの実際の使用方法

  1. Difyのログインと初期設定
    まず、Difyのウェブサイトにアクセスし、GoogleまたはGitHubのアカウントでログインします。初回ログイン時には、管理者アカウントの設定を行います。これにより、Difyのダッシュボードにアクセスできるようになります。
  2. チャットボットの作成
    ダッシュボードにログインしたら、新しいチャットボットを作成します。Difyのスタジオ画面から、「チャットフロー」を選択し、必要な名前と説明を入力してボットを作成します。
  3. ナレッジデータのインポート
    作成したチャットボットに、ナレッジデータをインポートします。ナレッジタブから「知識を作成」を選び、PDF、Word、Excel、HTMLなどのファイルをドラッグ&ドロップでアップロードします。Difyはこれらのドキュメントをチャンクデータに分割し、ベクター化して保存します。
  4. プロンプトの設定
    次に、プロンプトの設定を行います。ユーザーからの質問に対して、適切な回答を生成するためのプロンプトを作成します。ナレッジデータから検索した結果とユーザーの質問を組み合わせて、生成AIに回答を依頼する形にします。
  5. APIの設定
    チャットボットが使用する生成AIのAPIを設定します。OpenAIやGoogle Geminiなど、利用するAPIのキーを入力し、連携を設定します。これにより、ボットが外部のLLMを利用して回答を生成することが可能になります。
  6. テストとデバッグ
    設定が完了したら、デバッグとプレビュー機能を使ってボットの動作を確認します。テスト用の質問を入力し、生成される回答を確認します。必要に応じて、プロンプトやナレッジデータの設定を調整します。
  7. 公開と利用
    チャットボットが正しく動作することを確認したら、公開して利用を開始します。公開されたボットは、ウェブサイトに埋め込んだり、Chromeの拡張機能として利用したりすることができます。

森氏のデモを通じて、参加者はDifyを使用してRAG環境を構築する具体的な手順を理解することができました。

森氏はセミナーを次のように締めくくりました。「RAGの導入は、企業や組織にとって大きな可能性を秘めています。データの管理や活用方法を工夫することで、業務効率の向上や新たなビジネスチャンスの創出が期待できます。Difyを使えば、簡単にRAGを実装し、自社に最適な形で運用することが可能です。導入に際して困ることがあれば、ぜひご相談ください。皆さんが生成AIの可能性を最大限に引き出せるよう、全力でサポートいたします。」

Comment(0)