G-gen の堂原と又吉です。当記事では、Amazon Web Services(AWS)、Microsoft Azure、Google Cloud(旧称 GCP)が提供するフルマネージドな RAG サービスの比較を行います。
- はじめに
- 3社比較
- 詳細の解説
- まとめ
はじめに
当記事について
当記事では、生成 AI アプリケーションの開発や PoC(実証実験)を検討されている方向けに、大手パブリッククラウドベンダーである Amazon Web Services(AWS)、Microsoft Azure、Google Cloud(旧称 GCP)の3社がそれぞれ公開している「生成 AI を活用した検索サービス」を紹介します。
生成 AI による生成結果を根拠づけするための RAG と呼ばれる技術を簡単に実装できるサービスが、各クラウドベンダーから提供されています。当記事では、生成 AI を活用した社内ドキュメント検索などのユースケースを想定して、各クラウドベンダーのサービスをご紹介します。
RAG とは
RAG とは、Retrieval Augmented Generation の略称であり、生成 AI によるテキスト生成に、外部データソースを用いて情報の根拠付けを行うアーキテクチャのことです。
生成 AI が本来持っていない情報を外部から与えることで、業務に固有の情報を加味したテキストを生成させるとともに、生成 AI が誤った情報を生成してしまう「ハルシネーション」の抑制が可能となります。
3社比較
前提条件
RAG を構築するにあたり、どのベンダーのサービスでも、複数のデータソースに対応しています。また「マネージドなサービスだけの構成」、「OSS である LangChain をベースとして適宜クラウドサービスを用いる構成」など、アーキテクチャの選択肢も複数用意されています。
採用しうる複数の選択肢の中から、当記事では以下の実現を要件として比較します。
- フルマネージドサービスのみで構築
- ストレージサービスに格納されているファイル(主に PDF ファイル)をデータソースとする
- 検索クエリを与えると、関連ファイル一覧と、それらを要約した回答を生成する
- Web コンソール画面で検索機能のプレビューが可能(試用のためのソースコード記述が不要)
以上の要件を満たすサービスとして、以下の3サービスを選定しました。
クラウド | サービス |
---|---|
AWS | Knowledge bases for Amazon Bedrock |
Azure | Azure OpenAI On Your Data(※) |
Google Cloud | Vertex AI Agent Builder(Vertex AI Search - Summarization 機能) |
(※)Azure OpenAI On Your Data は、入力されたプロンプトに対して出力を生成する際に特定のデータソースを参照する仕組みです。他の2サービスが検索機能にフォーカスしたサービスである点では性質が異なりますが、記事執筆時点では Azure で同種のサービスがフルマネージドサービスとして提供されていないため、最も性質が近いサービスを選定しました。
機能比較
以下は、各サービスの提供機能の比較です。
Knowledge bases for Amazon Bedrock | Azure OpenAI On Your Data | Vertex AI Agent Builder | |
---|---|---|---|
検索結果の表示 | ◎ | ◯ ※1 | ◎ |
要約 | ◎ | ◎ | ◎ |
マルチターン | ◎ | ◎ | ◎ |
対応ファイル形式 | TXT, MD, HTML, DOCX, CSV, XML, PDF (参考) | CSV, EML, EPUB, HTML, JSON, DOCX, XLSX, PPTX, MSG, XML, PDF, TXT, RFT (参考) | HTML, PDF, TXT, PPTX, DOCX, JSON (参考) |
対応データソース | S3, Web ページ, SharePoint, Salesforce, Confluence | Azure Blob Storage, Webページ, Elasticsearch, Azure SQL Database, Azure Database for MySQL, Azure Cosmos DB, SharePoint など |
Cloud Storage, Webページ, BigQuery, Cloud SQL, Spanner, Firestore, Google Drive, Slack, SharePoint, Salesforce など |
メタデータによるフィルタリング | ◯ | ◯ | ◯ |
◎ : プレビュー画面から利用可能
◯ : プレビュー画面から利用不可だが API が提供されている
※1 : プレビュー画面では参照したファイルの内容は取得できるが、ファイル名の一覧取得が不可
料金シミュレーション
想定シナリオ
とあるチャットボットのバックグラウンドとして、以下のような使用状況を仮定します。
- 24時間・365日稼働
- 1日あたりの問い合わせは500件
- 平均の入力文字数は100文字、出力は200文字
- ファイルは各ストレージサービスに PDF として格納
上記の条件の下、1 ヶ月間の利用料を計算します。なお実際には API サーバ等、RAG サービス以外の料金が発生する可能性がありますが、今回は単純化のため考慮から外します。
いずれも試算に用いた単価は記事を執筆した2024年6月現在のものです。ご自身で試算する際は、必ず公式から発表されている料金表をご参照ください。また、ドル・円換算は1ドルを160円として計算しています。
AWS
1ヶ月の利用料は約32,000円です。
- OpenSearch Compute Unit - Search and Query 1 OCU : 172.8 USD
- Cohere - Embed - Multilingual (1 文字 1.1 トークン計算) :0.165 USD
- Anthropic - Claude 3 Sonnet 入力トークン (1 文字 1.1 トークン計算) : 4.95 USD
- Anthropic - Claude 3 Sonnet 出力トークン (1 文字 1.1 トークン計算) : 19.5 USD
Azure
1ヶ月の利用料は約21,000円です。
- Azure AI Search Basic プラン 1 ユニット : 73.73 USD
- GPT-4o 入力トークン (1 文字 1.1 トークン計算) : 8.52 USD
- GPT-4o 出力トークン (1 文字 1.1 トークン計算) : 51.15 USD
Google Cloud
1ヶ月の利用料は約15,000円です。
- Vertex AI Search Standard Edition クエリ回数 : 31 USD
- Vertex AI Search Basic Search LLM Add-On クエリ回数 : 62 USD
総評
AWS
Knowledge bases for Amazon Bedrock の最大の特徴は、Amazon のファーストパーティの基盤モデルだけでなく、Anthropic 社や Cohere 社など他社の基盤モデルも柔軟に選択できる点です。
さらに2024年7月のアップデートにより、従来の S3 に加えて、対応データストアとして Web ページや SharePoint が選択可能になりました。このアップデートにより、より広範なデータソースから情報を収集できるようになっています。
また、ドキュメントのチャンク化やベクトルデータベースの選択が可能であり、全体的にカスタマイズ性が高いといえます。このため、各ユースケースに最適な環境を構築するために、細かなチューニングが可能です。
これらの特徴から、Knowledge bases for Amazon Bedrock は、自分でカスタマイズやコスト最適化を行いたい中級者および上級者向けのサービスであると言えます。
Azure
全体的にカスタマイズ性が高く、特に Azure AI Search は検索アルゴリズムやインデックスの作成方法、インスタンススペックなど様々な選択肢が用意されています。
そのため、しっかりチューニングすることで、各ユースケースに適した環境を構築できます。 ただし、特定の検索アルゴリズムを有効にするためには複数のコンポーネントを有効化し設定する必要がある、適切なインデックスの構成やインスタンススペックをユーザが見極める必要があるなど、高度に使いこなすためにはかなりの学習時間が必要となります。
以上から、詳細なカスタマイズやコスト最適化を行いたい上級者向けのサービスであると言えます。
Google Cloud
AWS や Azure のサービスと比べると Google 側で管理されている部分が多く、高度な知見がなくとも高品質な RAG 環境が構築できます。例えば検索アルゴリズムは最初から Google が提供しているアルゴリズムが用いられていたり、すべてサーバーレスであることからインスタンススペックの見極めも必要ありません。
Slack や SharePoint 等といったサードパーティツールのマネージドコネクタが豊富なのも強みの 1 つです。
また、インスタンスを常時起動しておく必要がないため、利用されていない時間には課金が発生しません。
以上から、ある程度の品質を Google に担保してもらいたい初級者および中級者向けのサービスであるといえます。
ただし、もし思うような回答を得られず精度に課題が出た場合、上級者向けの選択肢として、Vertex AI Search の各機能を個別に利用できる API も提供されています(一部は提供予定)。これを用いることで、自前で高度な RAG を構築することも可能です。
詳細の解説
Knowledge bases for Amazon Bedrock(AWS)の詳細
構成図
プロダクト一覧
Knowledge bases for Amazon Bedrock
Knowledge bases for Amazon Bedrock は、AWS が提供するマネージドな RAG アプリケーションが開発できるプロダクトです。
Amazon S3
Amazon S3 は、マネージドなオブジェクトストレージサービスです。
Amazon OpenSearch Service
Amazon OpenSearch Service は、検索エンジンとその可視化を行うツールである OpenSearch をマネージドで提供するサービスです。
本構成においてはベクトルデータソースとしての役割を担います。
できること
検索
Knowledge bases for Amazon Bedrock では、データソースに対して以下の検索を行うことができます。デフォルトで自動的に最適な検索方式が選択されますが、必要に応じて特定の検索方式に固定することもできます。
- ハイブリッド検索
- セマンティック検索
参考 : Query configurations
対応データソース
Knowledge bases for Amazon Bedrock では、以下のデータソースを対象にすることができます。
- Amazon S3
- Confluence
- SharePoint
- Salesforce
- Web ページ
また、当記事では紹介しませんが、検索データベースとして Amazon Kendra を利用する場合は、以下のデータソースを対象にすることができます。Amazon Kendra を利用したパターンは、Web UI からの簡単な構築はできないことに加え、利用料金も比較的高価になりますが、高精度な検索を実現できます。
- Aurora
- Amazon RDS
- Amazon S3
- Amazon Kendra Web Crawler
- Box
- Confluence
- Dropbox
- GitHub
- Gmail
- Google Workspace Drives
- Jira
- Microsoft OneDrive
- Microsoft SharePoint
- Microsoft Teams
- ServiceNow
- Slack
- Zendesk
2024年7月時点では上記を代表とする30以上のデータソースに対応しています。
参考 : Data sources
料金
概要
Knowledge bases for Amazon Bedrock では、主に 2 つのサービスで費用が発生します。 - 基盤モデル利用料金 - ベクトルデータベース料金
基盤モデル利用料金
提供元 | モデル | コンテキスト | 入力 (1,000 トークンあたり) |
出力 (1,000 トークンあたり) |
---|---|---|---|---|
Amazon | Titan Text Premier | 32 K | $0.0005 | $0.0015 |
Titan Text Lite | 4 K | $0.00015 | $0.0002 | |
Titan Text Express | 8 K | $0.0002 | $0.0006 | |
Anthropic | Claude 3.5 Sonnet | 200 K | $0.003 | $0.015 |
Claude 3 Opus | 200 K | $0.015 | $0.075 | |
Claude 3 Sonnet | 200 K | $0.003 | $0.015 | |
Claude 3 Haiku | 200 K | $0.00025 | $0.00125 | |
Cohere | Command | 4 K | $0.0015 | $0.002 |
Command-Light | 4 K | $0.0003 | $0.0006 | |
Command R+ | 128 K | $0.003 | $0.015 | |
Command R | 128 K | $0.0005 | $0.0015 |
参考 : Amazon Bedrock の料金
トークン数は文章・言語によって変化するため、正確な推測を行うことが難しいですが、Claude においては Anthropic から提供されている Client SDK を用いることで確認が可能です。
次のようなほぼ日本語のみの文章だと、文字数 1,070 (改行、空白を除く) に対してトークン数は 1,117 となります。Claude 3.5 Sonnet だと 0.0034 USD となります。
サーバーワークスグループのビジョン クラウドで、世界を、もっと、はたらきやすく 私は、人生の成功とは「どれだけたくさんのモノを与えられたか?」だと考えます。 たくさんのモノを人からもらった人、奪った人、施しを受けた人のことを、わたしたちは快く思いませんし、記憶しませんし、影響も受けません。 でも、たくさんのモノを与えた人のことは、記憶し、感謝し、尊敬します。 たくさん与えてきた人は、いまわの際にあっても、本人は充実した人生の歩みに満足し、見送る人にも惜しまれる、そんな人でいられると信じます。 与えるモノとは、考え方であったり、お金であったり、献身的な活動であったりといろいろです。そうしたモノを通じて「ポジティブな影響を与える」ことこそが、私にとっての幸せであり、成功であり、目指すところであります。 私たちは、献身的な貢献を施したナイチンゲールのことを知っていますし、暴力の無力さを訴えたマハトマ・ガンジーのことを知っていますし、「I have a dream」で始まる演説で多くの人に影響を与えたマーチン・ルーサー・キングJrのことを知っています。これらの人々は、ビジネスで成功したわけでも、大金持ちになったわけでもありませんが、間違い無く、偉大な成功を収めています。 そして私はいま、ビジネスを通じて、これらの偉大な先人がなしえたような「ポジティブな影響」を世界中に広めたいと思っています。 クラウドというアイディアは、コンピューターと人間の関係を変え、私たちの働き方をかえ、人生の時間の使い方を変えるものです。 このアイディアを世界中に人々に広め、もっとはたらきやすい、もっと人生の時間を生み出せる世の中をつくる。 そんな夢を抱いています。 その想いを、この言葉に込めました。 「クラウドで、世界を、もっと、はたらきやすく」 私が、このような意見をわざわざ表明しているのは、「私と同じように考える人を増やしたい」からです。 私は「たくさん与える」という考え方が、究極的な人生の成功をもたらす最善の道だと信じています。 私が会社を成長させたいのは、同じように考える仲間を増やし、クラウドによって世界をはたらきやすくしていくというポジティブな影響を世界に拡げていきたいからなのです。 そして、サーバーワークスという会社で働くことによって、人生を豊かに、そして人生の成功に貢献できるような環境にしていきたいのです。 私たちの力で、世界にもっと大きな影響を与え、世界中の人々の人生を豊かにしていきましょう。それこそが、私たちの究極的な人生の成功、満足につながると信じています。
一方、英文だと文字数に比べてトークン数は大幅に減少します。 以下の文章では、文字数 567 (改行、空白を除く) に対してトークン数は 145 となります。Claude 3.5 Sonnet だと 0.0004 USD となります。
OpenAI's large language models (sometimes referred to as GPT's) process text using tokens, which are common sequences of characters found in a set of text. The models learn to understand the statistical relationships between these tokens, and excel at producing the next token in a sequence of tokens. You can use the tool below to understand how a piece of text might be tokenized by a language model, and the total count of tokens in that piece of text. It's important to note that the exact tokenization process varies between models. Newer models like GPT-3.5 and GPT-4 use a different tokenizer than previous models, and will produce different tokens for the same input text.
ベクトルデータベース料金
Knowledge bases for Amazon Bedrock では、以下のベクトルデータベースを対象にすることができます。
- Amazon OpenSearch Serverless
- Amazon Aurora
- Pinecone
- Redis Enterprise Cloud
Amazon OpenSearch Serverless の料金は、リソースの利用料に応じて、コンピューティングとストレージが別々に従量課金されます。コンピューティングリソースの利用料は、OpenSearch Compute Units (OCU) という計算処理単位で計測され、最低でも 1 OCU (indexing: 0.5 OCU、search: 0.5 OCU) が常時稼働しています。
そのため、US East リージョンで必要最低限のスペックの Amazon OpenSearch Serverless を利用する場合、2024 年 7 月時点では月額利用料 172.8 USD となります。
- 参考:Set up a vector index for your knowledge base in a supported vector store
- 参考:Amazon OpenSearch Service の料金
Azure OpenAI On Your Data(Azure)の詳細
構成図
プロダクト一覧
Azure OpenAI Service
Azure OpenAI Service は、OpenAI 社が作成した AI モデルを Azure 上で利用することができるサービスです。 GPT-4 は勿論、画像生成モデルの DALL-E 3 や GPT-4o も利用できます。
Azure OpenAI Studio という独自の GUI を持っており、プロンプト設計などを簡単に行うことができます。
さらに、Azure OpenAI On Your Data 機能を用いれば、データストアを Azure AI Search としたマネージドな RAG が構築できます。
サブスクリプションで Azure OpenAI Service を初めて利用する場合、以下の URL から利用申請をする必要があります。通常は申請後、24時間以内に利用可能となります。
Azure AI Search
Azure AI Search は、マネージドな検索サービスです。Azure Blob Storage や Azure SQL Database などといった他の Azure サービスのデータを取り込み、全文検索やベクトル検索を行うことが可能です。
もちろん、RAG における検索システムとしての役割を担うことも可能です。
Azure Blob Storage
Azure Blob Storage は、マネージドなオブジェクトストレージサービスです。
できること
検索
Azure OpenAI On Your Data では、データソースに対して以下の検索を行うことができます。
- キーワード検索
- セマンティック検索
- ベクトル検索
- ハイブリッド検索
- キーワード検索 + ベクトル検索
- ハイブリッド検索 + セマンティック検索
複数の選択肢が用意されているため、まずキーワード検索を使い、精度が十分でない場合はセマンティック検索を試すなど、Azure OpenAI On Your Data 内だけで複数の検索方法を試行することができます。
キーワード検索以外の検索アルゴリズムでは追加料金が発生する場合があることに留意してください。
参考 : Azure OpenAI On Your Data とは
対応データソース
Azure OpenAI On Your Data においては以下のデータソースを対象にすることができます。
- Azure AI Search
- Azure Cosmos DB for MongoDB
- Azure Blob Storage
- ファイルアップロード
- Web サイト
- Elasticsearch
ただし Azure Blob Storage、ファイルアップロード、Web サイトは Azure AI Search が必要となります。また Elasticseach は2024年7月時点では利用申請が必要です。
参考 : Azure OpenAI On Your Data
Azure AI Search は複数のデータソースに対応しているため、結果的に Azure AI Search が対応しているデータソースも Azure OpenAI On Your Data の対象にできます。
- Azure SQL Database
- Azure Database for MySQL
- Azure Cosmos DB
- Azure Blob Storage
- Azure Files
- Azure Data Lake Storage Gen2
- SharePoint
基本的には Azure のデータベースやストレージサービスが対象ですが、SharePoint を対象にすることもできます。
参考 : データ ソース ギャラリー
料金
概要
Azure OpenAI On Your Data では、主に2つの軸で費用が発生します。
- Azure OpenAI Service モデル利用料金
- Azure AI Search インスタンス料金
Azure OpenAI Service
言語モデルである GPT シリーズは、入出力したトークン数によって課金が発生します。2024年7月時点での利用料金は全リージョン一律で以下の通りです。
モデル | コンテキスト | 入力 (1,000 トークンあたり) |
出力 (1,000 トークンあたり) |
---|---|---|---|
GPT-4o | 128 K | $0.005 | $0.015 |
GPT-3.5-Turbo-0125 | 16 K | $0.0005 | $0.0015 |
GPT-3.5-Turbo-Instruct | 4 K | $0.0015 | $0.002 |
GPT-4-Turbo | 128 K | $0.01 | $0.03 |
GPT-4 | 8 K | $0.03 | $0.06 |
GPT-4 | 32 K | $0.06 | $0.12 |
Claude 同様トークン数は文章・言語によって変化するため、正確な推測を行うことが難しいですが、日本語だと 1 文字 1.1 トークンほどとなります。
また、以下のサイトで正確なトークン数を調べることもできます。
https://platform.openai.com/tokenizer
日本語主体の文章だと文字数より少し多めのトークン数に、英語主体だとトークン数は大きく減少するという挙動は Claude と同様です。
Claude で取り扱ったサンプル文だと以下の通りです。
- 日本語のみの文章
- トークン数 : 1,081
- GPT-4o 入力料金 : 0.0054 USD
- 英語のみの文章
- トークン数 : 141
- GPT-4o 入力料金 : 0.0007 USD
Azure AI Search
Azure AI Search ではリクエストを処理するためのインスタンスを起動しておく必要があります。このインスタンスが起動している時間に応じて課金が発生します。
インスタンスの基本性能にはいくつかの選択肢があり、またスケーリングの設定を行う必要があります。
Azure OpenAI On Your Data を使う大半のケースでは Azure AI Search が必要となるため、このインスタンス料金が継続的に発生することとなります。
Azure AI Search には Free プランも存在しますが、Azure OpenAI On Your Data が使えるのは Basic プラン以上です。
東京リージョンで必要最低限のスペックで Azure AI Search を利用する場合、2024年6月時点での月額利用料は 98.95 USD となります。
Vertex AI Agent Builder(Google Cloud)の詳細
構成図
プロダクト一覧
Vertex AI Agent Builder(Vertex AI Search)
Vertex AI Search は、生成 AI エージェントサービスである Vertex AI Agent Builder の1機能であり、マネージドな検索サービスです。データインデックスを管理するデータストアと、ユーザーからのクエリを処理するアプリの 2 つのコンポーネントから構成されています。
サーバレスで、クエリ数に応じて料金が発生するのが特徴となります。
詳しくは以下の記事をご参照ください。
Cloud Storage
Cloud Storage は、マネージドなオブジェクトストレージサービスです。
できること
検索
Vertex AI Search では Google が提供する検索アルゴリズムのみを利用することができます。
この検索アルゴリズムは Google 検索で用いられているものと同等であり、高性能です。
対応データソース
Vertex AI Search では、以下のようなデータを対象とすることができます。
- BigQuery
- Cloud SQL
- Spanner
- Bigtable
- Firestore
- Cloud Storage
- Google Drive
- SharePoint Online
- Slack
- Salesforce
- Jira
- Confluence
- ServiceNow
Google Cloud のデータベース系サービスを始め、Google Drive や SharePoint、Slack 等といったサードパーティツールも選択することが可能です。
分析用データベースである BigQuery との連携も可能であるため、組織に蓄積されたデータを RAG に活用したり、また逆に、検索に用いられたキーワードなどを BigQuery に蓄積して業務改善に活用することもできます。Google Cloud の豊富なデータ分析・AI/ML エコシステムと連携できることが強みといえます。
料金
本アーキテクチャにおいては Vertex AI Search のリクエスト回数に応じた費用が発生します。サーバーレスでフルマネージドなため、常時起動のインスタンス料金は発生しません。
Vertex AI Search の Summarization 機能を使用する場合の料金は 1,000 クエリにつき 6 USD となります。他にも追加料金が発生するオプションが存在しますが、Cloud Storage 上の PDF ファイルから要約と関連ファイルのみを取得する場合を想定しています。
Summarization に用いるモデルの種類、入出力の文字数は料金に影響しません。
まとめ
Knowledge bases for Amazon Bedrock(AWS)
細かなチューニングが可能な中級者〜上級者向けのサービスです。
コストはかかりますが Amazon Kendra を追加で構築することで、多様なデータソースとの連携が可能です。
各社の生成 AI 基盤モデルが柔軟に選択できることが強みといえます。
Azure OpenAI On Your Data(Azure)
詳細なカスタマイズやコスト最適化を行いたい上級者向けのサービスです。
SharePoint や Azure SQL Database など、Microsoft のエコシステムとの連携も実現可能です。
詳細なチューニングが可能なことが強みといえます。
Vertex AI Agent Builder(Vertex AI Search - Summarization)
ある程度の品質を Google に担保してもらいたい初級者および中級者向けのサービスです。
フルマネージドかつサーバーレスであり、構築も簡単であることから、低いコストでスピーディに RAG を実現できます。なお上級者向けの選択肢として、Vertex AI Search の各機能を個別に利用できる API も提供されており(一部は提供予定)、自前で高度な RAG を構築することも可能です。
Googleドライブや BigQuery など、Google のエコシステムとの連携も実現可能です。Google Cloud の豊富なデータ分析・AI/ML エコシステムと連携できることが強みといえます。
パートナーによる支援
大手クラウドベンダー各社の AI/ML 系サービスは進化を続けており、少ない工数でより効果的な仕組みを開発できるようになっています。しかしながら、これらのサービスの進化は非常に早く、キャッチアップに苦労するのも事実です。
各クラウドベンダーには、クラウド技術に特化したパートナーがあり、クラウド上でのシステム開発を支援しています。当テックブログを運営する G-gen は Google Cloud 専業インテグレーターであり、そのグループ会社のサーバーワークスは AWS 専業インテグレーターです。必要に応じて、パートナーに相談することで、クラウドや AI によるスピーディな価値創出につなげてください。
事例
RAG の仕組みを使った業務改善の事例として、当社 G-gen の顧客サポート窓口での利用例をご参照ください。
堂原 竜希(記事一覧)
クラウドソリューション部データアナリティクス課。2023年4月より、G-genにジョイン。
Google Cloud Partner Top Engineer 2023, 2024に選出 (2024年はRookie of the yearにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。
Follow @ryu_dohara又吉 佑樹(記事一覧)
クラウドソリューション部
はいさい、沖縄出身のクラウドエンジニア!
セールスからエンジニアへ転身。Google Cloud 全 11 資格保有。Google Cloud Champion Innovator (AI/ML)。Google Cloud Partner Top Engineer 2024。Google Cloud 公式ユーザー会 Jagu'e'r でエバンジェリスト。好きな分野は生成 AI。
Follow @matayuuuu