Microsoft Build 2024(AI) メモ

5/22-24 に開催された [Microsoft Build 2024](https://build.microsoft.com/) からもう一か月が経とうとしていますが、忘れぬよう(｡_｡)φﾒﾓﾒﾓ　

# 2024 年最新版 Copilot stack
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/3be5bde1-6939-c43b-e782-a3ec1a0080e0.png)

Microsoft の EVP である Scott Guthrie がこの Copilot stack を「AI の機能とソリューションを作成するための最も高度なプラットフォーム」と表現した通り、以前には無かったデータレイヤー、AI ツールチェーン、そして開発ツールを追加し Copilot 開発に必要なラインナップが出揃ったという印象です。このスタックを用いることでソリューション開発に必要な技術要素を整理するための指針になるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/cc94d032-6287-ceef-879e-ad3747d8618e.png)

Copilot stack を Azure で構築する場合は、このような Azure AI のプロダクトスタックが見えてきます。現在、53,000 の企業や政府が Azure AI を利用していますが、Copilot 開発の中心地は Azure AI Studio です。モデル選択からベンチマーク、実験、処理フロー、デプロイ、監視とエンタープライズ LLM 開発に必要な要素がすべて統合されています。

## Azure AI Updates
今一番アツイと言っても過言ではない、Azure AI のアップデート一覧はこのようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/2fe0e8d8-f065-b394-c56e-78b8ec09487b.png)

- GPT-4o の GA
OpenAI 社のリリースと同日に Azure OpenAI で利用可能になりました。これまでにない連携の早さです。[AI Challenge Day](https://ascii.jp/elem/000/004/199/4199213/) という RAG コンテストの第二弾を開催するにあたり評価しましたが、GPT-4v と比較して日本語の Wikipedia にかなり詳しく、写真の説明能力も向上していることが分かりました。

- Fine-tuning for GPT-4
[GPT-4 でも Fine-tuning](https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/announcing-fine-tuning-for-gpt-4-ai-studio-support-and-api/ba-p/4146859) が可能になりました。そして Build 後にはトレーニングの費用がトークン課金制に変更されたことでコスト削減も見込めます。

- Batch API
OpenAI API からの返却が同期的でなく最大 24 時間以内の非同期であれば価格が半額になるという新しい API です。社内リポジトリなどをバッチ的に一度に大量の変換をかけたいなどのシナリオにぴったりです。

 - 設定可能なコンテンツフィルター
 Build でも責任ある AI は重要視されており、積極的に機能拡張が行われています。新機能として、[カスタムカテゴリ](https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/announcing-custom-categories-in-azure-ai-content-safety/ba-p/4147024)、[プロンプトシールド](https://review.learn.microsoft.com/azure/ai-services/openai/concepts/content-filter?branch=main&tabs=warning%2Cpython-new#prompt-shields)、[Groundedness 検知](https://learn.microsoft.com/azure/ai-services/content-safety/concepts/groundedness)があります。

- 

# LLM アプリパターンの分類
以下のような見せ方好きですね。
プロンプトエンジニアリング＋RAG / Function calling・Planning / エージェントの分類。今後はマルチエージェントのような、別々の役割（System メッセージ）を実装したエージェントを複数繋げて複雑な処理に対応することも必要になってくるかと思います。開発しているソリューションの整理にも役立ちそうですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/964b7377-8f67-4070-ab5f-3725f1c6da7d.png)

複数の社内システムから Function calling で情報を取得することも可能ですし、AutoGen のような複数の専門家エージェント間の対話によって難しいタスクを解決するなんてことも可能です。Function calling → マルチエージェントへの発展は[こちら](https://qiita.com/nohanaga/items/fa9f5260cf85a7fddc52)のシリーズで解説しています。

## Assistants API
Assistants API に大きなアップデートがありましたね。ファイル検索ツール（ベクトルストア）が追加されました。ファイル検索ツールはドキュメントを自動的に解析してチャンク化し、Embeddings を作成して保存し、ベクトル検索とキーワード検索の両方を使用して関連コンテンツを取得してユーザーのクエリに答えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/7b46fa03-927b-3fa5-554c-793fb123276b.png)

他にも Coming soon を含めると以下のような感じになってます。Bing 検索を活用したブラウズツールが追加予定ということで待ち遠しいですね。Assistants API の GPT-4o 対応はよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/e5bd3d29-6720-6da7-53ce-301694e63c53.png)

