GPT-4 OmniとメガプロンプトでARMテンプレートを生成する~大和総研の社内適用事例からChatGPTのエンタープライズ利用の実例を紹介~

 大和総研DX推進部の城石賢蔵です。
 大和総研では「DIR ChatGPT(当社独自の社員向けChatGPT環境)」という生成AIサービスを社内に展開しています。
 先行ブログ「GPT-4 Turbo with VisionはAzureサービス構成図からARMテンプレートを生成できるか?」では「GPT-4 Turbo with Vision(画像データに基づく文章生成機能)」を利用してAzureサービス構成図からARMテンプレート(注1)を生成することを試みました。しかし、AIモデルの学習データの不足から実用的なARMテンプレートを生成することはできませんでした。
 この生成AIの学習データの不足という課題を解決するため、「メガプロンプト(注2)」という手法に着目しました。そして、GPT-4シリーズの最新モデルである「GPT-4 Omni(オムニ)」とメガプロンプトを組合せて実践した結果、指示通りの構造と設定値を持つARMテンプレートを生成できましたので、ChatGPTの活用事例の一つとして本記事で紹介します。
 Azure OpenAI Serviceの社内導入を検討されている方や、Azure OpenAI Serviceの活用範囲をさらに広げたいとお考えのみなさんの参考となれば幸いです。
 なお大和総研ではMicrosoft 365、Azureをはじめ、AWS、Google Cloud、Oracle Cloud Infrastructureなどのパブリッククラウドの導入に関するご相談を承っております。ぜひご用命ください。

注1:正式名称はAzure Resource Managerテンプレート。Azureの環境やサービスの設定情報を定義するためのテンプレートです。詳しくは章「はじめに」で紹介します。
注2:多数の事例や指示を格納した長大なプロンプト(要求文)を生成AIにインプットすることで、生成される文章の精度と品質を高める手法です。詳しくは章「はじめに」で紹介します。

はじめに

① GPT-4 Omniの利用環境

 はじめにGPT-4 Omniの利用環境を紹介します。
 GPT-4 Omniは2024年7月に東日本リージョンに提供開始されました。GPT-4 Turbo with Visionよりも日本語の処理能力が向上していると下記のMicrosoftの公開情報にてうたわれており、ARMテンプレートの生成でもレスポンスの速さを体感できました。

 - Azure OpenAI Service models - Azure OpenAI | Microsoft Learn

 しかし、学習データの内容はGPT-4 Turbo with Vision(プレビューモデル)と同水準であり、GPT-4 Omni単体では実用レベルのARMテンプレートを生成することはできませんでした。ブログ「GPT-4 Turbo with VisionはAzureサービス構成図からARMテンプレートを生成できるか?」と同条件の試行をGPT-4 Omniでも実施しましたが、生成されたARMテンプレートの各リソースのAPIバージョンは、上記AIモデルと同様に大幅に古い値でした。
 また、GPT-4 Turbo with Vision(正式モデル)と同様に、画像認識機能の拡張(Azure AI Visionとの連携)に対応していないことにも注意が必要です。


表1 GPT-4 OmniとGPT-4 Turbo with Visionのモデル一覧(抜粋)
モデル
モデルID
説明
東日本リージョンへの提供
GPT-4 Omni gpt-4o 2024-05-13 最新の正式(GA)モデル
画像の入力に対応している
GPT-4 Turbo with Visionよりも英語以外の言語のパフォーマンスが向上している
画像認識機能の拡張(Azure AI Visionとの連携)に対応していない
GPT-4 Turbo with Vision gpt-4 turbo-2024-04-09 正式(GA)モデル
既存プレビューモデルの代替となるもの
画像認識機能の拡張(Azure AI Visionとの連携)に対応していない
×
gpt-4 vision-preview プレビューモデル
画像の入力に対応している
画像認識機能の拡張(Azure AI Visionとの連携)に対応している

出所:Microsoft「Azure OpenAI Service モデル - Azure OpenAI | Microsoft Learn」を基に大和総研作成

 GPT-4 Omniもプライベート(閉域)ネットワーク化を施したAzure OpenAI Service環境において利用しています。Azure OpenAI Serviceをプライベートネットワーク化することのメリットはブログ「GPT-4 Turbo with Visionはシステム設計図のセルフチェックツールになりうるか?」をご覧ください。
 ユーザーインターフェースも上記ブログと同様にAzure OpenAI Studio(Azure OpenAI Service標準のWebユーザーインターフェース)を利用しています。

図1.プライベートネットワーク下でのAzure OpenAI Studioの利用
出所:大和総研作成

