Slide 1

Slide 1 text

#vsuc .NET の Unified AI Building Blocks 入門...! Visual Studio Users Community Japan 勉強会 #7 .NET Conf 2024 in Roppongi Tokyo 2024/11/30 (土) 日本マイクロソフト 大田 一希 (Kazuki Ota)

Slide 2

Slide 2 text

#vsuc 自己紹介 日本マイクロソフト App Innovation アーキテクト第一本部 Cloud Solution Architect & Evangelist Kazuki Ota (大田 一希) 好き: C#、ゲーム X: @okazuki Zenn: https://zenn.dev/okazuki

Slide 3

Slide 3 text

#vsuc 本セッションのゴール Microsoft.Extensions.AI が GA したら AI を使うアプリでは、これを使おう!と思ってもらう

Slide 4

Slide 4 text

#vsuc Unified AI Building Blocks 日本語にすると「統合 AI 構成要素」っていうらしい… https://learn.microsoft.com/ja-jp/dotnet/ai/ai-extensions

Slide 5

Slide 5 text

#vsuc 注意事項 まだプレビューなので本番適用は慎重に!! (おすすめはしません)

Slide 6

Slide 6 text

#vsuc Unified AI Building Blocks AI サービスと対話するための C# の抽象化レイヤー Microsoft.Extensions.AI.Abstractions チャット API・ベクトル化の抽象化 コアとなるクラス・インターフェース IChatClient、IEmbeddingGenerator、ChatMessage、Embedding、AITool 各モデルごとの実装 OpenAI、Ollama、AzureAIInference、etc… Microsoft.Extensions.AI キャッシュ、ロギング、自動ツール呼び出し、OTEL 対応、メソッドから AITool の作成 Microsoft.Extensions.AI

Slide 7

Slide 7 text

#vsuc Unified AI Building Blocks を利用するアプリ 抽象化レイヤーに対してコードを書くことで対応 AI に全部対応可能 Microsoft.Extensions.AI.Abstractions チャット API・ベクトル化の抽象化 各モデルごとの実装 Microsoft.Extensions.AI Your application

Slide 8

Slide 8 text

#vsuc Unified AI Building Blocks を利用するアプリ 抽象化レイヤーに対してコードを書くことで対応 AI に全部対応可能 Microsoft.Extensions.AI.Abstractions チャット API・ベクトル化の抽象化 各モデルごとの実装 Microsoft.Extensions.AI Your application モデルが変わってもアプリケーションの コードは変わらない

Slide 9

Slide 9 text

#vsuc Semantic Kernel はどうなるの…? Microsoft.Extensions.AI は Semantic Kernel の抽象化レイヤーの進化系 Microsoft.SemanticKernel.Abstractions OpenAI Ollama AzureAI Inference Microsoft.Extensions.AI.Abstractions OpenAI Ollama AzureAI Inference Semantic Kernel Microsoft.Extensions.AI Semantic Kernel の各種機能

Slide 10

Slide 10 text

#vsuc Semantic Kernel はどうなるの…? Microsoft.Extensions.AI は Semantic Kernel の抽象化レイヤーの進化系 Microsoft.Extensions.AI.Abstractions OpenAI Ollama AzureAI Inference Semantic Kernel Microsoft.Extensions.AI が GA した後に Semantic Kernel も Microsoft.Extensions.AI に移行予定 Semantic Kernel の各種機能

Slide 11

Slide 11 text

#vsuc Unified AI Building Blocks を利用するアプリ AI を使うアプリケーションの全体像はこうなる Microsoft.Extensions.AI.Abstractions チャット API・ベクトル化の抽象化 各モデルごとの実装 Microsoft.Extensions.AI Semantic Kernel などの AI を使用するライブラリ Your application

Slide 12

Slide 12 text

#vsuc Azure AI Model Inference との違いは…? Azure AI Model Inference API - Azure AI Foundry | Microsoft Learn 引用: Azure AI Model Inference は、基本モデルの共通の機能セットを 公開する API であり…  サポート対象のモデルに対して共通の API でアクセス可能  Azure.AI.Inference NuGet パッケージを使うと C# でも利用可能  Microsoft.Extensions.AI と目的がかぶってる…!?

Slide 13

Slide 13 text

