本家Open AIとAzure OpenAIの違いについてまとめてみる[2023/12更新]

<!--
title: 本家Open AIとAzure OpenAIの違いについてまとめてみる
tags: OpenAI, Azure,AzureOpenAIService, ChatGPT, GenerativeAI
-->

![1_EyeCatch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/a5c50163-bea2-6240-3c64-05a72865a4b9.png)

# ご挨拶と宣伝
こんにちは、京セラコミュニケーションシステム　貫見（[@kccs_haruki-nukumi](https://qiita.com/kccs_haruki-nukumi)）と申します。

弊社のXでは、Qiita投稿に関する情報や各種セミナー情報をお届けしております！
情報収集や学びの場を求める方々にぜひフォローしていただき、最新情報を手に入れてください！

https://x.com/kccs_digital

# はじめに

最近 業務の中で生成AIに触れる機会があったのですが、その際 **本家OpenAIとAzure OpenAIってどう違うんだ？どう使い分けるのが良いのか？** と疑問に思うことがありました。おそらく同じような疑問や悩みを持っている方もいらっしゃると思いますので、様々な観点から比較してみた結果を記事にします。

調べたりまとめたり検証したりがまぁまぁ大変だったので、誰かの役に立つことを祈ってます。。。
(もし、間違いや不足、新情報があればコメントお願いいたします)


:::note warn
**本稿の留意点**
1. 　この記事は **2023/12/6時点** の情報をもとに記載しています。
　最新の情報は各章に記載している参考文献の参照をお願いいたします。
2. 　一部 私の**主観的な意見を含みます**のでご注意ください。
:::


# 追記
**2023/12/19 追記**
　Azure OpenAIでもマルチモーダルAI（GPT-4v）が利用可能になりました。

https://qiita.com/kccs_haruki-nukumi/items/16aca479532a53c11034


# 機能

### 利用可能なモデル
本家OpenAIで公開されているモデル一覧を軸に比較します。
なお、Azure OpenAIの　`プレビュー`モデルは利用可能なリージョンが限定されています。
| MODEL | DESCRIPTION | 本家OpenAI | Azure OpenAI |
| --- | --- | --- | --- |
| `GPT-4` and `GPT-4 Turbo` | GPT-3.5を改良し、自然言語やコードを理解・生成できるモデル群 | ◯ | ◯　`プレビュー`|
| `GPT-3.5`| GPT-3を改良し、自然言語やコードを理解・生成できるモデル群 | ◯ | ◯ |
| `DALL-E` | 自然言語のプロンプトを与えて画像を生成・編集できるモデル | ◯ | ◯　`プレビュー`|
| `TTS` | Text-to-speech。テキストを自然な音声に変換できるモデル群 | ◯ | ✕ |
| `Whisper` | 音声をテキストに変換できるモデル | ◯ | ◯　`プレビュー` |
| `Embedding`| テキストを数値に変換できるモデル群 | ◯ | ◯ |
| `Moderation` | テキストが敏感か安全でないかを検出できる微調整モデル | ◯ | △ <br> (コンテンツー機能として提供)|
| `GPT base`| 命令に従わなくても、自然言語やコードを理解したり生成したりできるモデル群 | ◯ | ✕ |
| `GPT-3` | 自然言語を理解し、生成できるモデルのセット | ◯ | ✕ |

なお、最新モデルが利用可能になる時期については、直近で追加された `Whisper` や `GPT-4 Turbo`の例からみると、同時ではなくAzure OpenAIが追従する形になると思われます。

参考文献：
- [OpenAI - models](https://platform.openai.com/docs/models)
-  [Microsoft - Azure OpenAI Service モデル](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/concepts/models)
- [Microsoft - Azure OpenAI Service レガシ モデル](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/concepts/legacy-models)

### マルチモーダルAI
~~現時点ではAzure OpenAIからは提供されていませんが、マルチモーダルAIの影響力を考えると正直 時間の問題だと思います。~~
両者ともに対応していますが、Azure OpenAI独自の「Vision Enhancement機能」によって動画の入力にも対応しています。
|| 本家OpenAI | Azure OpenAI |
| --- | --- | --- | 
|テキスト+画像| ◯ | ◯　`プレビュー` |
|テキスト+動画| ✕ | ◯　`プレビュー` |
|テキスト+音声| ✕ | ✕ |

参考文献：
- [Microsoft - Do the GPT-4 models currently support image input?](https://learn.microsoft.com/en-us/azure/ai-services/openai/faq#do-the-gpt-4-models-currently-support-image-input-)
- [OpenAI - GPT-4](https://openai.com/research/gpt-4)

### ファインチューニング
両者ともに対応しています。対象モデルも同じでした。
| 本家OpenAI | Azure OpenAI |
| --- | --- | 
| ◯ | ◯　`プレビュー` |

参考文献：
- [OpenAI - Fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
- [Microsoft - 微調整によってモデルをカスタマイズする (プレビュー)](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/how-to/fine-tuning?tabs=turbo%2Cpython&pivots=programming-language-studio)


### 認証

|| 本家OpenAI | Azure OpenAI |
| --- | --- | --- | 
|REST API| APIキー | APIキー <br> Microsoft EntraID　(旧称 Azure Active Directory) |

参考文献：
- [OpenAI - api-reference](https://platform.openai.com/docs/api-reference/authentication)
- [Microsoft - Azure OpenAI Service の REST API リファレンス](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/reference)


# 価格


### イニシャルコスト
本家Open AI、Azure OpenAI共に初期費用は不要です。

### ランニングコスト
各モデルごとに価格が異なります。
すべて記載するとキリがないので代表的なモデルに関して比較します。
| モデル | 本家OpenAI<br>input / output <br>(1,000トークンあたり) | Azure OpenAI <br>input / output <br> (1,000トークンあたり) |
| --- | --- | --- |
| `GPT-3.5-Turbo` | ＄0.0015  / ＄0.002 | ＄0.0015 / ＄0.002 |
| `GPT-3.5-Turbo-16k` | ＄0.0010  / ＄0.002 | **＄0.0030 / ＄0.004** |
| `GPT-4` | ＄0.03  / ＄0.06 | ＄0.03 / ＄0.06 |
| `GPT-4-32k`| ＄0.06  / ＄0.12 | ＄0.06 / ＄0.12 |
| `GPT-4 Turbo` | ＄0.01 / ＄0.03 | ＄0.01 / ＄0.03 |

（なんで`GPT-3.5-Turbo-16k`だけ、価格が違うんや・・・）

<br>

なお、前章で触れたファインチューニングモデルに関しては両者でかなり違うため別表にまとめます。大きな違いはこの辺りです。
- Azure OpenAIの場合はモデルのホスティング料金が発生する
- 本家とAzureでトレーニングの課金基準が、学習時間と使用トークンで異なる

| | トレーニング | input(1,000トークンあたり) | output(1,000トークンあたり) | ホスティング|
| --- | --- | --- |--- |--- |
|本家OpenAI 　`GPT-3.5-Turbo`  | ＄0.008/1,000トークンあたり | ＄0.0030 | ＄0.006 | - |
|Azure OpenAI 　`GPT-3.5-Turbo`  | ＄102/1時間あたり  | ＄0.0015 | ＄0.002 |＄7/1時間あたり|
|本家OpenAI 　`davinci-002`  |  ＄0.006/1,000トークンあたり | $0.0120 | $0.0120 | - |
|Azure OpenAI 　`davinci-002`  | ＄68/1時間あたり  | ＄0.002 | ＄0.002 |＄3/1時間あたり|


参考文献：
 - [Mictosoft - Azure OpenAI Service 価格 | Microsoft Azure](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/openai-service/)
     - 執筆時点ではリージョンごとの価格差が無い（ように見える）ので、東日本リージョンを参考
 - [Mictosoft - Azure OpenAI Service Launches GPT-4 Turbo and GPT-3.5-Turbo-1106 Models | Microsoft Azure](https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-openai-service-launches-gpt-4-turbo-and-gpt-3-5-turbo-1106/ba-p/3985962)

 - [OpenAI - Pricing](https://openai.com/pricing)

# 利用の容易さ

### 利用開始までの手続き
気軽に利用できるのは本家OpenAIが優勢です。
| 本家OpenAI | Azure OpenAI |
|--- | --- | 
|OpenAIアカウントを作成→API Keyを発行すれば即日利用可能|Azure サブスクリプションの発行に加え、現時点では別途 申請が必要。|

特に、Azure OpenAIの場合以下の通りMicrosoft側の許可が必要なため、利用開始までに数日を要することがあります。
（2023年11月に弊社で実際に申請した際は、許可まで約3日ほどかかりました。）
>[クイック スタート: Azure OpenAI Service を使用してテキストの生成を開始する](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/quickstart?tabs=command-line%2Cpython&pivots=programming-language-studio)
>現時点では、このサービスへのアクセスは申請によってのみ許可されます。 Azure OpenAI へのアクセスを申請するには、https://aka.ms/oai/access のフォームに入力してください。 問題がある場合は、このリポジトリで問題をオープンしてお問い合わせください。


### Pythonライブラリ
両者ともにPythonライブラリがサポートされています。
多少 パラメーターの違いはありますが、以下のページを見てもらえればわかる通り、微々たる差だと感じました。

https://learn.microsoft.com/ja-jp/azure/ai-services/openai/how-to/switching-endpoints

# パフォーマンスと可用性

### レイテンシー
両者ともREST APIの応答時間に関するSLAは定義されていなかったので、それぞれ50回ずつAPIをCallするPythonスクリプトを作成し、1リクエストあたりの応答時間を計測した結果を載せておきます。ただし、この計測結果には応答がなかった場合は含まれておらず、その場合はスクリプトを再実行して50回連続でcallできた結果を採用しています。

|| 本家OpenAI | Azure OpenAI |
| --- | --- | --- | 
|平均応答時間| 1.665991129s | 1.07507255s |
|最大応答時間| 7.379024744s | 1.623869181s |
|最小応答時間| 0.857106924s | 0.871722937s |

完全に同じ条件で比較できた訳ではないですが、**Azure OpenAIに軍配**があがりました。
実行中の様子をみても、Azure OpenAIは安定して応答が返ってくる一方で、
本家OpenAIの方は応答時間が安定しなかったり、そもそも応答が帰ってこないこともあったりして、5回程 再実行してようやく結果が得られました。 

(この辺りはアプリケーション側で考慮が必要だと感じました)

ちなみに検証条件は次の通りです。
- 共通の条件
    - 使用したモデル： `GPT-3.5-Turbo`
    - プロンプト："Say this is a test in Japanese."
      - レスポンス内容による応答時間への影響を極力減らすため、発言内容を指定しました
    - 自宅PC(東京)から、日本時間の20:00頃に実行
    - APICall→処理時間計測後、お気持ち程度の負荷軽減sleep(0.5s)
- Azure OpenAI
    - リソースはEAST USを使用（本家OpenAIはリージョン指定不可）


参考文献：
- [Microsoft - Azure OpenAI での API 応答の SLA はどのようになっていますか?](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/faq#azure-openai----api-----sla---------------)
- [OpenAI - Is there an SLA for latency guarantees on the various engines?](https://help.openai.com/en/articles/5008641-is-there-an-sla-for-latency-guarantees-on-the-various-engines)

### 可用性
エンタープライズ目的では欠かせないSLAについては以下の通りです。
|| 本家OpenAI | Azure OpenAI |
| --- | --- | --- | 
|SLA| 定義なし | 99.9%以上の稼働率を保証 |

なお、Azure OpenAIの場合はサービスレベルを満たさなかった場合、サービスクレジットが適用されるそうです[^1]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974422/3c71a129-ec5c-2106-42de-64b2cb75cc11.png)

参考文献：
- [Microsoft - Service Level Agreements (SLA) for Online Services](https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-Services?lang=1)
    - 「Service Level Agreement for Microsoft Online Services (WW)」の2023年11月版

[^1]:[Microsoft - Service Level Agreements (SLA) for Online Services](https://www.microsoft.com/licensing/docs/view/Service-Level-Agreements-SLA-for-Online-Services?lang=1) 「Service Level Agreement for Microsoft Online Services (WW)」の2023年11月版から参照


# セキュリティ/データ保護
サービスやアプリケーションのセキュリティ対策やデータ保護については以下の通りです。
「認証」章とも併せて、Azure OpenAIのほうがよりセキュアな構成を実現可能です。
|| 本家OpenAI | Azure OpenAI |
| --- | --- | --- | 
|ユーザーから提供されたデータの保護| モデルをトレーニング/改善するために使用することはない <br> ※SaaSの場合、設定から"Chat History ＆ Training"をオプトアウトが必要 | モデルをトレーニング/改善するために使用することはない |
|ネットワーク|インターネット経由のみ（パブリックエンドポイント） |インターネット経由 or <br> Microsoftバックボーンネットワーク(Plivate link)|

参考文献：
- [Microsoft - Data, privacy, and security for Azure OpenAI Service](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/data-privacy?context=%2Fazure%2Fcognitive-services%2Fopenai%2Fcontext%2Fcontext#training-data-for-purposes-of-fine-tuning-an-openai-model)
- [OpenAI - Enterprise privacy at OpenAI](https://openai.com/enterprise-privacy)

# サポート

| 本家OpenAI | Azure OpenAI |
| --- | --- |
| [OpenAI社 Helpページ](https://help.openai.com/en/) からチャットで問い合わせ <br> or [コミュニティフォーラム](https://community.openai.com/categories) <br>  | [Azureサポートプラン](https://azure.microsoft.com/ja-jp/support/plans) ※ 有料プランあり|

参考文献：
[OpenAI - How can I contact support?](https://help.openai.com/en/articles/6614161-how-can-i-contact-support)
[Microsoft - Azure OpenAI カスタマー サポートはどこで受けられますか?](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/faq#azure-openai-----------------------)


## 終わりに
今回は本家OpenAIとAzure OpenAIの違いについてまとめてみました。

弊社では、他にもデジタルトランスフォーメーション(DX)に関する技術情報を中心に公開しております。もし今回の記事が参考になった方は、ぜひ[他の記事](https://qiita.com/organizations/kccs-digital-solution)も見ていただけると幸いです！