次の方法で共有


Phi Silica を始めましょう

重要

Phi Silica API は、制限付きアクセス機能の一部です ( LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、 LAF アクセス トークン要求フォームを使用してください。

Phi Silica は、L 言語モデル (LLM) に含まれる多くの機能を提供する、NPU でチューニングされた強力なローカル言語モデルです。 このモデルでは、投機的デコードと呼ばれる手法を採用し、複数のトークン シーケンスを提案し、メイン モデルによって並列に検証できる、より小さなドラフト モデルを使用してテキスト生成を高速化します。

Phi Silica の機能は、中国では使用できません。

Phi Silica は、Windows Copilot+ PC の効率とパフォーマンスのために最適化されており、Windows アプリ SDK の Windows AI API を使用して Windows アプリに統合できます。

このレベルの最適化は、他のバージョンの Phi では使用できません。

API の詳細については、以下を参照してください。

Phi Silica を統合する

ローカルの Phi Silica 言語モデルを使用すると、ユーザー プロンプトに対するテキスト応答を生成できます。 まず、「 Windows AI API の概要」で説明されているように、デバイスで使用できる前提条件とモデルがあることを確認します。

必要な名前空間を指定する

Phi Silica を使用するには、必要な名前空間を使用していることを確認します。

using Microsoft.Windows.AI;
using Microsoft.Windows.AI.Text;
#include "winrt/Microsoft.Windows.AI.Text.h"
using namespace Microsoft::Windows::AI;
using namespace Microsoft::Windows::AI::Text;

応答を生成する

この例では、カスタム コンテンツ モデレーションを使用して Q&A プロンプトへの応答を生成する方法を示します ( Windows AI API でのコンテンツ モデレーションを参照)。

  1. GetReadyState メソッドを呼び出し、EnsureReadyAsync メソッドが正常に返されるのを待って、言語モデルを使用できることを確認します。

  2. 言語モデルが使用可能になったら、 LanguageModel オブジェクトを作成して参照します。

  3. GenerateResponseAsync メソッドを使用して、完全な結果を返す文字列プロンプトをモデルに送信します。

if (LanguageModel.GetReadyState() == AIFeatureReadyState.NotReady) 
{ 
   var op = await LanguageModel.EnsureReadyAsync(); 
} 

using LanguageModel languageModel = await LanguageModel.CreateAsync();

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

LanguageModelOptions options = new LanguageModelOptions();
ContentFilterOptions filterOptions = new ContentFilterOptions();
filterOptions.PromptMaxAllowedSeverityLevel.Violent = SeverityLevel.Minimum;
options.ContentFilterOptions = filterOptions;

var result = await languageModel.GenerateResponseAsync(prompt, options);
 
Console.WriteLine(result.Text);
if (LanguageModel::GetReadyState() == AIFeatureReadyState::NotReady)
{
    auto op = LanguageModel::EnsureReadyAsync().get();
}

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

const winrt::hstring prompt = L"Provide the molecular formula for glucose.";

LanguageModelResponseResult result = languageModel.GenerateResponseAsync(prompt).get();
std::cout << result.Text().c_str() << std::endl;

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

C6H12O6

テキスト インテリジェンス スキル

Phi Silica には、ローカル言語モデルを使用した定義済みの書式設定を使用して、構造化された簡潔でわかりやすい応答を提供できる組み込みのテキスト変換機能 (テキスト インテリジェンス スキルと呼ばれます) が含まれています。

サポートされているスキルは次のとおりです。

  • テキストからテーブルへ: 必要に応じて、プロンプト応答を構造化されたテーブル形式に書式設定します。
  • 要約: プロンプト テキストの簡潔な概要を返します。
  • 書き換え: プロンプト テキストを再読み取りして、明確さ、読みやすさ、および指定した場合はトーン (またはスタイル) を最適化します。

次の手順では、テキスト インテリジェンス スキルの使用方法について説明します。

  1. LanguageModel オブジェクトを作成する
    このオブジェクトは、ローカルの Phi Silica 言語モデルを参照します (Phi Silica モデルがデバイスで使用可能であることを確認してください)。

  2. スキル固有のオブジェクトをインスタンス化する
    適用するスキルに基づいて適切なクラスを選択し、 LanguageModel インスタンスをパラメーターとして渡します。

  3. メソッドを呼び出してスキルを実行する
    各スキルは、入力を処理し、書式設定された結果を返す非同期メソッドを公開します。

  4. 応答を処理する
    結果は型指定されたオブジェクトとして返され、必要に応じて印刷またはログに記録できます。

この例では、テキスト要約スキルを示します。

  1. LanguageModel インスタンス (languageModel) を作成します。
  2. その LanguageModelTextSummarizer コンストラクターに渡します。
  3. SummarizeAsync メソッドにテキストを渡し、結果を出力します。
using namespace Microsoft.Windows.AI.Text;

using LanguageModel languageModel = await LanguageModel.CreateAsync();

var textSummarizer = new TextSummarizer(languageModel);
string text = @"This is a large amount of text I want to have summarized.";
var result = await textSummarizer.SummarizeAsync(text);

Console.WriteLine(result.Text); 
using namespace Microsoft::Windows::AI::Text;

auto languageModel = LanguageModel::CreateAsync().get();
auto textSummarizer = TextSummarizer(languageModel);
std::string prompt = "This is a large amount of text I want to have summarized.";
auto result = textSummarizer.SummarizeAsync(prompt);

std::wcout << result.get().Text() << std::endl;

責任ある AI

これらのイメージング API が信頼でき、安全で、責任を持って構築されていることを確認するために、次の手順を組み合わせて使用しました。 アプリで AI 機能を実装する場合は、「Windows での責任ある生成 AI 開発」で説明されているベスト プラクティスを確認することをお勧めします。

こちらも参照ください