次の方法で共有


Windows アプリ SDKで Phi Silica を使ってみる

ヒント

Windows アプリ SDK GitHub リポジトリに新しい Issue を作成して、これらの API とその機能に関するフィードバックを提供します。 (タイトルに Phi シリカ を含めるようにしてください!)

Phi Silica は、Windows アプリ SDKを使用して Windows アプリに統合できるローカル言語モデルです。

Microsoft の最も強力な NPU チューニングローカル言語モデルとして、Phi Silica は Windows Copilot+ PC デバイスの効率とパフォーマンスを最適化しながら、L 言語モデル (LLM) に含まれる多くの機能を提供します。

このレベルの最適化は、Windows アプリ SDK内のモデルに限定され、他のバージョンの Phi では使用できません。

API の詳細については、Windows アプリ SDK Phi Silica の API リファレンスを参照してください。

重要

この機能はまだ使用できません。 Windows アプリ SDKの今後の体験チャネルリリースで出荷される予定です。

Windows アプリ SDK の実験的チャネルには、開発の初期段階にある API と機能が含まれています。 実験用チャネル内のすべての API は、広範な変更と破壊的変更の対象となり、今後のリリースからいつでも削除される可能性があります。 これらは運用環境での使用ではサポートされていません。また、実験的機能を使用するアプリを Microsoft Store に公開することはできません。

前提条件

Windows アプリ SDKを使用して Phi Silica を Windows アプリに統合する

ローカルの Phi Silica 言語モデルと Windows アプリ SDK を使用すると、ユーザー プロンプトに対するテキスト応答を生成できます。

完全な応答を生成する

この例では、結果が返される前に完全な応答が生成される、Q&A プロンプトに対する応答の生成方法を示します。

  1. まず、IsAvailable メソッドを呼び出し、MakeAvailableAsync メソッドが正常に返されるのを待って、言語モデルを使用できることを確認します。
  2. 言語モデルが使用できるようになったら、それを参照する LanguageModel オブジェクトを作成します。
  3. 最後に、GenerateResponseAsync メソッドを使用して、完全な結果を返す文字列プロンプトをモデルに送信します。
using Microsoft.Windows.AI.Generative; 
 
 
if (!LanguageModel.IsAvailable()) 
{ 
   var op = await LanguageModel.MakeAvailableAsync(); 
} 
 
using LanguageModel languageModel = await LanguageModel.CreateAsync(); 
 
string prompt = "Provide the molecular formula for glucose."; 
 
var result = await languageModel.GenerateResponseAsync(prompt); 
 
Console.WriteLine(result.Response); 
using namespace winrt::Microsoft::Windows::AI::Generative;

if (!LanguageModel::IsAvailable()) 
{
    auto op = LanguageModel::MakeAvailableAsync().get();
}

auto languageModel = LanguageModel::CreateAsync().get();

std::string prompt = "Provide the molecular formula for glucose.";

auto result = languageModel.GenerateResponseAsync(prompt).get();

std::cout << result.Response << std::endl;

この例によって生成される応答は次のとおりです。

The molecular formula for glucose is C6H12O6.

部分的な応答のストリームを生成する

この例では、部分的な結果のストリームとして応答が返される、Q&A プロンプトに対する応答の生成方法を示します。

  1. まず、ローカル言語モデルを参照する LanguageModel オブジェクトを作成します (前のスニペットで、言語モデルの存在は既にチェックしています)。
  2. 次に、GenerateResponseWithProgressAsync の呼び出しで LanguageModelResponse を非同期的に取得し、応答の生成時にコンソールに書き込みます。
using Microsoft.Windows.AI.Generative; 

using LanguageModel languageModel = await LanguageModel.CreateAsync(); 
 
 string prompt = "Provide the molecular formula for glucose."; 
 
  AsyncOperationProgressHandler<LanguageModelResponse, string> 
 progressHandler = (asyncInfo, delta) => 
 { 
     Console.WriteLine($"Progress: {delta}"); 
     Console.WriteLine($"Response so far: {asyncInfo.GetResults().Response()}"); 
 }; 
 
var asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt); 
 
 asyncOp.Progress = progressHandler; 
 
 var result = await asyncOp;  
 
 Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;

auto languageModel = LanguageModel::CreateAsync().get();

std::string prompt = "Provide the molecular formula for glucose.";

AsyncOperationProgressHandler<LanguageModelResponse, std::string> progressHandler = 
    [](const IAsyncOperationWithProgress<LanguageModelResponse, std::string>& asyncInfo, const std::string& delta) 
    { 
        std::cout << "Progress: " << delta << std::endl; 
        std::cout << "Response so far: " << asyncInfo.GetResults().Response() << std::endl; 
    };

auto asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);

asyncOp.Progress(progressHandler); 

auto result = asyncOp.get();

std::cout << result.Response() << std::endl;

責任ある AI

Phi Silica は、安全で安全な AI エクスペリエンスを使用してアプリを構築するための強力で信頼できるモデルを開発者に提供します。 Phi Silica が信頼でき、安全で、責任を持って構築されていることを確認するために、次の手順が実行されています ( Windows での応答可能なジェネレーティブ AI 開発で説明されているベスト プラクティスも確認することをお勧めします)。

  • モデルの品質を徹底的にテストおよび評価し、潜在的なリスクを特定して軽減します。
  • Phi Silica モデル カードの作成 モデルの長所と制限事項を説明し、目的の用途を明確にします。
  • Phi Silica の実験リリースの段階的なロールアウト。 Phi Silica の最終実験リリース後、展開は署名済みアプリに拡大されます。これにより、ローカルモデル機能を備えたアプリケーションにマルウェア スキャンが確実に適用されるようにします。
  • 設定の Capability Access Manager を通じてカスタム コントロールを提供し、ユーザーがシステム、ユーザー、またはアプリのデバイス上のモデルを無効にできるようにします。
  • Phi Silica の入力出力と AI 生成出力の両方で有害なコンテンツを識別してフィルター処理する、conテント モードration 用のローカル AI モデルを提供します。 このローカルコンテント モードレーション モデルは、テキスト モデレーション用の Azure AI Content Safety モデルに基づいており、同様のパフォーマンスを提供します。

重要

コンテンツの安全性システムは間違いがなく、時折エラーが発生する可能性があるため、補足的な責任ある AI (RAI) のツールとプラクティスを統合することをお勧めします。 詳細については、「 Windows での応答可能なジェネレーティブ AI 開発を参照してください。

その他のリソース

Windows App SDK と WinRT API を使用してファイルとフォルダーにアクセスする