Closed4
Azure CLIでAzure OpenAI Serviceの各リージョンで提供されているモデルを調べてみる
Azure OpenAI Serviceのリージョンごとのサポートは以下のドキュメントにあるが、
Azure Portalで見ると、
- Azure PortalからOpenAI Serviceのリソースを作成するときのリージョンに、ドキュメントに書いてないリージョンが出てくる(Japan EastとかNorth Central USとか)
- 多分更新が追いついていないだけかな。
- 以下のような場合がある。
- ドキュメントに記載されているのに表示されないリージョンがある(South Central US、新規利用停止中とドキュメントには記載されている)
- ドキュメントに記載されているが表示されないモデルがある(East USのgpt-35-turbo-16kとか)
- 推測だけど、Azure側のリソースが足りなくて利用できない場合は「表示しない」ということなのかな。
という感じで、Azure OpenAI Servieが非常に人気があるという現状もあるんだろうけど、全体的にわかりにくい印象を持った。
個人的には、
- そもそもどのリージョンでAzure OpenAIサービスが使えるのかをフラットに知りたい
- その上で、各リージョンが提供するモデルをフラットにリストアップしたい、利用できるかどうかに関係なく
- その上で、現在利用できるかどうかをそれを知りたい
- ドキュメントとAzure Portalを横断せずに、1つのインタフェースでこれを知りたい
ということで、Azure CLIでできないのかを試してみる次第。Azure CLIになれるというのもありで。
※現時点ではできるかどうかはわからない
リージョン一覧取得。regionTypeに"Physical"と"Logical"があるけど、"Logical"だと「アジア」みたいなデカいくくりの論理的なリージョンになるようなので、"Physical"に限定している。(これが正しいのかはわからない)
$ az account list-locations | jq -r '.[] | select(.metadata.regionType == "Physical") | [.name, .regionalDisplayName] | @tsv'
eastus (US) East US
eastus2 (US) East US 2
southcentralus (US) South Central US
westus2 (US) West US 2
westus3 (US) West US 3
australiaeast (Asia Pacific) Australia East
southeastasia (Asia Pacific) Southeast Asia
northeurope (Europe) North Europe
swedencentral (Europe) Sweden Central
uksouth (Europe) UK South
westeurope (Europe) West Europe
centralus (US) Central US
southafricanorth (Africa) South Africa North
centralindia (Asia Pacific) Central India
eastasia (Asia Pacific) East Asia
japaneast (Asia Pacific) Japan East
koreacentral (Asia Pacific) Korea Central
canadacentral (Canada) Canada Central
francecentral (Europe) France Central
germanywestcentral (Europe) Germany West Central
italynorth (Europe) Italy North
norwayeast (Europe) Norway East
polandcentral (Europe) Poland Central
switzerlandnorth (Europe) Switzerland North
uaenorth (Middle East) UAE North
brazilsouth (South America) Brazil South
centraluseuap (US) Central US EUAP
israelcentral (Middle East) Israel Central
qatarcentral (Middle East) Qatar Central
brazilus (South America) Brazil US
eastusstg (US) East US STG
northcentralus (US) North Central US
westus (US) West US
japanwest (Asia Pacific) Japan West
jioindiawest (Asia Pacific) Jio India West
eastus2euap (US) East US 2 EUAP
westcentralus (US) West Central US
southafricawest (Africa) South Africa West
australiacentral (Asia Pacific) Australia Central
australiacentral2 (Asia Pacific) Australia Central 2
australiasoutheast (Asia Pacific) Australia Southeast
jioindiacentral (Asia Pacific) Jio India Central
koreasouth (Asia Pacific) Korea South
southindia (Asia Pacific) South India
westindia (Asia Pacific) West India
canadaeast (Canada) Canada East
francesouth (Europe) France South
germanynorth (Europe) Germany North
norwaywest (Europe) Norway West
switzerlandwest (Europe) Switzerland West
ukwest (Europe) UK West
uaecentral (Middle East) UAE Central
brazilsoutheast (South America) Brazil Southeast
リージョン一覧のnameごとにモデルの一覧を参照する。例えば東東京の場合。
$ az cognitiveservices model list -l japaneast | jq -r '.[] | select(.kind == "OpenAI") | .model | [.name, .version] | @tsv'
gpt-35-turbo 0613
gpt-35-turbo-16k 0613
gpt-4 1106-Preview
gpt-4 0613
gpt-4-32k 0613
gpt-4 vision-preview
ada 1
text-embedding-ada-002 2
babbage 1
curie 1
davinci 1
これを繰り返せば全リージョンのモデル一覧が取れる。スクリプト書いてみた。
get_all_model.sh
#!/bin/bash
tmpfile=$(mktemp "/tmp/${0##*/}.tmp.XXXXXX")
az account list-locations | jq -r '.[] | select(.metadata.regionType == "Physical") | [.name, .regionalDisplayName] | @tsv' > $tmpfile
while read region_name region_display_name
do
models=$(az cognitiveservices model list -l $region_name | jq -r '.[] | select(.kind == "OpenAI") | .model | [.name, .version] | @tsv')
if [ -n "$models" ]; then
echo "$models" | sed -e "s/^/${region_display_name}\t${region_name}\t/"
fi
sleep 1
done < $tmpfile
$ bash /get_all_model.sh | sort > /tmp/all_models.lst
/tmp/all_models.lst
(Africa) South Africa North southafricanorth ada 1
(Africa) South Africa North southafricanorth babbage 1
(Africa) South Africa North southafricanorth curie 1
(Africa) South Africa North southafricanorth davinci 1
(Africa) South Africa North southafricanorth gpt-35-turbo 1106
(Africa) South Africa North southafricanorth gpt-4 0613
(Africa) South Africa North southafricanorth gpt-4-32k 0613
(Africa) South Africa North southafricanorth text-embedding-ada-002 2
(Asia Pacific) Australia East australiaeast ada 1
(Asia Pacific) Australia East australiaeast babbage 1
(snip)
例えばVisionモデルがリリースされているリージョンを抽出するとか。
$ grep -i "vision" all_models.lst
(Asia Pacific) Japan East japaneast gpt-4 vision-preview
(Europe) Sweden Central swedencentral gpt-4 vision-preview
(US) West US westus gpt-4 vision-preview
東日本とアメリカ東部2を比較してみるとか。
$ diff -y <(grep "japaneast" all_models.lst | awk -F"\t" '{ print $3, $4 }' | sort) <(grep "eastus2" all_models.lst | awk -F"\t" '{ print $3, $4 }' | sort)
ada 1 ada 1
babbage 1 babbage 1
curie 1 curie 1
davinci 1 davinci 1
gpt-35-turbo 0613 gpt-35-turbo 0613
gpt-35-turbo-16k 0613 gpt-35-turbo-16k 0613
gpt-4 0613 gpt-4 0613
gpt-4 1106-Preview gpt-4 1106-Preview
gpt-4 vision-preview <
gpt-4-32k 0613 gpt-4-32k 0613
> text-embedding-3-large 1
> text-embedding-3-small 1
text-embedding-ada-002 2 text-embedding-ada-002 2
定期的に実行した結果をファイルに残しておいて、前回とdiffとれば、新しいモデルがリリースされたら検知とかもできるはず。
対応していないリージョンだとこういうのが出るんだけど、
Code: NoRegisteredProviderFound
Message: No registered resource provider found for location 'brazilsoutheast' and API version '2023-05-01' for type 'locations/models'. The supported api-versions are '2023-05-01, 2023-06-01-preview, 2023-10-01-preview'. The supported locations are 'global, australiaeast, brazilsouth, westus, westus2, westeurope, northeurope, southeastasia, eastasia, westcentralus, southcentralus, eastus, eastus2, canadacentral, japaneast, centralindia, uksouth, japanwest, koreacentral, francecentral, northcentralus, centralus, southafricanorth, uaenorth, swedencentral, switzerlandnorth, switzerlandwest, germanywestcentral, norwayeast, westus3, jioindiawest, qatarcentral, canadaeast, polandcentral, southindia, italynorth'.
APIバージョンとか気にしないといけないのかな?Azure CLIのオプションにはそういうのなさそうに思えるのだけど、Azure CLI自体をバージョンアップしないといけないとかなんだろうか?
あとリージョンがよくわからないな。なんだろう"global"リージョンってのは?
$ az cognitiveservices model list -l global | jq -r '.[] | select(.kind == "OpenAI") | .model | [.name, .version] | @tsv'
ada 1
davinci 1
curie 1
このスクラップは2024/02/15にクローズされました