企業向けオープンソースAIインフラストラクチャでRAGを構築する
by Canonical on 27 February 2025
従来の大規模言語モデル(LLM)の重大な欠点の1つは、すでにモデル内にある静的な情報に依存することです。基本的に、プロンプトを理解して応答するのは得意かもしれませんが、多くの場合、最新の情報や特殊性の高い情報は提供できません。そこで活躍するのが検索拡張生成(RAG)です。RAGは、現在の情報と新しい情報を組み込み、これらのモデルの信頼できる情報源とすることで、この欠点を克服します。
RAG AIインフラストラクチャの検討事項
AIインフラストラクチャとは、ハードウェアとソフトウェアを統合したシステムであり、複雑な分析、予測、自動化を実行するためのAIと機械学習のワークロードをサポートします。どんなプロジェクトでもAIの導入における最大の困難は、モデルやアプリケーションを支える基礎的なインフラストラクチャスタックの運用です。機械学習ツールは、通常のクラウドインフラストラクチャと似ていますが、専門的な運用によって信頼性と拡張性を維持する必要があります。そしてそのスキルを持つ人材は少なく、人件費も高価です。適切な作業を怠れば、企業、モデル、プロセスに大きな問題が生じ、企業のイメージや評判を傷つけかねません。
RAGシステムなどの生成AIプロジェクトを構築するには、複数のコンポーネントとサービスが必要です。さらに、どのクラウド環境を導入するか、どのオペレーティングシステムとハードウェアを選択するかの検討も重要です。これらの要素は、システムの拡張性、効率、セキュリティ、コスト効果を確保するために重要です。以下の図は、RAGと生成AIシステムのフルスタックインフラストラクチャの提供を示しています。
これらの事項を念頭に置き、長所と短所を検討しましょう。
ハードウェア
AIの基盤となるハードウェアは極めて重要です。CPUとGPUのどちらに関しても、適切な処理能力の選択は、AIワークロードの具体的なニーズとユースケースによって異なります。スループット、レイテンシ、アプリケーションの複雑さなどの考慮事項が重要です。たとえば、AIで大量の並列処理と拡張性のある推論が求められる場合、GPUが必要になることがあります。さらに、ストレージハードウェアの選択、特に、データにアクセスするために必要な読み取りと書き込みの速度も重要です。最後に、ネットワークインフラストラクチャ、特に、ワークロードの帯域幅とレイテンシの点も十分に考慮する必要があります。たとえば、チャットボットや検索エンジンのようなアプリケーションでは、低レイテンシで高帯域幅のネットワークが不可欠です。
クラウド
クラウドインフラストラクチャは、処理能力、ストレージ、拡張性を提供し、AIワークロードのニーズに対応します。クラウド環境には、プライベート、パブリック、ベアメタルなど、複数のタイプが存在し、それぞれに長所と短所があります。たとえば、ベアメタルのインフラストラクチャは演算処理性能が高く、セキュリティを完全に制御できます。しかし、ベアメタルの管理と拡張は簡単ではありません。それに対してパブリッククラウド環境は使いやすく、非常に人気があります。しかし、インフラストラクチャを所有して管理するのはパブリッククラウドプロバイダーです。最後に、プライベートクラウド環境は、データのセキュリティとプライバシーの管理においてパブリッククラウドより優れています。
うれしいことに、各クラウドのさまざまな要素をハイブリッドのクラウド環境にブレンドするのは比較的容易です。それなら複数の環境の長所を兼ね備え、なおかつ1つの環境の欠点を補うことができます。
オペレーティングシステム
オペレーティングシステム(OS)は、ハードウェアとソフトウェアのリソースを監視する基盤レイヤーであり、AIワークロードの管理において重要な役割を果たします。AIワークロードの実行に適したOSの選択肢としては、LinuxやWindowsのような企業向けシステムなどがあります。
Linuxは、その柔軟性、安定性、そしてTensorFlow、PyTorch、Hugging Faceなどの機械学習フレームワークの広範なサポートによって、AIアプリケーションに最も広く使用されているOSです。AIワークロードに使用される一般的なディストリビューションは、Ubuntu、Debian、Fedora、CentOSなど数多くあります。さらにLinux環境は、Dockerコンテナなどのコンテナ化されたセットアップやKubernetesなどのCNCF対応のセットアップをしっかりサポートします。
生成AIサービス
RAGなどの生成AIプロジェクトには、ナレッジベース、大規模言語モデル、検索システム、ジェネレーター、推論など、複数のコンポーネントが含まれる場合があります。これらの各サービスについては、この後の「オープンソースを使用した高度なRAGと生成AIリファレンスソリューション」のセクションで定義し、説明します。
RAGサービスにはさまざまな機能がありますが、自社のユースケースに適したコンポーネントを選ぶことが不可欠です。たとえば以下は高度な生成AIリファレンスソリューションのため、小規模なRAG環境ではファインチューニングと初期段階のモデルリポジトリを別に確保しておく必要があるかもしれません。さらに、これらのすべてのコンポーネントを円滑に一貫性を持って統合し、シームレスなワークフローを構築することが重要です。その結果、レイテンシが低減し、プロジェクトに必要なスループットに対応できます。
RAGリファレンスソリューション
クエリがAIチャットボットで実行されると、RAGベースのシステムはまず、大規模なデータセットまたはナレッジベースから関連性の高い情報を検索し、次にこの情報を指針として応答を生成します。RAGベースのシステムは2つの主要コンポーネントで構成されています。最初のコンポーネントは「リトリーバー」です。リトリーバーは、ユーザーからのクエリに回答するための関連性の高い情報を見つけます。リトリーバーは、データベースを検索して最も関連性の高い情報を選択します。続いて、この情報は2つめのコンポーネントである「ジェネレーター」に提供されます。ジェネレーターは、最終的な出力結果を生成する大規模言語モデルです。
RAGベースのシステムを使用する前に、LLMのトレーニングデータに含まれていない外部データで構成されるナレッジベースを構築する必要があります。この外部データは、ドキュメント、データベース、API呼び出しなど、さまざまな情報源から入手できます。大半のRAGシステムは、埋め込みモデルと呼ばれるAIの手法を利用しており、データを数値表現に変換してベクトルデータベースに保存します。埋め込みモデルを使用することによって、AIのコンテキストで理解しやすく、簡単に検索できるナレッジモデルを構築できます。ナレッジベースとベクトルデータベースを設定すると、RAGプロセスを実行できます。概念のフローを以下に示します。
この概念のフローは、以下の5つの一般的な手順で進行します。
- ユーザーがプロンプトまたはクエリを入力します。
- リトリーバーがナレッジベースから関連性の高い情報を検索します。関連性は、ベクトル検索とデータベース機能を通じた数学的なベクトル計算と表現を使用して決定できます。
- 関連性の高い情報が検索され、拡張されたコンテキストがジェネレーターに提供されます。
- クエリとプロンプトがこのコンテキストによって強化され、プロンプトエンジニアリングの手法を使用して大規模言語モデルで使用するために拡張される準備が整いました。拡張されたプロンプトによって、言語モデルが正確にクエリに応答できるようになります。
- 最後に、生成されたテキスト応答が返されます。
オープンソースを使用した高度なRAGと生成AIリファレンスソリューション
RAGは、AIチャットボット、セマンティック検索、データの要約、さらにはコード生成など、さまざまなアプリケーションで使用できます。以下のリファレンスソリューションは、RAGを高度な生成AIリファレンスアーキテクチャと組み合わせて、さまざまな生成AIのユースケースにコンテキストが含まれたソリューションを提供する最適化されたLLMプロジェクトを構築する方法について概説しています。
図:RAGと強化された生成AIリファレンスソリューション(出典:https://opea.dev/)
上記の生成AIのブループリントは、Linux FoundationのプロジェクトであるOPEA(Open Platform for Enterprise AI)によって公開されました。このブループリントを作成する目的は、LLM、データストレージ、プロンプトエンジンなど、最先端の生成AIシステムのためのコンポーザブルなビルディングブロックのフレームワークを確立することです。さらに、RAGのブループリントを提供し、エンドツーエンドのワークフローの概要を示しています。OPEAプロジェクトの最新リリース1.1では、オープンソースツールを通じてRAGシステムを強化できる方法を実証している複数の生成AIプロジェクトが紹介されました。
ブロック内の各サービスには、実行される個別のタスクがあります。また、企業のニーズに基づいてこれらのサービスを加速させることに役立つさまざまなオープンソースソリューションが利用可能です。これらを以下の表に示します。
サービス | 説明 | オープンソースソリューション |
取り込み/データ処理 | 取り込みやデータ処理は、データパイプラインレイヤーです。これは、データの抽出、クレンジング、実行に不要なデータの削除を行います。 | Kubeflow OpenSearch |
埋め込みモデル | 埋め込みモデルとは、生データをベクトル表現に変換する機械学習モデルです。 | Hugging FaceのSentence Transformers OpenSearchによって使用されるSentence Transformers |
検索とランク付け | このコンポーネントはナレッジベースからデータを検索します。また、関連性スコアに基づいてフェッチされる情報の関連性のランク付けも行います。 | FAISS(Facebook AI Similarity Search) – OpenSearchで使用されているコンポーネントなど Haystack |
ベクトルデータベース | ベクトルデータベースはベクトル埋め込みを格納しています。そのため、データを「検索とランク付けサービス」によってデータを簡単に検索できます。 | Milvus PostgreSQL Pg_VectorOpenSearch:ベクトルデータベースとしてのKNN Index |
プロンプト処理 | このサービスは、クエリと検索したテキストを判読可能な形式にフォーマットして、LLMモデルに合わせて構造化します。 | LangChain OpenSearch:ML – エージェント予測 |
LLM | このコンポーネントは、複数の生成AIモデルを使用して最終的な応答を提供します。 | GPT BART などその他多数 |
LLM推論 | これは、実行中のデータを機械学習モデルに処理して出力を提供することによって実運用環境で機械学習を運用可能にすることを意味します。 | KServe vLLM |
ガードレール | このコンポーネントは、入力と出力に対するガードレールフィルタを作成することによって生成AIの応答で倫理的なコンテンツを保証します。 | Fairness Indicators OpenSearch:ガードレール検証モデル |
LLMのファインチューニング | ファインチューニングとは、トレーニング済みの機械学習モデルを取り込み、より小規模のターゲットデータセットでそのモデルをさらにトレーニングするプロセスです。 | Kubeflow LoRA |
モデルリポジトリ | このコンポーネントは、特にファインチューニングのプロセス内で、トレーニング済みの機械学習(ML)モデルを保存およびバージョン管理するために使用されます。このレジストリによって、導入から廃止までのモデルのライフサイクルを追跡できます。 | Kubeflow MLFlow |
LLMアプリケーションを構築するためのフレームワーク | これにより、LLMのワークフロー、プロンプト、サービスがシンプル化され、LLMの構築が簡単になります。 | LangChain |
この表は、RAGシステムと高度な生成AIリファレンスソリューションの構築に関連する主要なコンポーネントの概要と、各サービスに関連するオープンソースソリューションを示しています。各サービスは、データ管理と準備、データベースへのモデルの埋め込み、LLM自体の改善などのいずれかに関連する、LLMのセットアップを強化できる特定のタスクを実行します。
この分野、特にオープンソースコミュニティにおけるイノベーションの速度は、急激に上がっています。新しいモデルや新興のRAGソリューションなど、常に最新の開発手法に精通することが重要です。
結び
RAG向けなどの堅牢な生成AIインフラストラクチャの構築は、複雑で難しい場合があります。テクノロジースタック、データ、拡張性、倫理、セキュリティについて慎重に検討する必要があります。テクノロジースタックに関しては、ハードウェア、オペレーティングシステム、クラウドサービス、生成AIサービスは、企業が求める規模に基づいて回復力と効率性を備えている必要があります。
生成AIインフラストラクチャとアプリケーションの構築には複数のオープンソースソフトウェアの選択肢があり、最新のAIプロジェクトの複雑な要求に合わせて調整できます。オープンソースのツールとフレームワークを活用することによって、組織は開発を加速させ、ベンダーロックインを回避し、コストを削減し、企業のニーズを満たすことができます。
CanonicalがRAGとAIインフラのニーズに対応
CanonicalのRAGとMLOpsのワークショップで最適なRAGアーキテクチャとアプリケーションを構築
Canonicalは、ワークショップと、企業向けオープンソースツールおよびサービスを提供しています。また、実運用環境でのコード、データ、モデルの安全性を確保するためのアドバイスを提供できます。
Canonicalは、企業向けRAGシステムの構築を支援する5日間のワークショップを提供しています。ワークショップの終了時には、RAGとLLMの理論、アーキテクチャ、ベストプラクティスについて完全に理解していただけるでしょう。また、お客様の具体的なニーズに応じたソリューションの開発と導入もお手伝いいたします。データシートはこちらからダウンロードできます。
詳細をご覧になり、必要なRAGについて担当チームにご相談ください。
あらゆるハードウェアやクラウドで動作する最高レベルの生成AIツールを学習して使用しましょう
Canonicalは、企業向けAIインフラストラクチャを、RAGプロジェクトの始動を支援するオープンソースデータおよびAIツールとともに提供しています。CanonicalはUbuntuを提供する企業です。Ubuntuとは、パブリッククラウドプラットフォーム、データセンター、ワークステーション、エッジデバイス/IoTデバイスで動作するLinuxオペレーティングシステムです。Canonicalは、Azure、Google Cloud、AWSなどの大手パブリッククラウドプロバイダーと提携しています。さらに、CanonicalはIntel、AMD、NVIDIA、RISC-Vなどのシリコンベンダーと協力して、各社のプラットフォームがシリコンに依存していないことを保証しています。
自信を持ってスタックを保護
ソフトウェアスタックを管理するためのベストプラクティスを習得しながら生成AIプロジェクトのセキュリティを強化しましょう。コンフィデンシャルAIで実運用環境のコード、データ、機械学習モデルを守る方法についてご覧ください。
ニュースレターのサインアップ
関連記事
Canonicalが12年間のKubernetes LTSを発表
CanonicalのKubernetes LTS(長期サポート)はFedRAMPのコンプライアンスに対応し、ベアメタル、パブリッククラウド、OpenStack、Canonical MicroCloud、VMwareで最小12年のセキュリティメンテナンスおよびエンタープライズサポートが保証されます。 2025年2月 – Canonicalは本日、Kubernetes 1.32以降、12年間のセキュリティメンテナンスとサポートを保証すると発表しました。新リリースは、インストール、運用、アップグレードが簡単な上、トップクラスのオープンソースネットワーキング、DNS、ゲートウェイ、メトリクスサーバー、ローカルストレージ、ロードバランサー、イングレスサービスを備えています。Cano […]
リアルタイムOSはあなたのビジネスに適していますか?
自動化は社会のほぼすべての分野に広がり、自動車や通信から工業生産まで、さまざまな業界でリアルタイムに対応したオペレーティングシステム(OS)が重要になってきています。リアルタイムオペレーティングシステム(RTOS)は、正確で確定的な応答を保証し、安全性とパフォーマンスに不可欠な厳しいタイミング要件を満たします。しかし、ZephyrやFreeRTOSのような従来のRTOSはビジネスにとって正しい選択肢なのでしょうか? それとも、リアルタイム機能を備えたLinuxソリューションの方がもっとニーズに合っているのでしょうか? Canonicalの最新のホワイトペーパーではこれらの疑問について解説します。このブログではその要点を説明しましょう。 システムを「リアルタイム」にするもの […]
IoTデバイス管理とは
IoTデバイス管理とは、IoTデバイスのデプロイ、モニター、メンテナンスに使用するプロセスや手順を意味します。企業がIoTの運用規模を拡大するとともに、しっかりしたデバイス管理アプローチでデバイス群を安全かつ効率的に運用することが必須となります。 世界中でコネクテッドデバイスが普及し(予測では2024年には188億台にのぼる)、IoTデバイス管理が複雑化しています。そして悪意ある者もそこに目をつけています。2023年には、平均して組織あたり1週間に60件ものIoT攻撃がありました。これはデバイス自体、そしてデバイスと他のデバイスや管理システムとの接続が、大きな攻撃対象領域を作るためです。 このブログ記事では、可視性、相互運用性、セキュリティという3つの目的に重点を置き、I […]