Slide 1

Slide 1 text

Semantic Kernelの最新状況 及び入門 株式会社SAKURUG プロダクトDiv 草場 友光 .NETラボ勉強会2024年7月

Slide 2

Slide 2 text

自己紹介 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2025 Microsoft MVP (Developer Technologies) • tomo_kusaba

Slide 3

Slide 3 text

宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。

Slide 4

Slide 4 text

注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • #dotnetlabでtweetすると左側に表示されます

Slide 5

Slide 5 text

今日の目的 • .NETのSemantic Kernelが安定版になってしばらく経ちまし た。 • 最新のSemantic Kernelの状況及び改めて今、Semantic Kernelを入門する方法をリポジトリーを見ながら探っていきた いと思います。 • やらないこと:実際にコードを動かしてみたり詳細な実装について 話すこと

Slide 6

Slide 6 text

現在のリポジトリ構成をみる • https://github.com/microsoft/semantic- kernel/tree/main

Slide 7

Slide 7 text

Semantic Kernelとは • 既存のアプリケーションにAIエージェントを簡単に追加することの できるオープンソースのミドルウェア • C#、Java、Pythonに対応 • プラグインの自動呼び出しに対応

Slide 8

Slide 8 text

似た目的で使用できるフレームワーク・ツール • LangChain • AI Studio • Azure FunctionのOpenAI拡張

Slide 9

Slide 9 text

LangChain • Pythonのみの対応 • LLMを扱う上では素晴らしいツール • LLMの発展に対して迅速な対応する反面、今現在安定版がリリー スされていない、破壊的変更が多い、バグが多いなどのトラブル が多い • AIそのもの検証にはとても相性がよい!

Slide 10

Slide 10 text

AI Studio • Microsoft Build 2024でGA • OpenAI以外のMetaなどのLLMやPhi-2などのSLMなどさま ざまな言語モデルに対応 • Azure AI SearchやプロンプトフローなどAIツールチェーンと して設計されている • GUIベースでフローを確認できたり可観測性もバッチリ。 • TeamsへのカスタムエンジンCopilotもPubulic Previewな どできることが増えてきた!

Slide 11

Slide 11 text

Azure FunctionのOpenAI拡張 • Azure OpenAI Serviceの機能と動作をFunctionに簡単に 統合できる一連のトリガーとバインドが実装されている。 • 呼び出すLLMがAzure OpenAIに限定できる場合に有用な手 段 • スケールしやすい • AIの実行がFunctionでよい場合・・・もともとマイクロサービス 的に作っている場合は気にならないはず。モノシリックで作ってい る場合なぜAzure OpenAI ServiceだけがAzure Function の実行なのか??くらい

Slide 12

Slide 12 text

Semantic Kernelの始め方 • https://github.com/microsoft/semantic- kernel/tree/main/dotnet/notebooks • まずは、Jypyter Notebooksから • 前提:.NET 8 と VS Code と Polygot 拡張

Slide 13

Slide 13 text

Microsoft Learn ドキュメント • ただし、現在は英語のみ (7/3日本語追加!) • ドキュメントに掲載されているコードは https://github.com/microsoft/semantic- kernel/tree/main/dotnet/samples/LearnResources に掲載 • Logic AppsやOpenAPIプラグインの追加方法などより実践的 な実装方法についての記述がされているなど一通り読むべき

Slide 14

Slide 14 text

コード例がコンセプトごとに整理された • Microsoft LearnからもGitHubへのリンクがある。 • ChatCmpletionとかDIやPluginなどコンセプトごとに整理さ れて見やすくなった。

Slide 15

Slide 15 text

より、実践的デモアプリ • https://github.com/microsoft/semantic- kernel/tree/main/dotnet/samples/Demos

Slide 16

Slide 16 text

どんな機能が使えるんだっけ(コア) サービス C# Python Java 備考 プロンプト ○ ○ ○ ネイティブ関数とプラグイン ○ ○ ○ OpenAPIプラグイン ○ ○ ○ 関数の自動呼び出し ○ ○ ○ テレメトリログを開く ○ △ × フックとフィルター ○ ○ ○

Slide 17

Slide 17 text

どんな機能が使えるんだっけ(AIサービス) サービス C# Python Java 備考 テキストの生成 ○ ○ ○ チャット入力候補 ○ ○ ○ GPT-4 テキスト埋め込み ○ ○ ○ Text-Embeddings テキストから画像へ ○ × × Dall-E 画像からテキストへ ○ × × テキストから音声へ ○ × × 音声からテキストへ ○ × × Whisper

Slide 18

Slide 18 text

どんな機能が使えるんだっけ (AIサービスエンドポイント) サービス C# Python Java 備考 OpenAI ○ ○ ○ Azure OpenAI ○ ○ ○ Ollama, LLM Studio.. ○ ○ ○ Hugging Face Inference API △ × ×

Slide 19

Slide 19 text

どんな機能が使えるんだっけ (Memory Connectors) サービス C# Python Java 備考 Azure AI Search ○ ○ ○ Chroma ○ ○ × DuckDB ○ × × Milvus △ ○ × Pinecone ○ ○ × Postgres ○ ○ × Qdrant ○ △ × Redis ○ △ × Sqlite ○ × △ Weaviate ○ ○ ×

Slide 20

Slide 20 text

Microsoft Learnを見てみる時間

Slide 21

Slide 21 text

参考文献 • Microsoft/semantic-kernel https://github.com/microsoft/semantic- kernel/tree/main • セマンティック カーネルの概要 https://learn.microsoft.com/ja-jp/semantic- kernel/overview/?WT.mc_id=DT-MVP-5004827 • Semantic Kernel Discord コミュニティ https://aka.ms/sk/discord

Slide 22

Slide 22 text

おしまい おしまい