② ARM(Azure Resource Manager)テンプレートとは?

 ARMテンプレートは正式には、Azure Resource Managerテンプレートと呼び、Azureの環境やサービスの設定情報を格納するJSON形式のファイルです。詳しくはブログ「Azure OpenAI Serviceのプライベートネットワーク化と対話ログ保管運用」をご覧ください。
 DIR ChatGPTではARMテンプレートをAzureサービスの作成(デプロイ)作業の省力化と、作成したAzureサービスの設定の妥当性確認のために利用しています。

③ メガプロンプトとは?

 メガプロンプトとはアメリカ合衆国DeepLearning.AI創業者であるAndrew Ng氏が提唱する手法です。「メガ」は巨大な、大容量の、といった意味で用いられています。多数の事例や指示を格納した長大なプロンプト(要求文)を生成AIにインプットすることで、生成される文章の精度と品質を高める手法と理解しています。
 同氏がDeepLearning.AIの公式サイトである「DeepLearning.AI – THE BATCH」に掲載したイメージ図がメガプロンプトの概念を明快に表しています。

図2.メガプロンプトの概念
出所:THE BATCH - Weekly Issues 249 | DeepLearning.AI

 この手法は生成AIの学習データの不足という課題の解決策になりうると考えました。AIに学習データが不足しているのなら正確な情報を追加インプットしてやればよい、という考え方です。そして、目的とするARMテンプレートを一つのプロンプトで生成することを目標に同テンプレートの全構成情報を格納したメガプロンプトを準備し、試行しました。結果を次章で紹介します。

GPT-4 Omniとメガプロンプトの活用例:ARMテンプレートの生成

 GPT-4 OmniとメガプロンプトによるARMテンプレート生成の経緯を本章で紹介します。
 はじめにGPT-4 Omniの利用方法について説明します。GPT-4 Turbo with Visionと同様に、GPT-4 Omniでも要求文の送信時にtemperature、top_pなどの追加パラメータを指定できます。詳しくはブログ「GPT-4 Turbo with VisionはAzureサービス構成図からARMテンプレートを生成できるか?」をご覧ください。ただし今回も先行事例と同様に有意な値はセットせず、既定値のままとしています。
 また、今回の実践でも同一内容の要求文を複数回(最低でも3回)送信し、同内容の応答文が返却されることを確認しています。

① システムプロンプトと要求文(プロンプト)の内容

 過去のブログで紹介してきたようにGPT-4シリーズでは文章生成のために、システムプロンプト(AIへの要求事項)と要求文(システムプロンプトと対比して、プロンプトと呼ばれることもあります)の2種類のデータを同時にインプットできます。
 今回の実践ではシステムプロンプトでテンプレートの構造を指示し、要求文でテンプレートの(各設定項目の)設定値を指示しました。詳しくは次の図の通りです。

図3.システムプロンプトと要求文の例
出所:大和総研作成

 テンプレートの構造と設定値を正確に指示するため、これらの情報を格納した追加データを添付しました。詳しくは次の表の通りです。


表2 システムプロンプトと要求文の添付データの概要
No.
データの種類
概要
1 ARMテンプレートの構造体(JSON) ・ARMテンプレートの構造を表現するJSON形式のデータ
・テキストデータとしてシステムプロンプト内にセット
2 リソースの構造体(JSON) ・ARMテンプレートの構成要素であるリソースの構造を表現するJSON形式のデータ
・テキストデータとしてシステムプロンプト内にセット
3 ARMテンプレートの各設定項目の値(パラメータ)の一覧表(画像データ) ・稼働中のサービス(Azure OpenAI Service)からエクスポートしたARMテンプレートの各設定項目の値を抽出し、Excelを利用して一覧表化したもの
・JSON記法を再現した様式としている
・サービス名称やデプロイ名称などのサービス固有の値は、新規作成するサービスを想定した値をセットしている
・画像データとして要求文に添付

出所:大和総研作成

 上表2のNo.1とNo.2にあげた構造体の情報は次のMicrosoftの公開情報から取得しました。

 - Azure リソース リファレンス - Bicep, ARM template & Terraform AzAPI reference | Microsoft Learn

No.2にあげたリソースはARMテンプレートの構成要素の一つです。対応するサービスや機能ごとに異なる構造を持ちます。詳しくはブログ「GPT-4 Turbo with VisionはAzureサービス構成図からARMテンプレートを生成できるか?」をご覧ください。
 No.3の一覧表(画像データ)の実物も一例として掲載します

