Azure OpenAI Serviceの最新情報を最速で把握する方法

# はじめに

生成AIの進展は非常に早く、その最新の情報に追随し続けるのは大変です。
生成AIサービスを運営している場合、特に新規モデルのリリースや旧モデルの廃止の情報を敏感にwatchしていく必要があります。

https://zenn.dev/chips0711/articles/b4ab395089cb28

https://zenn.dev/incudata/articles/azure-japane-openai-deploy

この記事ではAzure OpenAI Serviceについて最新の情報を手に入れるにはどうすれば良いのかを調べた結果を紹介します。

# 公式のドキュメント

まずは公式ドキュメントを調べました。

https://learn.microsoft.com/ja-jp/azure/ai-services/openai/

このドキュメントには新機能のページがあり、重要な最新の情報が随時更新されています。

https://learn.microsoft.com/ja-jp/azure/ai-services/openai/whats-new

基本はここをみておけば良さそうです。

# 公式の英語ドキュメント

しかし毎日チェックしているうちに、より早い情報源があることに気づきました。

それは英語の公式ドキュメントです。

https://learn.microsoft.com/en-us/azure/ai-services/openai/whats-new

考えてみれば当たり前ですが、
日本語版は英語の記事を翻訳している都合上、4-5営業日程度の時間差がある模様です。

# 課題

さて、英語版の情報をwatchするようにしていたのですが、
What's newのページは特に新機能などの重要な更新情報を載せているので、個人的には重要なのだけれどマイナーな更新内容をキャッチできない、という問題があることがわかりました。

例えば、

- 東日本リージョンでは最新モデルがなかなか利用できず、GPT-4oモデルについてはSKUを購入するかGlobal Standard Deploymentを利用するしか方法がないのですが、Global Standard Deploymentのデータ所在地の説明が7月更新されており、**海外サーバにデータが保存されないことが明記**されていたり。
- また、GPT-4のvision-previewバージョンではAzure Computer Visionを使ったOCRができていたのですが、最近になって**Azure Computer Vision連携機能のチュートリアルがひっそりと削除されていたり。**

サービスの最新情報を把握するにはWhat's new以外のページもwatchしなければならず、しかも間違い探しのようなことをし続ける必要があって非常に辛いです。

そのため、自動化する方法を調査してみました。

# 公式ドキュメントのリポジトリ

**実はAzure OpenAI ServiceのドキュメントはGitHubのOSSプロジェクトとしてソースが公開されています。**

https://github.com/MicrosoftDocs/azure-ai-docs



このリポジトリをwatchすることで更新があれば通知を受けることが可能です。

しかし実際にwatchし始めたところ、
- 毎日更新がある
- GitHubで英語のDiffを読み解くのは辛い
- Azure OpenAI Service以外のドキュメントも入っているので、関係ない更新が多く含まれる

という問題があり、毎日確認するのは大変だということになりました。

# 生成AIを使って自動化する

さて毎日watchし続けるのはしんどいことがわかりましたが、面倒なことは生成AIにやらせれば良いのです。

幸い、ドキュメントはCC BY 4.0 (Attribution International)ライセンス （コードはMITライセンス）で提供されており、翻訳や要約を作成しても問題なさそうです。

今回、以下のような手順で要約を作成するGitHubリポジトリを開発しました。

1. GitHubのAPIを日次で実行して差分を取得
1. OpenAIのAPIを使って差分を解析し、要約を作成する
1. GitHub Pagesで要約をブログとして公開する

https://github.com/autotaker/diff-insight

GitHub Pagesはこちらです。

https://autotaker.github.io/diff-insight/

## 要約の例

例として9/28の更新内容の要約を示します。

