Introducción a PhiLice en el SDK de Aplicaciones para Windows

Importante

Esta característica aún no está disponible. Se espera que se envíe en una próxima versión experimental del canal de la SDK de Aplicaciones para Windows.

El canal experimental del SDK de Aplicaciones para Windows incluye API y características que se encuentran en las primeras fases del desarrollo. Todas las API del canal experimental están sujetas a revisiones exhaustivas y cambios importantes y se pueden eliminar de versiones posteriores en cualquier momento. No son compatibles para el uso en entornos de producción, y las aplicaciones que utilizan las características experimentales no se pueden publicar en Microsoft Store.

PhiLice es un modelo de lenguaje local que podrá integrar en las aplicaciones de Windows mediante el SDK de Aplicaciones para Windows.

Como modelo de lenguaje local con ajuste de NPU más potente de Microsoft, PhiLice está optimizado para mejorar la eficiencia y el rendimiento en los dispositivos con Windows Copilot+, a la vez que ofrece muchas de las funcionalidades que se encuentran en modelos de lenguaje grande (LLM).

Este nivel de optimización es exclusivo del modelo dentro de la SDK de Aplicaciones para Windows y no está disponible en otras versiones de Phi.

Para obtener más información sobre la API, consulte referencia de API para PhiLice en la SDK de Aplicaciones para Windows.

Sugerencia

Proporcione comentarios sobre estas API y su funcionalidad mediante la creación de un nuevo problema en el repositorio de GitHub de SDK de Aplicaciones para Windows. (Asegúrese de incluir PhiLice en el título!)

Requisitos previos

  • Equipos CoPilot+ que contienen un procesador Qualcomm Snap® X Elite.

Usar el SDK de Aplicaciones para Windows para integrar PhiLice en la aplicación de Windows

Con un modelo de lenguaje Phi Silica local y el SDK de Aplicaciones para Windows puede generar respuestas de texto a las solicitudes del usuario.

Generar una respuesta completa

En este ejemplo se muestra cómo generar una respuesta a una serie de preguntas y respuestas, donde se genera la respuesta completa antes de que se devuelva el resultado.

  1. En primer lugar, asegúrese de que el modelo de lenguaje esté disponible; para ello, llame al método IsAvailable y espere a que el método MakeAvailableAsync se devuelva correctamente.
  2. Una vez disponible el modelo de lenguaje, cree un objeto LanguageModel para que haga referencia al modelo.
  3. Por último, debe enviar una consulta de cadena al modelo mediante el método GenerateResponseAsync, que devuelve el resultado completo.
using Microsoft.Windows.AI.Generative; 
 
 
if (!LanguageModel.IsAvailable()) 
{ 
   var op = await LanguageModel.MakeAvailableAsync(); 
} 
 
using LanguageModel languageModel = await LanguageModel.CreateAsync(); 
 
string prompt = "Provide the molecular formula for glucose."; 
 
var result = await languageModel.GenerateResponseAsync(prompt); 
 
Console.WriteLine(result.Response); 
using namespace winrt::Microsoft::Windows::AI::Generative;

if (!LanguageModel::IsAvailable()) 
{
    auto op = LanguageModel::MakeAvailableAsync().get();
}

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

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

auto result = languageModel.GenerateResponseAsync(prompt).get();

std::cout << result.Response << std::endl;

La respuesta que se genera en este ejemplo es:

The molecular formula for glucose is C6H12O6.

Generación de un flujo de respuestas parciales

En este ejemplo se muestra cómo generar una respuesta a una serie de preguntas y respuestas, donde se devuelve la respuesta como una secuencia de resultados parciales.

  1. En primer lugar, debe crear un objeto LanguageModel para hacer referencia al modelo de lenguaje local (ya debe haber comprobado la presencia del modelo de lenguaje en el fragmento de código anterior).
  2. A continuación, se recupera de forma asíncrona el elemento LanguageModelResponse en una llamada a GenerateResponseWithProgressAsync y se escribe en la consola a medida que se genera la respuesta.
using Microsoft.Windows.AI.Generative; 

using LanguageModel languageModel = await LanguageModel.CreateAsync(); 
 
 string prompt = "Provide the molecular formula for glucose."; 
 
  AsyncOperationProgressHandler<LanguageModelResponse, string> 
 progressHandler = (asyncInfo, delta) => 
 { 
     Console.WriteLine($"Progress: {delta}"); 
     Console.WriteLine($"Response so far: {asyncInfo.GetResults().Response()}"); 
 }; 
 
var asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt); 
 
 asyncOp.Progress = progressHandler; 
 
 var result = await asyncOp;  
 
 Console.WriteLine(result.Response);
using namespace winrt::Microsoft::Windows::AI::Generative;

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

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

AsyncOperationProgressHandler<LanguageModelResponse, std::string> progressHandler = 
    [](const IAsyncOperationWithProgress<LanguageModelResponse, std::string>& asyncInfo, const std::string& delta) 
    { 
        std::cout << "Progress: " << delta << std::endl; 
        std::cout << "Response so far: " << asyncInfo.GetResults().Response() << std::endl; 
    };

auto asyncOp = languageModel.GenerateResponseWithProgressAsync(prompt);

asyncOp.Progress(progressHandler); 

auto result = asyncOp.get();

std::cout << result.Response() << std::endl;

IA responsable

Phi Silica proporciona a los desarrolladores un modelo eficaz y confiable para crear aplicaciones con experiencias de inteligencia artificial seguras. Se han realizado los siguientes pasos para garantizar que PhiLice sea confiable, seguro y creado de forma responsable (también se recomienda revisar los procedimientos recomendados descritos en Desarrollo de ia generativa responsable en Windows).

  • Pruebas exhaustivas y evaluación de la calidad del modelo para identificar y mitigar los posibles riesgos.
  • Creación de una tarjeta de modelo phiLice que describe las fortalezas y limitaciones del modelo y proporciona claridad sobre los usos previstos.
  • Despliegue gradual de las versiones experimentales de Phi Silica. Después de la versión experimental final de Phi Silica, el lanzamiento se expandirá a las aplicaciones firmadas para asegurarse de que los exámenes de malware se han aplicado a las aplicaciones con funcionalidades del modelo local.
  • Proporcione controles de cliente a través de Administrador de Acceso a Capacidades en Configuración para que los usuarios puedan desactivar el modelo en el dispositivo para el sistema, el usuario o la aplicación.
  • Proporcione un modelo de inteligencia artificial local para la con modo carpa ration que identifica y filtra el contenido dañino tanto en la entrada como en la salida generada por ia de PhiLice. Este modelo local de con modo carpa ration se basa en el modelo de seguridad de contenido de Azure AI para la moderación de texto y proporciona un rendimiento similar.

Importante

No se puede producir ningún sistema de seguridad de contenido y se pueden producir errores ocasionales, por lo que se recomienda integrar herramientas y prácticas complementarias de INTELIGENCIA ARTIFICIAL responsable (RAI). Para obtener más información, consulte Desarrollo de IA generativa responsable en Windows.

Recursos adicionales

Acceso a archivos y carpetas con SDK de Aplicaciones para Windows y API de WinRT