다음을 통해 공유


Windows 앱에서 Machine Learning 모델 사용

이 가이드는 일반적인 질문을 해결하고, 기본 개념과 리소스를 공유하고, Windows 앱에서 AI 및 ML 모델을 사용하는 방법에 대한 권장 사항을 제공하여 앱 개발자가 AI(인공 지능) 및 ML(Machine Learning) 모델을 사용하는 새로운 방법을 안내합니다.

ML(Machine Learning) 은 컴퓨터가 데이터에서 학습하고 예측 또는 결정을 내릴 수 있도록 하는 AI(인공 지능) 분기입니다.

ML 모델은 데이터에 대해 학습한 다음 콘텐츠 생성, 콘텐츠 추론, 이미지 인식, 자연어 처리, 감정 분석 등과 같은 다양한 작업을 수행하도록 배포할 수 있는 알고리즘입니다.

Windows 애플리케이션은 ML 모델을 어떻게 활용할 수 있나요?

Windows 애플리케이션에서 ML 모델을 활용하여 기능 및 사용자 환경을 향상시킬 수 있는 몇 가지 방법은 다음과 같습니다.

  • 앱은 생성 AI 모델을 사용하여 복잡한 항목을 이해하여 요약, 다시 작성, 보고 또는 확장할 수 있습니다.
  • 앱은 자유 형식 콘텐츠를 앱이 이해할 수 있는 구조화된 형식으로 변환하는 모델을 사용할 수 있습니다.
  • 앱은 의미상 콘텐츠를 검색하고 관련 콘텐츠를 빠르게 찾을 수 있는 의미 체계 검색 모델을 사용할 수 있습니다.
  • 앱은 자연어 처리 모델을 사용하여 복잡한 자연어 요구 사항을 추론하고 사용자의 요청을 수행하기 위한 작업을 계획하고 실행할 수 있습니다.
  • 앱은 이미지 조작 모델을 사용하여 이미지를 지능적으로 수정하거나, 주제를 지우거나 추가하거나, 스케일링하거나, 새 콘텐츠를 생성할 수 있습니다.
  • 앱은 예측 진단 모델을 사용하여 문제를 식별하고 예측하고 사용자를 안내하거나 이를 수행할 수 있습니다.

AI 지원 API의 ML 모델

AI Windows Copilot Runtime 를 활용하는 운영 체제와 상호 작용하는 여러 가지 방법이 결합됩니다. 여기에는 즉시 사용할 수 있는 AI 지원 기능 및 API가 포함됩니다 Windows Copilot Library. 위에 나열된 일부 시나리오를 지원하는 이러한 즉시 사용할 수 있는 기능 및 API에 대한 지침은 Windows 앱에서 AI 지원 API 사용 시작을 참조하세요.

Windows Copilot Library 모델은 Windows 디바이스에서 직접 로컬로 실행되지만 즉시 사용할 수 있는 API를 통해 클라우드 기반 모델을 사용하도록 선택할 수도 있습니다. 로컬 또는 클라우드에서 실행 중인 API는 최적화, 서식 지정 또는 미세 조정을 수행할 필요가 없도록 기본 ML 모델을 추상화합니다.

그러나 Windows에서 로컬로 사용할 고유한 ML 모델을 찾으려고 할 수 있습니다. Windows 디바이스에서 올바르게 실행되도록 이 모델을 최적화하거나 특정 사용 사례 또는 회사와 관련된 사용자 지정 데이터로 학습되도록 모델을 미세 조정 해야 할 수 있습니다. 이 문서에서는 이 프로세스를 안내하는 데 도움이 되는 몇 가지 개념, 도구 및 오픈 소스 라이브러리에 대해 설명합니다.

로컬에서 작은 언어 모델 및 클라우드의 큰 언어 모델 실행

SLLM(소형 언어 모델)은 더 빠른 유추 성능 시간으로 모델을 로컬로 저장하고 실행할 수 있도록 작은 데이터 세트에 대한 특정 작업 또는 수행기본에 대해 학습되는 간결하고 효율적이도록 설계되었습니다. SLM은 LLM(대규모 언어 모델)으로 광범위한 지식이나 복잡한 추론을 제공하지 않고 학습하는 데 사용되는 데이터의 양이 제한됩니다. 그러나 SLM은 채팅 정보를 디바이스에 안전하게 로컬로 유지하여 실행 및 향상된 데이터 개인 정보 보호에 대한 계산 능력이 덜 필요하기 때문에 로컬로 사용하는 경우 LLM에 대한 보다 안전하고 비용 효율적인 대안을 제공할 수 있습니다.

SLM은 디바이스에서 ML 모델을 실행하면 크기가 실행 중인 디바이스의 스토리지 및 처리 기능을 초과해서는 안 되므로 로컬 사용에 더 적합합니다. 대부분의 LLM은 너무 커서 로컬로 실행되지 않습니다.

Microsoft Phi-2Phi-3 모델은 SLL의 예입니다.

