Partilhar via


Introdução ao Phi Silica

Importante

As APIs do 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 idioma local ajustado para NPU que fornece muitos recursos encontrados em Large Language Models (LLMs). O modelo emprega uma técnica chamada decodificação especulativa para acelerar a geração de texto usando um modelo de rascunho mais pequeno que pode propor múltiplas sequências de tokens e ser validado em paralelo pelo modelo principal.

Observação

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

A Phi Silica está otimizada para eficiência e desempenho em PCs com Windows Copilot+ e pode ser integrada nas suas aplicações Windows através das APIs de IA do Windows no Windows App SDK.

Este 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 idioma Phi Silica local, você pode gerar respostas de texto para solicitações do usuário. Primeiro, certifique-se de ter os pré-requisitos e modelos disponíveis em seu dispositivo, conforme descrito em Introdução às APIs de IA do Windows.

Especifique 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 perguntas e respostas com moderação personalizada de conteúdo (ver Moderação de Conteúdos com as APIs de IA do Windows).

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

  2. Quando o modelo de linguagem estiver disponível, crie um objeto LanguageModel para fazer referência a ele.

  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 integrados de transformação de texto (conhecidos como Habilidades de Inteligência de Texto) que podem fornecer respostas estruturadas, concisas e fáceis de usar por meio de formatação predefinida usando um modelo de idioma local.

As competências apoiadas incluem:

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

As etapas a seguir descrevem como usar as habilidades de inteligência de texto.

  1. Criar um objeto LanguageModel
    Este 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. Instanciar o objeto específico relativo à habilidade
    Escolha a classe apropriada com base na habilidade que você deseja aplicar e passe a instância LanguageModel como um parâmetro.

  3. Invoque o método para executar a competência
    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. Crie 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 criação de imagens sejam confiáveis, seguras e criadas de forma responsável. Recomendamos rever as práticas recomendadas descritas em Desenvolvimento de IA Generativa Responsável no Windows ao implementar recursos de IA em seu aplicativo.

Ver também