#vsuc 多分こうなる Azure AI Inference はすべてのモデルをサポートしているわけではない モデルA モデルB モデルC モデルD モデルE Azure AI Inference 対応モデル Azure AI Inference SDK Microsoft.Extensions.AI.AzureAIInference 各モデル用の Microsoft.Extensions.AI 実装 Your application Microsoft.Extensions.AI.Abstractions Microsoft.Extensions.AI Semantic Kernel などのAI を使用するライブラリ

Slide 14

Slide 14 text

#vsuc ここまでのまとめ ✓ AI サービス使うための C# の抽象化レイヤー ✓ Microsoft.Extensions.AI.Abstractions  AI の抽象化を行っているライブラリ  各 AI モデルに対応する場合は、これを実装する ✓ Microsoft.Extensions.AI  Microsoft.Extensions.AI.Abstractions を使った便利機能や、必須機能を実装 ✓ モデルが変わってもアプリのロジックのコードは変わらない ※ 特定の AI 固有機能を使う場合は別 ✓ 今後は各種ライブラリもこれをベースになるはず

Slide 15

Slide 15 text

#vsuc デモ フェーズ

Slide 16

Slide 16 text

#vsuc Microsoft.Extensions.AI を使おう 共通 API で利用可能 + チョット高レベル API

Slide 17

Slide 17 text

#vsuc Microsoft.Extensions.AI のミドルウェア キャッシュ・OpenTelemetry 対応・関数呼び出しの自動化などが ミドルウェアとして提供されている

Slide 18

Slide 18 text

#vsuc Microsoft.Extensions.AI のミドルウェアの作り方 DelegatingChatClient を継承して 処理を追加したいメソッドをオーバーライド 時間が有れば

Slide 19

Slide 19 text

#vsuc IEmbeddingGenerator> インターフェース チャットと基本的な初期化処理は同様 ミドルウェアも同じ感覚で利用可能 Embedding にも対応 時間が有れば

Slide 20

Slide 20 text

#vsuc デモとほぼ同じことをしている記事 Microsoft.Extensions.AI を触ってみよう https://zenn.dev/microsoft/articles/unified-ai-building-block-001

Slide 21

Slide 21 text

#vsuc Microsoft.Extensions.AI を使ったライブラリ

Slide 22

Slide 22 text

#vsuc Microsoft.Extensions.AI を使ったライブラリ Prompty.Core Prompty を使うためのライブラリ チャットモデル用の .prompty をパースした結果が Microsoft.Extensions.AI の ChatMessage になっている Microsoft.Extensions.AI.Evaluation AI を使ったアプリの応答の評価を行うライブラリ Evaluate the quality of your AI applications with ease .NET での AI を使ったアプリの評価ライブラリ爆誕…!!

Slide 23

Slide 23 text

#vsuc まとめ

Slide 24

Slide 24 text

#vsuc まとめ ✓ Unified AI Building Blocks for .NET • Microsoft.Extensions.AI • Microsoft.Extensions.AI.Abstractions ✓ ミドルウェアによる拡張性が凄い! • OpenTelemetry、キャッシュ、関数呼び出し、etc… • ミドルウェアの自作も可能 ✓ 各種 AI を使うライブラリの中心を担う存在 • 今後さまざまなライブラリが、利用する形でエコシステムを構築されるはず(期待) • 現状でも既に、いくつかのライブラリが出てきている • Prompty.Core • Microsoft.Extensions.AI.Evaluation

Slide 25

Slide 25 text

#vsuc まとめ ✓ Unified AI Building Blocks for .NET • Microsoft.Extensions.AI • Microsoft.Extensions.AI.Abstractions ✓ ミドルウェアによる拡張性が凄い! • OpenTelemetry、キャッシュ、関数呼び出し、etc… • ミドルウェアの自作も可能 ✓ 各種 AI を使うライブラリの中心を担う存在 • 今後さまざまなライブラリが、利用する形でエコシステムを構築されるはず(期待) • 現状でも既に、いくつかのライブラリが出てきている • Prompty.Core • Microsoft.Extensions.AI.Evaluation Microsoft.Extensions.AI が GA したら AI を使うアプリで使ってみてください

Slide 26

Slide 26 text

#vsuc © Copyright Microsoft Corporation. All rights reserved.