```markdown
---
summary: |
  このドキュメント更新では、APIバージョンの更新、新しいパラメーターとオプションの追加、ツールリソース機能の拡充、モデル引退の通知プロセスの明確化、および開発プロセスに関する手順の詳細が中心となっています。
  APIのバージョンは`2024-05-01-preview`から`2024-08-01-preview`に更新され、新たに多様なパラメーターが追加されたことにより、ユーザーの柔軟性と利便性が向上しました。
  また、モデル引退に関する通知ガイドラインも明確化され、ライフサイクル管理が容易に行えるようになりました。
  全体として、これらの変更は開発者にとってよりスムーズなAPI利用体験を提供します。
---

# Highlights
このドキュメント更新では、以下の新機能と主要な変更点に焦点を当てています：
1. APIバージョンの更新
2. 新しいパラメーターとオプションの追加
3. ツールリソース機能の追加
4. モデル引退の通知プロセスの明確化
5. 開発プロセスに関する詳細な手順の追加

## New features
1. **APIバージョンの更新:** APIのバージョンが`2024-05-01-preview`から`2024-08-01-preview`に更新されました。
2. **新しいパラメーターとオプション:** `additional_instructions`、`additional_messages`、`temperature`、`top_p`、`max_prompt_tokens`及び`max_completion_tokens`といった新しいパラメーターが追加されました。
3. **ツールリソース機能:** `tool_resources`フィールドが追加され、特定のツールに対するリソースの管理が強化されました。
4. **開発プロセスの詳細:** データの取り込み、アプリケーションの開発、推論に関する具体的な手順が追加されました。
5. **ワークフローダイアグラム:** Azure OpenAI On Your Dataの利用プロセスを視覚化する新しいダイアグラムが追加されました。

## Breaking changes
特に重大な破壊的変更はありませんが、`file_ids`が`attachments`に変更されるなど、APIを利用する上でのパラメーター名の変更が行われています。

## Other updates
1. **モデル引退の通知プロセス:** モデル引退日の通知プロセスがより明確に定義されました。
具体的には、引退日が通常1年後に設定され、GAモデルについては少なくとも60日前、プレビュー版モデルについては少なくとも30日前に通知されることになりました。

# Insights
Azure OpenAIサービスにおけるAPIバージョンの更新や、各種パラメーター、ツールリソース機能の追加により、ユーザーにとっての柔軟性と利便性が大きく向上しました。
以下に各変更の意味とその背後にある意図を掘り下げてみます。

今回のAPIバージョンの更新は、おそらく新しいフィーチャーや最適化の導入を反映しています。
新しいパラメーターの追加（例えば、`additional_instructions`や`additional_messages`）は、ユーザーが実行ごとに細かい指示やメッセージを付加するための高い拡張性を提供すると同時に、出力のランダム性を管理するための`temperature`や`top_p`といったサンプリングオプションも追加されています。
これにより、ユーザーは生成されるテキストの質と予測性をより細かく調整できるようになりました。

また、`tool_resources`フィールドの追加により、特定のツールに対して必要なリソースを細かく設定できるようになりました。
例えば、コードインタープリターやファイル検索ツールに必要なファイルIDやベクターストアIDをリスト化することで、アシスタントの動作がより合理的かつ効果的に進行するようになります。

モデルの引退に関する情報提供に関する明確なガイドラインの導入も重要です。
これにより、ユーザーはモデルのライフサイクル管理をより効果的に行うことができるようになり、計画的な運用が可能になります。

Azure OpenAI On Your Dataに関する新しい開発プロセスの詳細が追加されたのも見逃せないポイントです。
データの取り込みからアプリケーションの開発、そして推論までの具体的な手順が示されていることで、開発者はよりスムーズに自身のデータを活用したAIソリューションを構築できます。
このプロセスを視覚化するためのワークフローダイアグラムの追加も、理解を助けるうえで非常に有益です。
```

https://autotaker.github.io/diff-insight/posts/202409/report-20240928-openai.html

要約はAI特有の不自然さや分類の不正確さはあるものの、英語のdiffを解読するのに比べるとはるかに読みやすくなりました。

# 結論

- １週間程度遅れても良いので日本語の正確な情報を知りたい人は[日本語の公式ドキュメント](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/)がおすすめです
- 公式の最新情報を知りたい方は[公式の英語ドキュメント](https://learn.microsoft.com/en-us/azure/ai-services/openai/)を翻訳して読みましょう
- 差分を知りたい人は拙作の[要約サイト](https://autotaker.github.io/diff-insight/)をご覧ください

生成AIゆえに要約の品質はまだイマイチですが、これで大まかに変更内容を把握し、気になるところはドキュメントを見に行くことで最新情報を漏らさず把握できるようになりました。

# 余談

他のクラウドベンダーはどうなの、っていうところですが、

- GoogleのドキュメントはCC BY 4.0 (Attribution International)で公開されているもののリポジトリが公開されているわけではないのでスクレイピングが必要
- AWSのドキュメントはOSSライセンスで公開されていない

ということで、同じ仕組みで実現するのは難しそうでした。もし違う情報をお持ちの方がいれば教えていただけると助かります。