図4.「ARMテンプレートの各設定項目の値の一覧表」の例
出所:大和総研作成

 なお、表形式のデータは、一般的にマークダウン形式に変換しテキストデータとしてインプットする方が利用トークン数を削減できます(今回の実践では準備にかかる期間の短縮のために既存ドキュメントを流用し、画像データとしてインプットしました)。

 以上のインプットデータの総量をAzure OpenAI Serviceのトークンという単位に換算したところ、約3,000という値になりました(Azure OpenAI Studioのユーザーインターフェース上で算出)。

 - Azure OpenAI Service とは - Azure AI services | Microsoft Learn

 一般的に使用される1行~2行の質問文の場合、トークン数は20~30です。よって、今回のインプットデータはメガ(通常の100万倍)には遠く及ばないものの、ヘクト(通常の100倍)の域には達しています。メガプロンプトならぬヘクトプロンプトといったところでしょうか。
 なお、GPT-4 Omniのインプットデータのトークン数の上限は128,000であるため、インプット可能なデータの量にはまだ十分な余裕があると言えます。
 このトークン数に関しては注意すべき点があります。次の章「メガプロンプトの運用上の注意」で改めて紹介します。

② 生成されたARMテンプレートの検査結果

 GPT-4 Omniへのメガプロンプトのインプットは正常に終了し、ARMテンプレートを含む応答文が生成されました。


表3 メガプロンプトを利用したARMテンプレート作成要求の結果
セクション
内容
システムプロンプト
要求文
(図3を参照)
応答文 以下は、提供された画像内の表に基づいて生成された Azure OpenAI Service リソースのための ARM テンプレートです。

[テンプレート本文は長大かつ専門的な内容であるため掲載を割愛]

このテンプレートは、画像内の表に記載されている値に基づいて構築されています。各リソースの設定項目の値は、表のデータを反映しています。

出所:大和総研作成

 生成されたARMテンプレートの妥当性を次の4ステップで検査しました。結論として、指示通りの「構造」と「設定値」を持つARMテンプレートが生成されました。


表4 生成されたARMテンプレートの検査プロセス
No.
対象
方式
具体的手段
結果
1 テンプレートの構造 ベースした構造体との照合
(生成のためにインプットした情報との再照合)
・GPT-4 Omniによる照合
・目視確認

基本構造が一致
2 稼働中のサービスからエクスポートしたテンプレートデータと照合 ・GPT-4 Omniによる照合
・目視確認

一致
3 各設定項目の値 設定値一覧表との照合
(生成のためにインプットした情報との再照合)
・GPT-4 Omniによる照合
・目視確認

一致
4 全般 公式テストツールによる総合チェック ・ARMテンプレート テストツールキット
構造のエラーなし

出所:大和総研作成

 No.1の検査では差異が検出されました。これは、Microsoftが公開している構造体(システムプロンプトにインプットしたもの)よりも、稼働中のサービスからエクスポートしたARMテンプレートの構造体(インプットデータ「設定値一覧表」のベースとしたもの)が、特定リソースのAPIバージョンが新しかったためでした。そのためこの検査では、基本構造が一致していることを確認して合格としました。そしてNo.2の検査において、稼働中のサービスからエクスポートしたARMテンプレートと構造が一致することを確認しました。
 またNo.4の総合チェックには公式テストツールである「ARMテンプレート テストツールキット」を利用しました。

 - ARM テンプレート テスト ツールキット - Azure Resource Manager | Microsoft Learn

 ARMテンプレートの構造について正当(Valid)であるという判定が得られました。
 なお当ツールには注意事項があります。当ツールの検査ポリシは厳格であり、稼働中のサービスからエクスポートしたARMテンプレートでも特定の設定項目の値が不合格(Fail)と判定されるケースがあります。今回の実践でも設定項目Locationが不合格となりました。不合格となった設定項目は、稼働中のサービスのARMテンプレートの同等の値がセットされていることをもって正常と判断することとしました。

 - テスト ツールキットのテンプレートのテスト ケース - Azure Resource Manager | Microsoft Learn

③ 総評

 以上の実践結果より、GPT-4 OmniはARMテンプレートの生成という用途において、メガプロンプトを適切に処理する機能を持つ、マルチモーダルAI(異なる種類のインプットデータを統合し処理する機能を持つAI)であると総合的に判断しました。


表5 ARMテンプレートの生成におけるGPT-4 Omniの評価と根拠
評価
根拠
マルチモーダルAIとして実用レベルの機能を備えている インプットされたテキストデータからテンプレートの構造体(JSON形式)(複数種類)を正確に識別して読み込んでいる
インプットされた画像データ(一覧表形式)から各設定項目の値(複数種類)を正確に識別して読み込んでいる
長文のインプットデータ(メガプロンプト)を適切に処理する機能を備えている 複数種類の構造体と複数種類の設定項目の値という2種類のインプットデータ(合計3,000トークン)を統合し、指示通りの構造と設定値を持つARMテンプレートを生成している

