Partager via


Prise en main de Phi Silica

Importante

Phi Silicon n’est pas disponible en Chine.

Phi Silicon est un modèle de langage local que vous pouvez intégrer à vos applications Windows à l’aide de Windows AI Foundry.

En tant que modèle de langage local NPU le plus puissant de Microsoft, Phi Silica est optimisé pour l’efficacité et les performances sur les PC Windows Copilot+ tout en offrant de nombreuses fonctionnalités des grands modèles de langage (LLMs).

Ce niveau d’optimisation est exclusif au modèle dans le Kit de développement logiciel (SDK) de l’application Windows et n’est pas disponible dans d’autres versions de Phi. Pour plus d’informations sur l’API, consultez :

Importante

Voici une liste des fonctionnalités Windows AI et de la version du Kit de développement logiciel (SDK) d’application Windows dans laquelle elles sont actuellement prises en charge.

Version 1.8 Expérimentale (1.8.0-experimental1) - Effacement d'objets, Phi Silica, Ajustement fin LoRA pour Phi Silica, Synthèse des conversations (Text Intelligence)

Accès anticipé privé - Recherche sémantique

Version 1.7.1 (1.7.250401001) - Toutes les autres API

Ces API ne seront fonctionnelles que sur les appareils Windows Insider Preview (WIP) qui ont reçu la mise à jour du 7 mai. Le 28 au 29 mai, une mise à jour facultative sera publiée sur les appareils non WIP, suivie de la mise à jour du 10 juin. Cette mise à jour apporte avec elle les modèles IA requis pour que les API d’IA Windows fonctionnent. Ces mises à jour nécessitent également que toute application utilisant des API Windows AI ne puisse pas le faire tant que l’application n’a pas reçu l’identité du package au moment de l’exécution.

Intégrer Phi Silica

Avec un modèle de langue local Phi Silica, vous pouvez générer des réponses textuelles aux requêtes de l’utilisateur. Tout d’abord, vérifiez que vous disposez des conditions préalables et des modèles disponibles sur votre appareil, comme indiqué dans Prise en main des API Windows AI.

Spécifier les espaces de noms requis

Pour utiliser Phi Silicon, assurez-vous d’utiliser les espaces de noms requis :

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;

Générer une réponse

Cet exemple montre comment générer une réponse à une invite Q&A avec modération de contenu personnalisée (voir Modération du contenu avec Windows AI Foundry).

  1. Vérifiez que le modèle de langage est disponible en appelant la méthode GetReadyState et en attendant que la méthode EnsureReadyAsync retourne correctement.

  2. Une fois le modèle de langage disponible, créez un objet LanguageModel pour le référencer.

  3. Envoyez une invite de chaîne de caractères au modèle à l’aide de la méthode GenerateResponseAsync, qui retourne le résultat complet.

if (LanguageModel.GetReadyState() == AIFeatureReadyState.EnsureNeeded) 
{ 
   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;

La réponse générée par cet exemple est la suivante :

C6H12O6

Compétences d’intelligence de texte

Phi Silicon inclut des fonctionnalités de transformation de texte intégrées (appelées compétences d’intelligence de texte) qui peuvent fournir des réponses structurées, concises et conviviales grâce à une mise en forme prédéfinie à l’aide d’un modèle de langage local.

Les compétences prises en charge sont les suivantes :

  • Texte à tableau : convertit la réponse de l'invite en format de tableau structuré, si applicable.
  • Résumé : fournit un résumé concis du texte de l'invite.
  • Réécriture : réécrit la réponse rapide pour améliorer la clarté et la lisibilité.

Les étapes suivantes décrivent comment utiliser les compétences d’intelligence de texte.

  1. Créer un objet LanguageModel
    Cet objet fait référence au modèle local de langage Phi Silicon (n’oubliez pas de confirmer que le modèle Phi Silicon est disponible sur l’appareil).

  2. Instancier l’objet spécifique à la compétence
    Choisissez la classe appropriée en fonction de la compétence que vous souhaitez appliquer et passez l’instance LanguageModel en tant que paramètre.

  3. Invocer la méthode pour exécuter la fonctionnalité
    Chaque compétence expose une méthode asynchrone qui traite l’entrée et retourne un résultat mis en forme.

  4. Gérer la réponse
    Le résultat est retourné sous la forme d’un objet typé, que vous pouvez imprimer ou journaliser en fonction des besoins.

Cet exemple illustre la compétence de synthèse du texte.

  1. Créez une instance LanguageModel (languageModel).
  2. Passez ce LanguageModel au constructeur TextSummarizer .
  3. Passez du texte à la méthode SummarizeAsync et imprimez le résultat.
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;

IA responsable

Nous avons utilisé une combinaison des étapes suivantes pour garantir que ces API d’imagerie sont fiables, sécurisées et générées de manière responsable. Nous vous recommandons de consulter les meilleures pratiques décrites dans développement d’IA responsable sur Windows lors de l’implémentation de fonctionnalités IA dans votre application.

Voir aussi