이 기능은 아직 사용할 수 없습니다. 그것은 Windows 앱 SDK 곧 실험 채널 릴리스에서 제공 될 것으로 예상된다.
Windows 앱 SDK 실험 채널에는 개발 초기 단계의 API 및 기능이 포함됩니다. 실험적 채널의 모든 API는 광범위한 수정 및 호환성이 손상되는 변경이 적용되며 언제든지 후속 릴리스에서 제거될 수 있습니다. 프로덕션 환경에서는 사용할 수 없으며 실험적 기능을 사용하는 앱은 Microsoft Store에 게시할 수 없습니다.
Phi Silica는 Windows 앱 SDK 사용하여 Windows 앱에 통합할 수 있는 로컬 언어 모델입니다.
Microsoft의 가장 강력한 NPU 튜닝 로컬 언어 모델인 Phi Silica는 Windows Copilot+ PC 디바이스의 효율성과 성능에 최적화되어 있으며 LLM(대규모 언어 모델)에 있는 많은 기능을 제공합니다.
이 수준의 최적화는 Windows 앱 SDK 내의 모델에서만 사용할 수 있으며 다른 버전의 Phi에서는 사용할 수 없습니다.
API 세부 정보는 Windows 앱 SDK Phi Silica에 대한 API 참조를 참조하세요.
팁
Windows 앱 SDK GitHub 리포지토리에서 새 문제를 만들어 이러한 API 및 해당 기능에 대한 피드백을 제공합니다. (제목에 Phi Silica를 포함해야 합니다.)
마지막으로 전체 결과를 반환하는 GenerateResponseAsync 메서드를 사용하여 문자열 프롬프트를 모델에 제출합니다.
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;
이 예제에서 생성된 응답은 다음과 같습니다.
The molecular formula for glucose is C6H12O6.
부분 응답 스트림 생성
이 예제에서는 응답이 부분 결과의 스트림으로 반환되는 Q&A 프롬프트에 대한 응답을 생성하는 방법을 보여줍니다.
먼저 로컬 언어 모델을 참조하는 LanguageModel 개체를 만듭니다(이전 코드 조각에서 언어 모델이 있는지 이미 확인했습니다).
그런 다음 GenerateResponseWithProgressAsync 호출에서 LanguageModelResponse를 비동기적으로 검색하고 응답이 생성될 때 콘솔에 씁니다.
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;
책임 있는 AI
Phi Silica는 안전하고 안전한 AI 환경을 사용하여 앱을 빌드하기 위한 강력하고 신뢰할 수 있는 모델을 개발자에게 제공합니다. Phi Silica가 신뢰할 수 있고 안전하며 책임감 있게 빌드되도록 하기 위해 다음 단계를 수행했습니다(또한 Windows의 책임 있는 생성 AI 개발에 설명된 모범 사례를 검토하는 것이 좋습니다).
모델 품질을 철저히 테스트하고 평가하여 잠재적 위험을 식별하고 완화합니다.
모델의 강점과 한계를 설명하고 의도한 용도에 대한 명확성을 제공하는 Phi Silica 모델 카드를 만듭니다.
Phi Silica 실험 릴리스의 증분 롤아웃. 최종 Phi Silica 실험 릴리스에 이어, 롤아웃은 서명된 앱으로 확장되어 로컬 모델 기능이 있는 애플리케이션에 맬웨어 검사가 적용되었는지 확인합니다.
사용자가 시스템, 사용자 또는 앱의 디바이스에서 모델을 끌 수 있도록 설정에서 기능 액세스 관리자를 통해 고객 컨트롤을 제공합니다.
Phi Silica의 입력 및 AI 생성 출력 모두에서 유해한 콘텐츠를 식별하고 필터링하는 con텐트 모드ration에 대한 로컬 AI 모델을 제공합니다. 이 로컬 con텐트 모드ration 모델은 텍스트 조정을 위한 Azure AI 콘텐츠 안전 모델을 기반으로 하며 비슷한 성능을 제공합니다.
중요
콘텐츠 안전 시스템은 틀릴 수 없으며 가끔 오류가 발생할 수 있으므로 추가적인 RAI(책임 있는 AI) 도구와 사례를 통합하는 것이 좋습니다. 자세한 내용은 Windows의 책임 있는 생성 AI 개발을 참조 하세요.