.NET + AI エコシステムの概要
.NET のエコシステムからは、AI アプリケーションを開発するための強力なツール、ライブラリ、サービスが多数提供されています。 .NET では、クラウドとローカルの両方の AI モデル接続に加えて、AI とベクトル データベースの多数のサービスの SDK や、その他のツールがサポートされているため、さまざまなスコープと複雑さのインテリジェント アプリを構築できます。
重要
このドキュメントで紹介しているすべての SDK とサービスが Microsoft によって管理されているわけではありません。 SDK の利用を検討するときは、その品質、ライセンス、サポート、互換性の評価を必ず実施して、実際の要件を満たしていることを確認してください。
.NET 用 Microsoft.Extensions.AI ライブラリ
Microsoft.Extensions.AI
は、セマンティック カーネルなど、.NET エコシステム全体の開発者と共同で作成されたコア .NET ライブラリのセットです。 これらのライブラリは、小規模および大規模言語モデル (SMS と LLM)、埋め込み、ミドルウェアなど、AI サービスと対話するための C# 抽象化の統一されたレイヤーを提供します。
Microsoft.Extensions.AI
は、同じコア概念に従って、さまざまなサービスによって実装できる抽象化を提供します。 このライブラリは、特定のプロバイダーのサービスに合わせて調整された API を提供するためのものではありません。 Microsoft.Extensions.AI
の目的は、.NET エコシステム内の統一レイヤーとして機能し、開発者が好みのフレームワークとライブラリを選択できるようにすることで、エコシステム全体のシームレスな統合とコラボレーションを保証することです。
.NET 向けの Semantic Kernel
Semantic Kernel は、開発される .NET アプリでの AI 統合とオーケストレーションの機能を実現するオープンソースの SDK です。 この SDK は、.NET アプリで 1 つまたは複数の AI サービスを他の API または Web サービス、データ ストア、カスタム コードと組み合わせて使用する場合の AI オーケストレーション ツールとして一般的に推奨されます。 Semantic Kernel は、エンタープライズ開発者にとって次の点で役に立ちます。
- 既存のアプリケーションへの AI 機能の統合を合理化し、エンタープライズ製品のまとまりのあるソリューションを実現します。
- 複雑さを軽減する抽象化を提供することで、さまざまな AI モデルまたはサービスを操作する学習曲線を最小限に抑えます。
- AI モデルからの予期しないプロンプトと応答動作を減らすことで、信頼性が向上します。 プロンプトを最適化し、タスクを計画して、制御された予測可能なユーザー エクスペリエンスを作成できます。
詳細については、Semantic Kernel のドキュメントを参照してください。
AI アプリを構築するための .NET SDK
AI 機能を備えたアプリを .NET で構築するためのさまざまな SDK が提供されており、ターゲットのプラットフォームまたは AI モデルに応じて選ぶことができます。 OpenAI モデルの特徴は強力な生成 AI 機能ですが、その他の Azure AI サービスは、さまざまな特定シナリオのためのインテリジェントなソリューションを提供します。
OpenAI モデルのための .NET SDK
NuGet パッケージ | サポートされているモデル | 保守管理者またはベンダー | ドキュメント |
---|---|---|---|
Microsoft.SemanticKernel | OpenAI モデル Azure OpenAI でサポートされるモデル |
Semantic Kernel (Microsoft) | Semantic Kernel のドキュメント |
Azure OpenAI SDK | Azure OpenAI でサポートされるモデル | Azure SDK for .NET (Microsoft) | Azure OpenAI Service のドキュメント |
OpenAI SDK | OpenAI でサポートされるモデル | OpenAI SDK for .NET (OpenAI) | OpenAI サービスのドキュメント |
Azure AI サービスのための .NET SDK
Azure では、その他にも特定のアプリケーション機能とワークフローを構築するための AI サービスが多数提供されています。 これらのサービスのほとんどに .NET SDK があり、その機能をカスタム アプリに統合できます。 よく使用されるサービスの代表的なものを次の表に示します。 利用可能なサービスと学習リソースすべての一覧については、Azure AI サービスのドキュメントを参照してください。
サービス | 説明 |
---|---|
Azure AI Search | AI を利用したクラウド検索をモバイルおよび Web アプリで実現できます。 |
Azure AI コンテンツの安全性 | 望ましくない、または不快感を与えるコンテンツを検出します。 |
Azure AI Document Intelligence | ドキュメントをインテリジェントなデータ ドリブン ソリューションに変換します。 |
Azure AI Language | 業界をリードする自然言語理解機能を備えたアプリを構築します。 |
Azure AI 音声 | 音声テキスト変換、テキスト読み上げ、翻訳、話者認識。 |
Azure AI Translator | AI 搭載の翻訳テクノロジ。100 を超える言語と方言をサポートします。 |
Azure AI Vision | 画像と動画のコンテンツを分析します。 |
ローカル AI モデルを使用して開発する
.NET アプリは、ローカルの AI モデルに接続することもできるため、さまざまな開発シナリオに対応できます。 Semantic Kernel は、.NET を使用してローカル モデルに接続する場合に推奨されるツールです。 Semantic Kernel は、さまざまなプラットフォームでホストされているさまざまなモデルに接続でき、下位レベルの実装の詳細を抽象化します。
たとえば、Ollama を使用すると、Microsoft が開発したいくつかの Small Language Models (SLM) を含む、.NET を備えたローカル AI モデルに接続できます。
Model | 説明 |
---|---|
phi3 モデル | 低コストと低遅延で画期的なパフォーマンスを発揮する強力な SLM ファミリーす。 |
orca モデル | ユーザーから与えられたデータからの推論、読解、数学の問題解決、テキストの要約などのタスクにおけるリサーチ モデル。 |
Note
上記の SLM は、Azure を始めとする他のサービス上でホストすることもできます。
ベクトル データベースとサービスに接続する
AI アプリケーションでは、多くの場合、データ ベクター データベースとサービスを使用して関連性を向上させ、カスタマイズされた機能を提供します。 これらのサービスの多くにネイティブの .NET 向け SDK がありますが、その他のサービスでも REST サービスが提供されており、カスタム コードを通して接続できます。 セマンティック カーネルには拡張可能なコンポーネント モデルが用意されているため、各 SDK を学習しなくても、さまざまなベクター ストアを使用できます。
セマンティック カーネルには、次のベクター データベースとサービス用のコネクタがあります。
.NET SDK と API のサポートについては、各サービスのドキュメントを参照してください。
その他のオプション
この記事では、.NET を正式にサポートするサービスに焦点を当てて、.NET エコシステムのツールと SDK をまとめています。 アプリ開発のニーズや段階に応じて、.NET + AI リソースの非公式な一覧でエコシステムのオープンソース オプションを確認することもできます。 Microsoft はこれらの多くのプロジェクトの保守管理者ではないため、品質、使用許諾、サポートを必ず確認してください。
次のステップ
.NET