Slide 1

Slide 1 text

Kernel MemoryでAzure OpenAI Serviceと お手軽データソース連携 Global Azure 2024 in Fukuoka Copyright © Alterbooth Inc. All Rights Reserved. 1

Slide 2

Slide 2 text

• 株式会社オルターブース エンジニア • 主な業務内容 • C#、Azure、GitHubを活用した Webアプリケーション開発 • クラウドネイティブな アプリ開発に関するトレーニング 満園 裕人 Copyright © Alterbooth Inc. All Rights Reserved. 2

Slide 3

Slide 3 text

• Azure OpenAI Service • APIバージョンやSDK対応状況確認方法など • Kernel Memory • (関連)Semantic Kernelについて • Kernel Memoryとは • 処理フロー • 実行方法 • インデックスの保存方法 • 実際に触って確認 目次 Copyright © Alterbooth Inc. All Rights Reserved. 3

Slide 4

Slide 4 text

Azure OpenAI Service Copyright © Alterbooth Inc. All Rights Reserved. 4

Slide 5

Slide 5 text

• OpenAIなどが開発したAIモデルにREST APIでのアクセスを提供 • 多少の遅れはあるものの、最新のモデルを追従 • API仕様も共通形式で使用可能 • エンタープライズレベルでOpenAIを利用するのに適している • APIキー認証だけでなく、Microsoft Entra IDによる認証 • プライベートネットワークとの統合 • Azureのサポート • マルチリージョン • コンテンツフィルタリング Azure OpenAI Service Copyright © Alterbooth Inc. All Rights Reserved. 5

Slide 6

Slide 6 text

更新の早いAzure OpenAI Serviceを使う上で APIバージョン(特にプレビュー)に注意しましょう! Copyright © Alterbooth Inc. All Rights Reserved. 6

Slide 7

Slide 7 text

• REST APIリファレンス • https://learn.microsoft.com/ja-jp/azure/ai-services/openai/reference • バージョン一覧とSwagger定義のリンク記載がある APIバージョン Copyright © Alterbooth Inc. All Rights Reserved. 7

Slide 8

Slide 8 text

Copyright © Alterbooth Inc. All Rights Reserved. 8

Slide 9

Slide 9 text

• プレビュー版のライフサイクル説明ドキュメント • https://learn.microsoft.com/ja-jp/azure/ai-services/openai/api-version-deprecation • 機能ベースでの対応バージョン記載がある APIバージョン対応機能 Copyright © Alterbooth Inc. All Rights Reserved. 9

Slide 10

Slide 10 text

• 最新のGAバージョンは2024-02-01(2024/4現在) • 最新のプレビューバージョンは2024-03-01-preview • 2024/7/1にいくつかのプレビュー版が廃止される予定(2024/4現在) • Azure SDKを使う場合は、SDK内のバージョン対応状況に注意 • OpenAIClientOptionsクラスにAPIバージョン列挙体定義が存在 • https://github.com/Azure/azure-sdk-for- net/blob/main/sdk/openai/Azure.AI.OpenAI/src/Generated/OpenAIClientOptions.cs APIバージョンのライフサイクル Copyright © Alterbooth Inc. All Rights Reserved. 10

Slide 11

Slide 11 text

Kernel Memory Copyright © Alterbooth Inc. All Rights Reserved. 11

Slide 12

Slide 12 text

• https://github.com/microsoft/semantic-kernel • LLMとプログラミング言語を統合するSDK (…の前に)Semantic Kernel Copyright © Alterbooth Inc. All Rights Reserved. 12

Slide 13

Slide 13 text

Semantic Kernel Copyright © Alterbooth Inc. All Rights Reserved. 13

Slide 14

Slide 14 text

• データベースへの呼び出しをラップし、ベクトル検索をサポート • Semantic Kernelプロジェクトの一部として開発されているものを指す • C#、Python、Java用のライブラリ • サポートされているストレージエンジンは言語によって異なる → Kernel MemoryはSemantic Memoryの開発で得られたフィードバックに基 づいて構築されたサービス Semantic Memory Copyright © Alterbooth Inc. All Rights Reserved. 14

Slide 15

Slide 15 text

• https://github.com/microsoft/kernel-memory • データセットの効率的なインデックス作成に特化した、マルチモーダルAI サービス • サービスとして、あらゆる言語・ツール・プラットフォームから使用可能 • プラグインとしても使用可能 • Semantic Kernelとシームレスに統合可能 • .NETライブラリとして使用可能 • データソースとの繋ぎ込みを行うためのモジュールが多数用意されている Kernel Memory Copyright © Alterbooth Inc. All Rights Reserved. 15

Slide 16

Slide 16 text

• データの展開 • 回答 Kernel Memoryの処理フロー Copyright © Alterbooth Inc. All Rights Reserved. 16

Slide 17

Slide 17 text

• サービスとして実行する方法とサーバーレス実行と呼ばれる方法の2通りある • サービスとして実行 • コンテナーで単体で起動し、Webアプリ等からサービス起動しているKernel Memoryのエ ンドポイントへアクセスし、やり取りする • サーバーレス実行 • 同アプリ内でKernel Memoryの機能を実行(.NETのライブラリとして導入) Kernel Memoryの実行方法 Copyright © Alterbooth Inc. All Rights Reserved. 17

Slide 18

Slide 18 text

• https://github.com/microsoft/kernel- memory/blob/main/service/Service/README.md • インデックスデータはデフォルトではローカルディスク上に保持される (SimpleVectorDb) • 永続化したい場合はAzure AI Search等に出力することが可能 • サービスであれば環境変数のMemoryDbTypeに設定 • サーバーレスであればKernelMemoryBuilderのBuild時に指定 Kernel Memoryにおけるインデックスの保存方法 Copyright © Alterbooth Inc. All Rights Reserved. 18

Slide 19

Slide 19 text

• https://github.com/microsoft/kernel-memory/tree/main/infra • https://github.com/microsoft/kernel- memory/tree/main/examples/001-dotnet-WebClient 実際に触って確認する Copyright © Alterbooth Inc. All Rights Reserved. 19

Slide 20

Slide 20 text

Copyright © Alterbooth Inc. All Rights Reserved. 20 ※イベント会場へ移動中にDocument Intelligenceも追加されていました https://github.com/microsoft/kernel-memory/tree/main/infra

Slide 21

Slide 21 text

Copyright © Alterbooth Inc. All Rights Reserved. 21

Slide 22

Slide 22 text

Copyright © Alterbooth Inc. All Rights Reserved. 22 https://github.com/microsoft/kernel-memory/blob/main/infra/images/ACA-ApplicationUrl.png

Slide 23

Slide 23 text

Copyright © Alterbooth Inc. All Rights Reserved. 23

Slide 24

Slide 24 text

• Azure OpenAI Serviceまわりは更新がめちゃくちゃ早い • Azure OpenAI Serviceのモデル・APIバージョンの更新 • 関連ライブラリやサンプルの更新 • APIのpreviewバージョンを使用する場合は特に廃止タイミングに気をつけましょう • Kernel Memoryを使用すれば、自前AIアプリをデータソースと繋ぎこむこと がかなり楽になる • Azure OpenAI on your dataやAzure Machine Learningプロンプトフローで実現できない 要件や多少細かい部分の実装を行いたい場合におけるフルスクラッチの敷居が下がる まとめ Copyright © Alterbooth Inc. All Rights Reserved. 24

Slide 25

Slide 25 text

ご清聴ありがとうございました! Copyright © Alterbooth Inc. All Rights Reserved. 25