.NET + AI エコシステムの概要
[アーティクル] 2024/11/24
4 人の共同作成者
フィードバック
この記事の内容
.NET 用 Microsoft.Extensions.AI ライブラリ
.NET 向けの Semantic Kernel
AI アプリを構築するための .NET SDK
ローカル AI モデルを使用して開発する
ベクトル データベースとサービスに接続する
その他のオプション
次のステップ
さらに 3 個を表示
.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 エコシステム内の統一レイヤーとして機能し、開発者が好みのフレームワークとライブラリを選択できるようにすることで、エコシステム全体のシームレスな統合とコラボレーションを保証することです。
Semantic Kernel は、開発される .NET アプリでの AI 統合とオーケストレーションの機能を実現するオープンソースの SDK です。 この SDK は、.NET アプリで 1 つまたは複数の AI サービスを他の API または Web サービス、データ ストア、カスタム コードと組み合わせて使用する場合の AI オーケストレーション ツールとして一般的に推奨されます。 Semantic Kernel は、エンタープライズ開発者にとって次の点で役に立ちます。
既存のアプリケーションへの AI 機能の統合を合理化し、エンタープライズ製品のまとまりのあるソリューションを実現します。
複雑さを軽減する抽象化を提供することで、さまざまな AI モデルまたはサービスを操作する学習曲線を最小限に抑えます。
AI モデルからの予期しないプロンプトと応答動作を減らすことで、信頼性が向上します。 プロンプトを最適化し、タスクを計画して、制御された予測可能なユーザー エクスペリエンスを作成できます。
詳細については、Semantic Kernel のドキュメント を参照してください。
AI 機能を備えたアプリを .NET で構築するためのさまざまな SDK が提供されており、ターゲットのプラットフォームまたは AI モデルに応じて選ぶことができます。 OpenAI モデルの特徴は強力な生成 AI 機能ですが、その他の Azure AI サービスは、さまざまな特定シナリオのためのインテリジェントなソリューションを提供します。
テーブルを展開する
Azure AI サービスのための .NET SDK
Azure では、その他にも特定のアプリケーション機能とワークフローを構築するための AI サービスが多数提供されています。 これらのサービスのほとんどに .NET SDK があり、その機能をカスタム アプリに統合できます。 よく使用されるサービスの代表的なものを次の表に示します。 利用可能なサービスと学習リソースすべての一覧については、Azure AI サービス のドキュメントを参照してください。
テーブルを展開する
.NET アプリは、ローカルの AI モデルに接続することもできるため、さまざまな開発シナリオに対応できます。 Semantic Kernel は、.NET を使用してローカル モデルに接続する場合に推奨されるツールです。 Semantic Kernel は、さまざまなプラットフォームでホストされているさまざまなモデルに接続でき、下位レベルの実装の詳細を抽象化します。
たとえば、Ollama を使用すると、Microsoft が開発したいくつかの Small Language Models (SLM) を含む、.NET を備えたローカル AI モデル に接続できます。
テーブルを展開する
Model
説明
phi3 モデル
低コストと低遅延で画期的なパフォーマンスを発揮する強力な SLM ファミリーす。
orca モデル
ユーザーから与えられたデータからの推論、読解、数学の問題解決、テキストの要約などのタスクにおけるリサーチ モデル。
注意
上記の SLM は、Azure を始めとする他のサービス上でホストすることもできます。
AI アプリケーションでは、多くの場合、データ ベクター データベースとサービスを使用して関連性を向上させ、カスタマイズされた機能を提供します。 これらのサービスの多くにネイティブの .NET 向け SDK がありますが、その他のサービスでも REST サービスが提供されており、カスタム コードを通して接続できます。 セマンティック カーネルには拡張可能なコンポーネント モデルが用意されているため、各 SDK を学習しなくても、さまざまなベクター ストアを使用できます。
セマンティック カーネルには、次のベクター データベースとサービス用のコネクタがあります。
テーブルを展開する
.NET SDK と API のサポートについては、各サービスのドキュメントを参照してください。
この記事では、.NET を正式にサポートするサービスに焦点を当てて、.NET エコシステムのツールと SDK をまとめています。 アプリ開発のニーズや段階に応じて、.NET + AI リソースの非公式な一覧 でエコシステムのオープンソース オプションを確認することもできます。 Microsoft はこれらの多くのプロジェクトの保守管理者ではないため、品質、使用許諾、サポートを必ず確認してください。