Compartilhar via


Introdução ao Phi Silica

Importante

As APIs Phi Silica fazem parte de um recurso de acesso limitado (consulte a classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o Formulário de Solicitação de Token de Acesso LAF.

O Phi Silica é um poderoso modelo de linguagem local ajustado pela NPU que fornece muitos recursos encontrados em LLMs (Modelos de Linguagem Grande). O modelo emprega uma técnica chamada decodificação especulativa para acelerar a geração de texto usando um modelo de rascunho menor que pode propor várias sequências de token e ser validado em paralelo pelo modelo principal.

Observação

Os recursos do Phi Silica não estão disponíveis na China.

O Phi Silica é otimizado para eficiência e desempenho em computadores Windows Copilot+ e pode ser integrado aos aplicativos do Windows por meio das APIs de IA do Windows no SDK do Aplicativo do Windows.

Esse nível de otimização não está disponível em outras versões do Phi.

Para obter detalhes da API, consulte:

Integrar Phi Silica

Com um modelo de linguagem Phi Silica local, você pode gerar respostas de texto para prompts do usuário. Primeiro, verifique se você tem os pré-requisitos e modelos disponíveis em seu dispositivo, conforme descrito em Introdução às APIs de IA do Windows.

Especificar os namespaces necessários

Para usar o Phi Silica, verifique se você está usando os namespaces necessários:

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;

Gerar uma resposta

Este exemplo mostra como gerar uma resposta a um prompt de Q&A com moderação de conteúdo personalizada (consulte Moderação de conteúdo com as APIs de IA do Windows).

  1. Verifique se o modelo de idioma está disponível chamando o método GetReadyState e aguardando o método EnsureReadyAsync retornar com êxito.

  2. Depois que o modelo de idioma estiver disponível, crie um objeto LanguageModel para referenciá-lo.

  3. Envie um prompt de cadeia de caracteres para o modelo usando o método GenerateResponseAsync , que retorna o resultado completo.

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;

A resposta gerada por este exemplo é:

C6H12O6

Habilidades de inteligência de texto

O Phi Silica inclui recursos de transformação de texto internos (conhecidos como Habilidades de Inteligência de Texto) que podem fornecer respostas estruturadas, concisas e amigáveis por meio da formatação predefinida usando um modelo de linguagem local.

As habilidades com suporte incluem:

  • Texto em tabela: formata a resposta do prompt em um formato de tabela estruturado, quando apropriado.
  • Resumir: retorna um resumo conciso do texto do prompt.
  • Reformulação: Reformula o texto do prompt para otimizar a clareza, a legibilidade e, quando especificado, o tom (ou o estilo).

As etapas a seguir descrevem como usar as Habilidades de Inteligência de Texto.

  1. Criar um objeto LanguageModel
    Esse objeto faz referência ao modelo de linguagem Phi Silica local (lembre-se de confirmar que o modelo Phi Silica está disponível no dispositivo).

  2. Criar uma instância do objeto de habilidade específica
    Escolha a classe apropriada com base na habilidade que você deseja aplicar e passe a instância LanguageModel como um parâmetro.

  3. Chamar o método para executar a habilidade
    Cada habilidade expõe um método assíncrono que processa a entrada e retorna um resultado formatado.

  4. Manipular a resposta
    O resultado é retornado como um objeto digitado, que pode ser impresso ou registrado conforme necessário.

Este exemplo demonstra a habilidade de resumo de texto.

  1. Criar uma instância de LanguageModel (languageModel).
  2. Passe esse LanguageModel para o construtor TextSummarizer .
  3. Passe algum texto para o método SummarizeAsync e imprima o resultado.
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 responsável

Usamos uma combinação das etapas a seguir para garantir que essas APIs de imagem sejam confiáveis, seguras e criadas com responsabilidade. Recomendamos revisar as práticas recomendadas descritas no Desenvolvimento Responsável de IA Generativa no Windows ao implementar recursos de IA em seu aplicativo.

Consulte também