Phi Silica ile çalışmaya başlama

Önemli

Phi Silika API'leri Sınırlı Erişim Özelliğinin bir parçasıdır (bkz. LimitedAccessFeatures sınıfı). Daha fazla bilgi edinmek veya kilit açma belirteci istemek için lütfen LAF Erişim Belirteci İstek Formu'nu kullanın.

Phi Silica, Büyük Dil Modellerinde (LLM) bulunan birçok özellik sağlayan, NPU tarafından ayarlanmış güçlü bir yerel dil modelidir. Model, birden çok belirteç dizisi önerebilen ve ana model tarafından paralel olarak doğrulanabilen daha küçük bir taslak model kullanarak metin oluşturmayı hızlandırmak için kurgusal kod çözme adlı bir teknik kullanır.

Uyarı

Phi Silika özellikleri Çin'de mevcut değildir.

Phi Silica, Windows Copilot+ bilgisayarlarda verimlilik ve performans için iyileştirilmiştir ve Windows Uygulama SDK'sı'ndaki Windows AI API'leri aracılığıyla Windows uygulamalarınıza tümleştirilebilir.

Bu iyileştirme düzeyi Phi'nin diğer sürümlerinde kullanılamaz.

API ayrıntıları için bkz:

Phi Silica'yı Tümleştir

Yerel bir Phi Silika dil modeli ile kullanıcı istemlerine metin yanıtları oluşturabilirsiniz. İlk olarak, Windows AI API'lerini Kullanmaya Başlama bölümünde açıklandığı gibi cihazınızda ön koşulların ve modellerin mevcut olduğundan emin olun.

Gerekli ad alanlarını belirtin

Phi Silica'yı kullanmak için gerekli ad alanlarını kullandığınızdan emin olun:

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;

Yanıt oluşturma

Bu örnekte, özel içerik moderasyonuyla soru-cevap istemine nasıl yanıt oluşturulacağı gösterilmektedir (bkz. Windows AI API'leriyle İçerik Moderasyonu).

  1. GetReadyState yöntemini çağırıp EnsureReadyAsync yönteminin başarıyla döndürülmesini bekleyerek dil modelinin kullanılabilir olduğundan emin olun.

  2. Dil modeli kullanılabilir duruma geldikten sonra başvurmak için bir LanguageModel nesnesi oluşturun.

  3. Tam sonucu döndüren GenerateResponseAsync yöntemini kullanarak modele bir dize istemi gönderin.

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;

Bu örnek tarafından oluşturulan yanıt:

C6H12O6

Metin Zekası Becerileri

Phi Silica, yerel dil modelini kullanarak önceden tanımlanmış biçimlendirme aracılığıyla yapılandırılmış, kısa ve kullanıcı dostu yanıtlar verebilen yerleşik metin dönüştürme özellikleri (Metin Zekası Becerileri olarak bilinir) içerir.

Desteklenen beceriler şunlardır:

  • Metinden tabloya: İstem yanıtını uygun olduğunda yapılandırılmış bir tablo biçiminde biçimlendirin.
  • Özetleme: İstem metninin kısa bir özetini döndürür.
  • Yeniden yazma: Netliği, okunabilirliği ve belirtildiğinde tonu (veya stili) iyileştirmek için istem metnini yeniden yazar.

Aşağıdaki adımlarda Metin Zekası Becerileri'nin nasıl kullanılacağı açıklanmaktadır.

  1. LanguageModel nesnesi oluşturma
    Bu nesne yerel Phi Silika dil modeline başvurur (Phi Silika modelinin cihazda kullanılabilir olduğunu onaylamayı unutmayın).

  2. Beceriye özgü nesnenin örneğini oluşturma
    Uygulamak istediğiniz beceriye göre uygun sınıfı seçin ve LanguageModel örneğini parametre olarak geçirin.

  3. Beceriyi gerçekleştirmek için methodu çağır
    Her bir beceri, girişi işleyen ve biçimlendirilmiş bir sonuç döndüren zaman uyumsuz bir yöntemi kullanıma sunar.

  4. Yanıtı ele almak
    Sonuç, gerektiği gibi yazdırabileceğiniz veya günlüğe kaydedebileceğiniz bir türlenmiş nesne olarak döndürülür.

Bu örnekte metin özetleme becerisi gösterilmektedir.

  1. LanguageModel örneği (languageModel) oluşturun.
  2. Bu LanguageModel'iTextSummarizer oluşturucusna geçirin.
  3. SummarizeAsync yöntemine metin geçirin ve sonucu yazdırın.
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;

Sorumlu yapay zeka

Bu API'lerin güvenilir, güvenli ve sorumlu bir şekilde oluşturulduğundan emin olmak için Microsoft Sorumlu Yapay Zeka Standartları'nda açıklanan temel ilkeleri ve uygulamaları izledik. Uygulamanızda yapay zeka özelliklerini uygulama hakkında daha fazla ayrıntı için bkz. Windows'ta Sorumlu Üretken Yapay Zeka Geliştirme.

Ayrıca bakınız