LLM(큰 언어 모델) 은 더 많은 수의 매개 변수를 사용하여 대량의 데이터에 대해 학습되어 스토리지의 크기가 더 복잡하고 더 큽니다. 크기 때문에 LLM은 데이터의 더 미묘하고 복잡한 패턴을 더 잘 이해할 수 있으며, 더 복잡한 패턴으로 작업할 수 있는 능력으로 지식에 대한 광범위한 스펙트럼을 다룰 수 있습니다. 또한 학습 및 유추 모두에 더 중요한 계산 리소스가 필요합니다. 대부분의 LLM은 로컬 디바이스에서 실행할 수 없습니다.

OpenAI 언어 모델 GPT-4o, GPT-4 터보, GPT-3.5 터보, DALL-E 및 위스퍼는 모두 LLM의 예입니다.

SLM을 로컬로 사용하는 것과 클라우드의 LLM 간의 차이점에 대한 자세한 지침은 Windows 앱에서 로컬 및 클라우드 기반 AI 지원 API 사용에 대한 고려 사항을 참조하세요.

웹에서 오픈 소스 ML 모델 찾기

사용할 준비가 되어 있고 사용자 고유의 데이터 또는 기본 설정으로 사용자 지정할 수 있는 오픈 소스 ML 모델은 다양한 위치에서 사용할 수 있으며, 가장 인기 있는 몇 가지 모델은 다음과 같습니다.

  • 포옹 얼굴: 변환기 라이브러리를 통해 구동되는 자연어 처리를 위한 10,000개 이상의 미리 학습된 ML 모델의 허브입니다. 텍스트 분류, 질문 답변, 요약, 번역, 생성 등에 대한 모델을 찾을 수 있습니다.
  • ONNX 모델 동물원: 컴퓨터 비전, 자연어 처리, 음성 등과 같은 다양한 작업기본 및 작업을 다루는 ONNX 형식의 미리 학습된 ML 모델 컬렉션입니다.
  • Qualcomm AI Hub: Qualcomm Snapdragon 디바이스에 최적화된 다양한 ML 모델 및 도구에 대한 액세스를 제공하는 플랫폼입니다. 모바일 디바이스에서 ML 애플리케이션을 빌드하고 배포하기 위한 프레임워크, 라이브러리 및 SDK뿐만 아니라 이미지, 비디오, 오디오 및 센서 처리를 위한 모델을 찾을 수 있습니다. Qualcomm AI Hub는 개발자와 연구원을 위한 자습서, 가이드 및 커뮤니티 지원도 제공합니다.
  • Pytorch Hub: 연구 재현성을 용이하게 하고 새로운 연구를 가능하게 하기 위해 설계된 미리 학습된 모델 리포지토리입니다. 기계 학습 연구 재현성을 개선하기 위한 기본 구성 요소를 제공하는 간단한 API 및 워크플로입니다. PyTorch Hub는 연구 재현성을 용이하게 하기 위해 특별히 설계된 미리 학습된 모델 리포지토리로 구성됩니다.
  • TensorFlow Hub: ML 모델 빌드 및 학습에 널리 사용되는 프레임워크인 TensorFlow에 대해 미리 학습된 ML 모델 및 재사용 가능한 구성 요소의 리포지토리입니다. 이미지, 텍스트, 비디오 및 오디오 처리에 대한 모델과 전송 학습 및 미세 조정을 찾을 수 있습니다.
  • 모델 동물원: 다양한 프레임워크 및 작업에 가장 적합한 오픈 소스 ML 모델을 큐레이팅하고 순위를 지정하는 플랫폼입니다. 범주, 프레임워크, 라이선스 및 등급별로 모델을 찾아보고 각 모델에 대한 데모, 코드 및 논문을 볼 수 있습니다.

일부 모델 라이브러리는 앱을 통해 사용자 지정 및 배포하기 위한 것이 아니라 다음과 같은 개발 수명 주기의 일부로 실습 탐색 및 검색을 위한 유용한 도구입니다.

  • Ollama: Ollama는 얼굴 감지, 감정 분석 또는 음성 인식과 같은 다양한 작업을 위해 즉시 사용할 수 있는 ML 모델의 마켓플레이스입니다. 몇 번의 클릭으로 모델을 찾아보고 테스트하고 앱에 통합할 수 있습니다.
  • LM Studio: Lmstudio는 끌어서 놓기 인터페이스를 사용하여 사용자 고유의 데이터에서 사용자 지정 ML 모델을 만들 수 있는 도구입니다. 다양한 ML 알고리즘 중에서 선택하고, 데이터를 전처리 및 시각화하고, 모델을 학습 및 평가할 수 있습니다.

Windows 앱 에서 ML 모델을 사용하는 것을 목표로 하는 ML 모델을 찾을 때마다 Windows에서 책임 있는 생성 AI 애플리케이션 및 기능 개발 지침을 따르는 것이 좋습니다. 이 지침은 거버넌스 정책, 사례 및 프로세스를 이해하고, 위험을 식별하고, 테스트 방법을 권장하고, 중재자 및 필터와 같은 안전 조치를 활용하고, 안전하고 작업할 책임이 있는 모델을 선택할 때 특정 고려 사항을 설명하는 데 도움이 됩니다.