出所:大和総研作成

 そして、GPT-4 Omniとメガプロンプトという組合せは生成AIの学習データの不足という課題を克服する糸口になるものと確信しました。

メガプロンプトの運用上の注意

 メガプロンプトを本格的に運用するにあたり注意したい点が三つあります。

① 利用トークン数への影響

 2024年7月時点において、Azure OpenAI ServiceのAIモデルの利用方式の既定値は標準デプロイです。この方式では、AIモデルのクォータ(割り当て容量)に基づいて、単位時間当たりあたりの利用可能トークン数の上限値が定められます。これにはTPM:Tokens per Minute Rate Limit(1分あたりのトークンレート制限)という単位が用いられています。
 この上限値を超過すると、指定時間内はAIモデルを利用できなくなります(HTTP 429エラー:レート制限超過が返却されるようになります)。

 - Azure OpenAI Service のクォータと制限 - Azure AI services | Microsoft Learn

 メガプロンプトを多用することは、AIモデルが利用不能となる事態の発生率の上昇につながります。頻発するようになった場合にはクォータの拡張や、運用管理面での工夫(利用者ごとの利用時間帯の調整など)を検討しなければなりません。

② サービス利用料金への影響

 AIモデルを標準デプロイで利用する場合、利用料金は利用トークン数に基づく従量課金となります。メガプロンプトの利用を本格開始することにより、利用料金が数倍から数百倍に跳ね上がる恐れがあります。

 - Azure OpenAI Service - 価格 | Microsoft Azure

 なお、ここまでにあげた課題①②の解決策として、Microsoftからプロビジョニングスループットユニット(PTU:事前予約型の処理容量ユニット)という機能が提供されています。

 - Azure OpenAI Service のプロビジョニング スループット - Azure AI services | Microsoft Learn

 この機能のメリットとして次の二つが示唆されています。

  1. 必要十分な処理容量を持つAIモデルを安定した処理性能(スループット)で利用できる
  2. 標準デプロイ(利用トークン数に基づく従量課金制)よりも利用料金が合理化(削減)される可能性がある(ユニットの容量や個数などに基づく課金体系となるため)

 現時点(2024年9月)でアメリカ合衆国のリージョンだけでなく東日本リージョンにも提供開始されているため、DIR ChatGPTでも選択肢に加えています。

③ 格納情報の妥当性・正確性の維持

 今回の実践ではAzure OpenAI ServiceのARMテンプレートを生成するためのメガプロンプトを作成しました。このメガプロンプトは同サービスの追加作成要件があがった際にただちに再利用できます。また、格納するリソースの構造体情報の種類をさらに拡張すれば、ARMテンプレートの生成のために汎用的に利用できる共有リソースになります。一般的なシステム開発におけるライブラリやディクショナリと同様のイメージで運用できます。
 ただしARMテンプレートの構造体のように継続的に内容の更新がなされる情報を格納する場合、情報を最新の状態に保つための仕組みや工夫が必要です。
 自動化の仕組みとしては、公式ドキュメントサイト(Microsoft Learnなど)を定期的に精査(クローリング)し、情報の更新があった場合にはメガプロンプトに反映するアプリケーションなどがあげられます。それが完成するまでは人間の目と手でメガプロンプトの内容の妥当性・正確性を維持していくほかないものと認識しています。

おわりに

 今回の実践ではGPT-4 Omniとメガプロンプトを組合せ、ARMテンプレートの生成を試みた結果、要件を満たすARMテンプレートの生成に成功しました。以上により、この二つの組合せが生成AIの学習データの不足という課題を克服するための糸口になると考えています。運用上の注意点を考慮しつつ、実践と検証をさらに進めます。
 有効性の確認されたメガプロンプトの利用を促進するため、一般利用者のために配置している専用のWebユーザーインターフェース(Azure OpenAI Studioとは別のカスタムアプリケーション。詳しくはブログ「Azure OpenAI Serviceのプライベートネットワーク化と対話ログ保管運用」をご覧ください)に認証済みのメガプロンプトをワンボタンで呼び出す(システムプロンプト入力欄に自動セットする)機能を追加することも構想しています。
 DIR ChatGPTではこれからも新機能の導入と検証を積極的に進めていきます。成果は順次ブログにて発信します。どうぞご期待ください。

(本ブログの内容は2024年7月時点のものです)

関連するソリューション

 大和総研では、Azure等のパブリッククラウドを活用したChatGPT構築支援サービスを行っています。ITソリューションサービスサイトからお問い合わせください。

 ChatGPT利用環境構築サービス|大和総研 (dir.co.jp)

※Microsoft 365、Power Platform、Azureは、米国 Microsoft Corporationの米国およびその他の国における登録商標または商標です。