BLOGAzureブログ

Azure OpenAI ServiceリソースデプロイをBicepモジュールでやってみよう

2023.10.02

クラウドサーバーご検討中の方必見 お役立ち資料一覧

皆さまこんにちは、SB C&Sの八釼です。
以前に過去に掲載したこの記事にてご紹介したBicepですがAzure OpenAI Service(AOAIS)にも活用できますので今回はそこに触れてみたいと思います。

また、せっかくなのでBicepの方も少し掘り、「モジュール」に触ます。業務でBicepを活用するなら使わないという選択肢はない存在ですので、何となくでもイメージを掴んでいただければと思います。

なお、この記事ではBicepコードの書き方やルール、デプロイのやり方などの詳細については解説しませんのでご了承ください。

0.Azure Container Registry(ACR)をまずはデプロイしよう

はい、パニックですね。コンテナ型仮想化に関係する話がどこから出てきたんだ?ですね。ただ、ご安心ください。今回コンテナは絡みません。

一般的にはコンテナイメージを保存しておくためのマネージドレジストリサービスなのですが、実はBicepファイル(コード)用のプライベートレジストリとしても使えるのです。というか組織内でBicepコードを共有し効率的に運用していくためにはこのサービスを活用するしか道はありません。

ACRインスタンス(コンテナレジストリ)の作成

ということで、今回の記事においては下準備といった立ち位置になりますがプライベートレジストリを用意しましょう。既存の都合の良いものがあればそれを使っても構いませんし、必要であれば作成しましょう。

さまざまな手段で作成できますが、もちろんこれについてもBicepでやってしまうという選択肢もあります。せっかくなので今回用いるACRインスタンスは以下のクイックスタートのコードを使ってデプロイしました。

クイック スタート |  Bicep ファイルを使用したコンテナー レジストリの作成

出来上がったものはこちらです。
deployed-CR.png

1.Bicepファイル(.bicep)の作成

過去に掲載したこの記事にて「リソースの作成」について触れましたが、今回はAzure portalからやるでもなくAzure CLIにてやるでもなく、Bicepコードを記述してやってみようと思います。

こちらについても以下のクイックスタートのコードをほぼそのまま使い、「aoais.bicep」というファイル名で保存しました。
微妙に修正した箇所としては

param location string = resourceGroup().location

のところで、= resourceGroup().locationを削除しました。後述する別のBicepファイルで記述するパラメーター(param)から値を渡すことにして、このファイルにおけるコードの記述をすっきりさせたかったためです。

クイック スタート |  Bicep を使用して Azure AI サービス リソースを作成する

ちなみに、モデルのデプロイまで一気にコードで記述しても良かったのですが、少々複雑になるので今回は割愛します。

2.モジュールとしてBicepファイルをレジストリに公開

先ほど作成した「aoais.bicep」というファイルを以下のAzure CLIコマンドにてACRインスタンスに公開します。

                    
                        $ az bicep publish \
                        --file ./aoais.bicep \
                        --target br:acrnup2nnqblzp7e.azurecr.io/bicep/modules/aoais:v1
                    
                

Azure portalから指定したとおりリポジトリが作成されているか確認してみます。
published-Bicep-module.png

はい、特に問題なさそうです。

なお、Azure PowerShellでの公開の仕方やAzure portalにて公開したファイルの表示方法などの詳細が確認したい場合には以下の公式ドキュメントをご確認ください。

公式ドキュメント |  Bicep を使用して Azure AI サービス リソースを作成する

3.モジュールを使用してリソースグループと併せてデプロイ

aoais.bicepのコードでは既存のリソースグループにデプロイすることになるのですが、今回は新規でリソースグループを作成しそこに所属するAOAISリソースをデプロイすることにしたいと思います。

新たなBicepファイルを一つ作成

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のリージョンを揃えたかったので、このコードでは同じになるようにしています。

いざ、デプロイ

deployed-aoais-instance.png

コードで指定した
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 エヴァンジェリスト
    SB C&S株式会社 ICT事業本部 クラウド・ソフトウェア推進本部 クラウドプラットフォーム推進統括部 マーケティング1部 販売推進課
yyatsurugi-image-v2.png

Azureの導入や運用に関するお悩みは SoftBankグループのSB C&Sにご相談ください

SoftBankグループのSB C&Sは、さまざまな分野のエキスパート企業との協力なパートナーシップによって、多岐にわたるAzure関連ソリューションをご提供しています。

「Azureのサービスを提供している企業が多すぎて、どの企業が自社にベストか分からない」
「Azure導入のメリット・デメリットを知りたい」
「Azureがどういう課題を解決してくれるのか知りたい」
など、Azureに関するお悩みならお気軽にお問い合わせください。
中立的な立場で、貴社に最適なソリューションをご提案いたします。

クラウドサーバーご検討中の方必見
お役立ち資料一覧

クラウドサーバーご検討中の方必見 お役立ち資料一覧
  • クラウドサーバーの導入を検討しているがオンプレミスとどう違うのか
  • AWSとAzureの違いについて知りたい
  • そもそもAzureについて基礎から知りたい
  • 今、話題の「WVD」って何?

そのようなお悩みはありませんか?
Azure相談センターでは、上記のようなお悩みを解決する
ダウンロード資料を豊富にご用意しています。
是非、ご覧ください。

Azureの導入・運用に役立つ資料を
無料でダウンロードしていただけますDOWNLOAD

オンプレミスからクラウドへの移行を検討している方のために、安心・スムーズな移行を実現する方法を解説し、
運用コストの削減に有効な「リザーブドインスタンス」もご紹介するホワイトペーパーです。

Azureのことなら、
SB C&Sにご相談を!

導入から活用まで専門スタッフが回答いたします。
お気軽にお問い合わせください。