Windows에서 실행되도록 ML 모델을 최적화할 어떻게 할까요? 있나요?

모델의 유형, 원본 및 형식 및 앱 유형에 따라 Windows 앱에서 ML 모델을 사용하는 방법에는 여러 가지가 있습니다.

ML 모델을 찾을 수 있는 몇 가지 형식은 다음과 같습니다.

  • ONNX: 다양한 프레임워크 및 플랫폼에서 ML 모델을 나타내고 교환하기 위한 개방형 표준입니다. ONNX 형식으로 미리 학습된 ML 모델을 찾으면 ORT(사용)를 사용하여 ONNX Runtime Windows 앱에서 모델을 로드하고 실행할 수 있습니다. ORT를 사용하면 디바이스의 하드웨어 가속 유추 기능에 액세스하고 ML 모델의 성능을 최적화할 수 있습니다. PyTorch 또는 TensorFlow와 같은 다른 형식의 미리 학습된 ML 모델이 있는 경우 Olive와 같은 모델 최적화 도구를 사용하여 ONNX로 변환할 수 있습니다. Olive 사용에 대한 도움말은 Microsoft Olive(생성 AI 애플리케이션 아키텍처를 위한 Journey Series)를 사용하여 SLM 미세 조정을 참조하세요. ONNX 모델을 만들고 사용하는 방법에 대한 자습서는 GitHub의 ONNX 자습서를 참조하세요. Windows 앱에서 ONNX 모델을 사용하는 방법을 보여주는 샘플은 Windows 샘플 갤러리의 AI를 참조하세요.

  • PyTorch: Python 및 C++ 인터페이스에서 사용할 수 있는 매우 인기 있는 오픈 소스 딥 러닝 프레임워크입니다. 이는 ML 모델에서 찾을 수 있는 가장 일반적인 형식일 수 있습니다. Windows(C# 또는 C++) 앱 또는 웹앱에서 PyTorch ML 모델을 사용하려는 경우 PyTorch 라이브러리에 대한 .NET 및 C++ 바인딩인 TorchSharpLibTorch를 사용할 수 있습니다. TorchSharp 및 LibTorch를 사용하면 텐서를 만들고, 로드하고, 조작하고, 신경망을 빌드 및 실행하고, PyTorch 형식을 사용하여 모델을 저장하고 로드할 수 있습니다. 샘플의 경우 검사Out TorchSharp 예제, 배포용 TorchScript, PyTorch C++ 예제입니다. 웹앱의 경우 검사 사용하여 웹 애플리케이션 ONNX Runtime빌드를 수행합니다. DirectML을 사용하여 PyTorch 모델을 실행하는 방법에 대한 예제는 Windows 샘플 갤러리의 AI를 참조하세요.

  • TensorFlow 는 다양한 작업을 위한 기계 학습 모델을 빌드하고 배포하는 데 사용되는 기계 학습 및 인공 지능을 위한 또 다른 인기 있는 오픈 소스 소프트웨어 라이브러리입니다.

  • 웹앱용 WebNN API: WebIDL 및 JavaScript API를 기반으로 브라우저에서 신경망 하드웨어 가속에 액세스하기 위한 웹 표준입니다. 이를 통해 웹 개발자는 클라우드 서비스 또는 네이티브 라이브러리를 사용하지 않고도 클라이언트 쪽에서 기계 학습 모델을 효율적으로 만들고 실행할 수 있습니다. GitHub의 WebNN 샘플 Windows 샘플 갤러리의 AI에서 사용하는 ONNX Runtime WebNN 샘플입니다.

Windows에서 실행할 사용자 지정 데이터로 ML 모델을 미세 조정할 어떻게 할까요? 있나요?

AI Toolkit visual Studio Code 용은 AI 모델을 로컬로 다운로드하고 실행할 수 있는 VS Code 확장입니다. AI Tookit은 다음을 수행할 수도 있습니다.

  • 직관적인 플레이그라운드 또는 REST API를 사용하여 애플리케이션에서 모델을 테스트합니다.
  • 로컬 또는 클라우드(가상 머신)에서 AI 모델을 미세 조정하여 새 기술을 만들고 응답의 안정성을 개선하며 응답의 톤과 형식을 설정합니다.
  • Phi-3 및 Mistral같은 인기 있는 SLLM(소형 언어 모델)을 미세 조정합니다.
  • 클라우드 또는 디바이스에서 실행되는 애플리케이션을 사용하여 AI 기능을 배포합니다.

AI 기능을 사용하여 성능을 향상하기 위해 하드웨어 가속을 활용하는 방법

DirectML은 Windows 디바이스 하드웨어가 디바이스 GPU 또는 NPU를 사용하여 ML 모델의 성능을 가속화할 수 있도록 하는 하위 수준 API입니다. DirectML을 ONNX Runtime 페어링하는 것은 일반적으로 개발자가 대규모로 사용자에게 하드웨어 가속 AI를 가져오는 가장 간단한 방법입니다. 자세한 정보: DirectML 개요.