BLOGAzureブログ
Azure OpenAI ServiceリソースデプロイをBicepモジュールでやってみよう
Azure相談センターSB C&Sは、Microsoft Azureを推奨します。
Azure OpenAI ServiceリソースデプロイをBicepモジュールでやってみよう
皆さまこんにちは、SB C&Sの八釼です。
以前に過去に掲載したこの記事にてご紹介したBicepですがAzure OpenAI Service(AOAIS)にも活用できますので今回はそこに触れてみたいと思います。
また、せっかくなのでBicepの方も少し掘り、「モジュール」に触ます。業務でBicepを活用するなら使わないという選択肢はない存在ですので、何となくでもイメージを掴んでいただければと思います。
なお、この記事ではBicepコードの書き方やルール、デプロイのやり方などの詳細については解説しませんのでご了承ください。
はい、パニックですね。コンテナ型仮想化に関係する話がどこから出てきたんだ?ですね。ただ、ご安心ください。今回コンテナは絡みません。
一般的にはコンテナイメージを保存しておくためのマネージドレジストリサービスなのですが、実はBicepファイル(コード)用のプライベートレジストリとしても使えるのです。というか組織内でBicepコードを共有し効率的に運用していくためにはこのサービスを活用するしか道はありません。
ということで、今回の記事においては下準備といった立ち位置になりますがプライベートレジストリを用意しましょう。既存の都合の良いものがあればそれを使っても構いませんし、必要であれば作成しましょう。
さまざまな手段で作成できますが、もちろんこれについてもBicepでやってしまうという選択肢もあります。せっかくなので今回用いるACRインスタンスは以下のクイックスタートのコードを使ってデプロイしました。
クイック スタート | Bicep ファイルを使用したコンテナー レジストリの作成
出来上がったものはこちらです。
過去に掲載したこの記事にて「リソースの作成」について触れましたが、今回はAzure portalからやるでもなくAzure CLIにてやるでもなく、Bicepコードを記述してやってみようと思います。
こちらについても以下のクイックスタートのコードをほぼそのまま使い、「aoais.bicep」というファイル名で保存しました。
微妙に修正した箇所としては
param location string = resourceGroup().location
のところで、= resourceGroup().location
を削除しました。後述する別のBicepファイルで記述するパラメーター(param)から値を渡すことにして、このファイルにおけるコードの記述をすっきりさせたかったためです。
クイック スタート | Bicep を使用して Azure AI サービス リソースを作成する
ちなみに、モデルのデプロイまで一気にコードで記述しても良かったのですが、少々複雑になるので今回は割愛します。
先ほど作成した「aoais.bicep」というファイルを以下のAzure CLIコマンドにてACRインスタンスに公開します。
$ az bicep publish \
--file ./aoais.bicep \
--target br:acrnup2nnqblzp7e.azurecr.io/bicep/modules/aoais:v1
Azure portalから指定したとおりリポジトリが作成されているか確認してみます。
はい、特に問題なさそうです。
なお、Azure PowerShellでの公開の仕方やAzure portalにて公開したファイルの表示方法などの詳細が確認したい場合には以下の公式ドキュメントをご確認ください。
公式ドキュメント | Bicep を使用して Azure AI サービス リソースを作成する
aoais.bicepのコードでは既存のリソースグループにデプロイすることになるのですが、今回は新規でリソースグループを作成しそこに所属するAOAISリソースをデプロイすることにしたいと思います。
resourceとしてリソースグループを作成し、プライベートリポジトリに公開したモジュールを使ってAOAISリソースをデプロイするための「main.bicep」を以下のように記述しました。
詳細については以下の公式ドキュメントをご確認ください。
公式ドキュメント | Bicep ファイルを使用したサブスクリプションのデプロイ
targetScope = 'subscription'
param resourceGroupName string
param resourceGroupLocation string
resource newRG 'Microsoft.Resources/resourceGroups@2022-09-01' = {
name: resourceGroupName
location: resourceGroupLocation
}
module aoaisModule 'br:acrnup2nnqblzp7e.azurecr.io/bicep/modules/aoais:v1' = {
scope: newRG
name: 'aoais-deploy'
params:{
location: resourceGroupLocation
}
}
今回のようにプライベートモジュールレジストリに公開してあるモジュールのパスの記述についての詳細は以下の公式ドキュメントをご確認ください。
公式ドキュメント | Bicep モジュール
リソースグループ名はパラメーター(param)にしているので都合の良い名前を指定してください。今回は"licensecounter-blog-aoais-rg"としました。
また、リージョンについてもパラメーターにしているので都合の良いところを指定してください。今回は" japaneast"としました。なお、リソースグループとAOAISのリージョンを揃えたかったので、このコードでは同じになるようにしています。
コードで指定したname: 'aoais-deploy'
を表示してみると、問題なくデプロイが完了しました。
ちなみに、今回はあえてプライベートモジュールレジストリに発行したBicepモジュールを指定してデプロイを行いましたが、例えばmain.bicepが存在するディレクトリに「nested」というサブディレクトリを作成しここにaoais.bicepファイル(モジュール)を格納しておきそのファイルへの相対パス'nested/aoais.bicep'を指定することもできます。
今回の記事では今旬であり単純なコードなのでAOAISリソースをリソースグループと共に作成しデプロイする例を示しましたが、OpenAI LLMアプリケーションの開発に必要となるAzureリソース(例えばBlob StorageやCosmos DB、App Serviceなどなど)もモジュール化してより実用的にご活用いただければと思います。コード化しておくことで冪等性がある状態になりますので、テストや検証環境が容易に用意できるようになりますしその後の横展開もしやすくなります。
もちろんこのようなインフラの部分だけですべて解決とはならずLLMアプリケーション開発にあたっては他にも色々とお困りごとが出てくるかもしれませんが、その際にはぜひとも法人でのAzure導入前の相談窓口であるAzure相談センターまでお気軽にお問い合わせいただけますと幸いです。弊社では、ユーザー様のご状況やご要望を踏まえて最適な形でのAzureの導入のご支援を提供しており、Azure に精通したスタッフが丁寧にご回答させていただきますし皆様のAzure OpenAI Serviceを活用したサービス開発の一助となるべく尽力いたします。
関連記事:Azure OpenAI Serviceとは?概要やChatGPTの利用についても解説
関連記事:そもそもAI(人工知能)とは?画像生成AIなど種類やモデルを解説
SB C&SのAzure OpenAI Service導入支援サービスの詳細はこちら
Azureの導入や運用に関するお悩みは SoftBankグループのSB C&Sにご相談ください
SoftBankグループのSB C&Sは、さまざまな分野のエキスパート企業との協力なパートナーシップによって、多岐にわたるAzure関連ソリューションをご提供しています。
「Azureのサービスを提供している企業が多すぎて、どの企業が自社にベストか分からない」
「Azure導入のメリット・デメリットを知りたい」
「Azureがどういう課題を解決してくれるのか知りたい」
など、Azureに関するお悩みならお気軽にお問い合わせください。
中立的な立場で、貴社に最適なソリューションをご提案いたします。
クラウドサーバーご検討中の方必見
お役立ち資料一覧
そのようなお悩みはありませんか?
Azure相談センターでは、上記のようなお悩みを解決する
ダウンロード資料を豊富にご用意しています。
是非、ご覧ください。
オンプレミスからクラウドへの移行を検討している方のために、安心・スムーズな移行を実現する方法を解説し、
運用コストの削減に有効な「リザーブドインスタンス」もご紹介するホワイトペーパーです。
導入から活用まで専門スタッフが回答いたします。
お気軽にお問い合わせください。