はじめに
こんにちは!日系SlerでGCPの設計や開発を担当しているKanamiと申します。最近DevOpsをやってみたくて色々調べてみたところ、GenOpsという概念を知り、気になったので調べてみました。
概要
結論から言うと、GenOpsとは生成AIアプリケーションの運用を円滑に進めるための新しいアプローチです。 近年、急速に発展している生成AI技術ですが、その運用は従来のアプリケーションとは異なる新たな課題に直面しています。その運用手法として「GenOps」という概念が生まれました。これは2024 年 8 月 31 日にGoogleCloudによって発表されました。
従来のソフトウェア開発と「DevOps」
従来のソフトウェア開発では、開発チーム(Dev)と運用チーム(Ops)が協力して効率的なソフトウェア開発と運用を目指す「DevOps」が広く採用されています。さらに、システムの信頼性(Reliability)を重視する「SRE(Site Reliability Engineering)」という概念も登場しました。
しかし、生成AIアプリケーションは、従来のアプリケーションとは異なる特性を持っています。そこで、マイクロサービスとDevOpsの考え方をベースに、生成AIアプリケーションに特化した運用アプローチとして「GenOps」が登場しました。
GenOpsとは?その目的と必要性
生成AIと従来のアプリケーションの違い
従来のアプリケーションでは、マイクロサービスと呼ばれる小さな機能単位が組み合わさってサービスを提供します。これらのマイクロサービスは、あらかじめ定義されたルールに従って動作し、出力も決定論的(予測が簡単)です。一方、生成AIアプリケーションでは、AIモデルが中心となり、その出力は非決定論的(予測が難しい)です。
GenOpsの目的
GenOpsの主な目的は、生成AIアプリケーションの特性を考慮し、以下の点を実現することです。
- 安定的な運用: 生成AIモデルの予測不可能性に対応し、安定したサービス提供を目指します。
- 効率的な管理: モデル、プロンプト、ツールなど、生成AI固有の要素を効率的に管理します。
- セキュリティの確保: モデルの不正利用や機密情報の漏洩を防ぎます。
- 継続的な改善: モデルの評価と改善を繰り返し、サービスの品質向上を目指します。
GenOpsで運用するもの:AIエージェント
GenOpsの世界では、従来のマイクロサービスに相当するのが「AIエージェント」です。AIエージェントは、特定のタスクを処理するために定義された個別の機能単位ですが、以下の要素が追加されています。
- 推論ループ: エージェントがどのように動作するかを定義する制御ロジックです。
- モデル定義: AIモデルとのやり取りを定義します。
- ツール定義: 他のAIエージェントや外部APIなどのリソースへのアクセス方法を定義します。
これらの要素により、AIエージェントはマイクロサービスとは異なり、非決定論的な動作をします。
マイクロサービスとAIエージェントの比較
特徴 | マイクロサービス | AIエージェント |
---|---|---|
出力 | 決定論的 | 非決定論的 |
スコープ | 個別の機能単位 | 個別の機能単位 |
レイテンシ | 低い | 高い |
費用 | 低い | 高い |
透明性/説明可能性 | 高い | 低い |
開発の柔軟性 | 高い | 高い |
開発の相互依存性 | なし | なし |
アップグレードの相互依存性 | なし | なし |
サービスディスカバリの課題
マイクロサービスの世界では、コンテナ技術とKubernetesなどのプラットフォームにより、サービス間の連携は効率的に管理されています。しかし、生成AIエージェントでは、デプロイ環境が多様であり、標準化された管理方法が確立されていません。
そこで、GenOpsでは、APIゲートウェイをハブとして、AIエージェント、ツール、モデルへのアクセスを一元的に管理する「ハブアンドスポークモデル」が推奨されます。
GenOpsで考慮すべきこと
運用プラットフォームの役割分担
GenOpsでは、開発チームが構築したアプリやエージェントと、モデルやツールなどの生成AI固有のコンポーネントとの間で責任を明確に分離することが重要です。
- 開発チーム: アプリケーションやAIエージェントの開発、デプロイを担当します。
- 運用チーム: モデルのコンプライアンス、セキュリティ、評価、ツール管理など、非機能要件を担当します。
GenOps固有の運用ツール
GenOpsでは、以下の運用ツールが必要になります。
- モデルのコンプライアンスと承認管理: モデルの使用条件を管理し、法務やコンプライアンスチームが承認プロセスを担います。
- プロンプトのバージョン管理: プロンプトの最適化、再利用、バージョン管理を行います。
- モデル(およびプロンプト)の評価: モデルのレスポンス品質を継続的に評価する自動化パイプラインを構築します。
- モデルのセキュリティゲートウェイ: プロンプトインジェクションなどの攻撃からモデルを保護します。
- ツールの集中管理: AIエージェントが利用できるツールを集中管理し、再利用を促進します。
GCPでのGenOpsの実現方法
Google Cloud Platform(GCP)は、GenOpsを実現するための様々なサービスを提供しています。
- Model Garden: モデルのコンプライアンスと承認管理をサポートする、150を超えるモデルのライブラリです。
- Model Armor: プロンプトとレスポンスの検査、ルーティング、保護を行うセキュリティサービスです。
- プロンプト管理機能: プロンプトの集中バージョン管理、テンプレート化、共有などの機能を提供します。
- モデル評価サービス: プロンプトとレスポンスを自動的に評価する機能を提供します。
- Document AI Layout Parser, Multimodal Embeddings API, Vertex AI Vector Search: ツールの作成をサポートするサービスを提供します。
- Vertex AI Search: RAG(Retrieval Augmented Generation)をフルマネージドで提供するサービスです。
- Apigee: モデルとツールをAPIプロキシとして公開するためのAPIゲートウェイです。
まとめ
GenOpsは、生成AIアプリケーションの運用を効率化し、安定したサービス提供を実現するための新しいアプローチです。GCPのようなクラウドプラットフォームを活用することで、GenOpsの導入を容易に進めることができます。
この記事が、生成AI技術の活用を検討している皆様にとって、少しでもお役に立てれば幸いです。
用語集
- DevOps: 開発(Dev)と運用(Ops)が協力して効率的なソフトウェア開発を目指す考え方
- SRE: システムの信頼性(Reliability)を重視する運用手法
- マイクロサービス: 小さな機能単位で構成されたアプリケーション構造
- GenOps: 生成AIアプリケーションに特化した運用アプローチ
- AIエージェント: 特定のタスクを処理するために定義された機能単位
- 推論ループ: AIエージェントがどのように動作するかを定義する制御ロジック
- モデル定義: AIモデルとのやり取りを定義する情報
- ツール定義: 他のAIエージェントや外部APIへのアクセス方法を定義する情報
- ハブアンドスポークモデル: APIゲートウェイを中心にAIエージェント、ツール、モデルを管理するモデル
- APIゲートウェイ: APIへのアクセスを一元的に管理する機能
- RAG(Retrieval Augmented Generation): 検索によって取得した情報を基に回答を生成するAI技術
- GCP: Google Cloud Platformの略称。Googleが提供するクラウドサービス