Assistants API の詳細なアップデート情報は以下にまとめてあります。

https://qiita.com/nohanaga/items/06bcda10563fb59f8fb8

## Azure AI Studio
LLM 開発のユニファイドプラットフォームの  Azure AI Studio は GA となりました。UI の改善や評価機能の強化、Prompt Flow SDK の強化などが行われています。自分でモデルを選択して、そのモデルを使ってすぐに RAG アプリケーションを開発したいケースなどに使えます。

https://learn.microsoft.com/azure/ai-studio/whats-new#may-2024

![スクリーンショット 2024-06-19 14.55.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/23c7f6a8-cdfb-376c-bc07-b3dba0445626.png)

### トレースとデバッグ

個人的に便利だと思った新機能がトレースとデバッグですね。Prompt Flow のトレース機能を使用すると、さまざまな  Agent や LangChain、AutoGen、Semantic Kernel、RAG などの生成 AI アプリケーションの実行プロセスを可視化できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/5f956a3a-66bf-0e2b-8d43-830921f0c99c.png)

実行するには [promptflow](https://pypi.org/project/promptflow/) をインストールして以下のようなおまじないを最初に実行するだけです。Azure AI Studio およびローカル環境の 2 つに実行ログが生成されます。

```python
from promptflow.tracing import start_trace

start_trace(collection="trace-openai")
```

https://qiita.com/nohanaga/items/58d9b82e8b4d741f6a4e

## Prompty
[Prompty](https://microsoft.github.io/promptflow/tutorials/prompty-quickstart.html) は Build で突如現れたプロンプトテンプレート形式です。マイクロ・オーケストレーターとも呼んでいました。プロンプトテンプレートに API の実行設定を入れ込むことで再現性や可読性の向上、CI との連携を狙っているのでしょうか。

![スクリーンショット 2024-06-19 15.14.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/36250ec0-1bad-d9f5-2152-3044a3855487.png)

ちなみに Prompty の立ち位置は以下のような場所とのこと。「マイクロ・オーケストレーター」とも呼んでいましたね。上記トレース機能の評価のところで一緒に[試しています](https://qiita.com/nohanaga/items/58d9b82e8b4d741f6a4e)。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/484234e7-9fc2-4378-6aa8-dfc72e1370e9.png" width="50%"/>

https://microsoft.github.io/promptflow/tutorials/prompty-quickstart.html

# 基盤モデル
## Model Catalog
Azure AI Studio および Azure Machine Learning のモデルカタログから選択・デプロイできるモデルがさらに増えました！現在は 1,673 モデルあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/71d12a75-84df-877a-8bca-cff6c03e3ef7.png)

### Model as a Service（MaaS）
Model as a Service（MaaS） は Microsoft による新時代のモデル提供形態です。Maas により開発者はフルマネージドの API を利用できるため、GPU インフラの管理にワークロードを割く必要がなくなります。これによりスケーラビリティや安定性が手に入ります。以下のモデルはトークンベースの従量課金制で利用することができます。

- Llama-3-70B-Instruct
- Llama-3-8B-Instruct
- Llama-2-7b, -chat
- Llama-2-13b, -chat
- Llama-2-70b, -chat

- [Mistral-large](https://techcommunity.microsoft.com/t5/ai-machine-learning-blog/introducing-mistral-small-empowering-developers-with-efficient/ba-p/4127678)
- Mistral-small
- [Cohere-command-r](https://techcommunity.microsoft.com/t5/ai-ai-platform-blog/announcing-cohere-command-r-now-available-on-azure/ba-p/4103512), -plus
- Cohere-embed-v3-multilingual, -english
- [jais-30b-chat](https://techcommunity.microsoft.com/t5/ai-ai-platform-blog/introducing-jais-arabic-centric-large-language-model-on-azure/ba-p/4137329)
- Phi-3-mini-4k-Instruct, 128k-Instruct
- Phi3-medium-4k-instruct, 128k-instruct

- [TimeGEN-1](https://techcommunity.microsoft.com/t5/ai-machine-learning-blog/announcing-timegen-1-in-azure-ai-leap-forward-in-time-series/ba-p/4140446)

日本語が使える Cohere のモデルについては、Cohere-embed-v3-multilingual による Embeddings 検証をすでに実施済みです。

https://qiita.com/nohanaga/items/fd04e2223b8a237cf335

ちなみに気になるデータプライバシーについては、以下のように規定されているため安心してお使いいただけます。

> Microsoft は、これらのプロンプトと出力をモデル プロバイダーと共有しません。また、Microsoft は、Microsoft、モデル プロバイダー、またはサード パーティのモデルをトレーニングまたは改善するために、これらのプロンプトと出力を使用しません。 モデルはステートレスであり、プロンプトや出力はモデルに保存されません。 

https://learn.microsoft.com/ja-jp/azure/machine-learning/concept-data-privacy?view=azureml-api-2#generate-inferencing-outputs-with-serverless-apis-models-as-a-service

## Phi-3, Cloud↔Edge
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/fc29a904-b373-7c41-a74c-e790d79c7a4d.png)

記事書き中...

# データ
今回の Build では多くのデータベースがベクトル検索機能に対応したとの発表が相次ぎました。この流れは止まりそうにないですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/7db5cd1e-e12b-d82f-14ce-21ace2f7ae05.png)


## Azure AI Search
Microsoft にとって[最も急速に成長しているサービスの 1 つ](https://qiita.com/nohanaga/items/d0922a812a41af2c7f64#satya-%E3%81%AF-azure-search-%E3%81%AF-chatgpt-%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E8%AA%9E%E3%82%8B)である Azure AI Search ですが、Satya の Keynote では以下 1 枚出すだけで終わってしまいました。ですが翌日ビッグな採用事例の発表がありましたね。機能としては、LLM 連携を強化する新機能が追加されました。今回の新機能はベクトル検索機能の強化、マルチモーダル検索の強化、Fabric OneLake との統合の 3 つにフォーカスしています。詳しい機能紹介は以下の [Qiita](https://qiita.com/nohanaga/items/54e74cea41a278c47a5c) にて紹介しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/6db90b6f-69b3-97e0-e24b-02c830924bf2.png)

https://qiita.com/nohanaga/items/54e74cea41a278c47a5c

### OpenAI 社採用事例
史上最も急速に成長している消費者向けサービスである **OpenAI 社の ChatGPT において、GPTs および Assistants API に Azure AI Search が採用**される！うぉぉぉ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/191301b2-fade-eeee-9bb1-17c30b105218.png)

### 動画と対訳

https://qiita.com/nohanaga/items/b00f960ac20a4ce536a9



## Azure Cosmos DB
- Low-latency, clound-scale vector search backend by DiskANN
→ちゃんと書く

## Azure Database for PostgreSQl
- Azure AI extension for Azure Database for PostgreSQl
- In-database embeddings in Azure Database for PostgreSQl

## Microsoft Fabric
Copilot stack のデータレイヤーにおける重要サービス。以下に素晴らしいまとめがあります。

https://qiita.com/yangjiayi/items/287bf2d6a2fafee6b3f2

## データプラットフォームの AI 統合
今後のビジョン。AI には高品質なデータが必要であり、そのデータを蓄積・加工できるデータ基盤の整備も必要になってきますよねと。Azure AI Search には [OneLake ファイル インデクサー](https://learn.microsoft.com/azure/search/search-how-to-index-onelake-files)が搭載されました。構造化データのリアルタイム分析→ OpenAI これやりたいですね。

![スクリーンショット 2024-06-19 16.15.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674344/3612f63c-8269-c15d-15eb-ac6c987f41fd.png)

https://techcommunity.microsoft.com/t5/ai-ai-platform-blog/driving-ai-innovation-across-digital-landscapes-azure-ai-and/ba-p/3978686

# Microsoft Build 2024 Newsbook
Updates はこちらを参照

https://news.microsoft.com/build-2024-book-of-news/ja/