Windows 앱에서 AI를 사용하는 방법에 대한 질문과 대답

일반

Ai를 Windows 클라이언트 앱에 통합하려면 어떻게 해야 하나요?

로컬 모델 또는 클라우드 기반 모델의 두 가지 기본 방법을 통해 AI를 Windows 애플리케이션에 통합할 수 있습니다. 로컬 모델 옵션의 경우 기존 모델을 활용하거나 TensorFlow 또는 PyTorch와 같은 플랫폼을 사용하여 직접 학습한 다음 OnnxRuntime을 통해 애플리케이션에 통합할 수 있습니다. Windows Copilot 런타임OCR 또는 Phi Silica 모델 활용을 비롯한 다양한 함수에 대한 API를 제공합니다. 반면에 클라우드에서 모델을 호스팅하고 REST API를 통해 액세스하면 리소스 집약적 작업을 클라우드에 위임하여 애플리케이션이 간소화된 상태를 유지할 수 있습니다. 자세한 내용은 Windows 앱에서 Machine Learning 모델 사용을 참조하세요.

Windows 클라이언트 앱에서 AI를 개발하는 데 가장 적합한 프로그래밍 언어는 무엇인가요?

원하는 프로그래밍 언어를 사용할 수 있습니다. 예를 들어 C#은 Windows 클라이언트 앱을 만드는 데 널리 사용됩니다. 낮은 수준의 세부 정보를 더 많이 제어해야 하는 경우 C++는 훌륭한 옵션입니다. 또는 Python을 사용하는 것이 좋습니다. WSL(Linux용 Windows 하위 시스템)을 사용하여 Windows에서 Linux 기반 AI 도구를 실행할 수도 있습니다.

Windows 클라이언트 앱에 가장 적합한 AI 프레임워크는 무엇인가요?

OnnxRuntime을 사용하는 것이 좋습니다.

Windows 클라이언트 앱에서 AI를 사용할 때 데이터 개인 정보 보호 및 보안을 어떻게 처리해야 하나요?

AI 기반 앱을 개발할 때는 사용자 데이터의 개인 정보 보호 및 보안을 존중해야 합니다. 데이터를 수집하기 전에 중요한 데이터 암호화, 보안 연결 사용 및 사용자 동의 얻기와 같은 데이터 처리 모범 사례를 따라야 합니다. 또한 데이터를 사용하는 방법에 대해 투명하고 사용자에게 해당 데이터를 제어할 수 있도록 해야 합니다. Windows에서도 책임 있는 생성 AI 애플리케이션 및 기능 개발을 읽어 보세요.

Windows 클라이언트 앱에서 AI를 실행하기 위한 시스템 요구 사항은 무엇인가요?

AI를 사용하는 Windows 앱의 시스템 요구 사항은 AI 모델의 복잡성과 사용되는 하드웨어 가속에 따라 달라집니다. 간단한 모델의 경우 최신 CPU로 충분할 수 있지만 더 복잡한 모델의 경우 GPU 또는 NPU가 필요할 수 있습니다. 또한 클라우드 기반 AI 서비스에 필요한 네트워크 대역폭뿐만 아니라 앱의 메모리 및 스토리지 요구 사항도 고려해야 합니다.

Windows 클라이언트 앱에서 AI 성능을 최적화하는 방법

Windows 앱에서 AI 성능을 최적화하려면 GPU 또는 NPU와 같은 하드웨어 가속을 사용하여 모델 유추 속도를 높일 수 있습니다. Windows Copilot+ 노트북은 AI 워크로드에 최적화되어 있으며 AI 작업에 상당한 성능 향상을 제공할 수 있습니다. Visual Studio Code용 AI 도구 키트 개요도 참조하세요.

Windows 클라이언트 앱에서 미리 학습된 AI 모델을 사용할 수 있나요?

예, Windows 앱에서 미리 학습된 AI 모델을 사용할 수 있습니다. 인터넷에서 미리 학습된 모델을 다운로드하거나 클라우드 기반 AI 서비스를 사용하여 미리 학습된 모델에 액세스할 수 있습니다. 그런 다음 OnnxRuntime과 같은 프레임워크를 사용하여 이러한 모델을 앱에 통합할 수 있습니다.

DirectML이란?

DirectML은 AMD, Intel, NVIDIA 및 Qualcomm과 같은 공급업체의 모든 DirectX 12 지원 GPU를 포함하여 지원되는 광범위한 하드웨어 및 드라이버에서 일반적인 기계 학습 작업에 GPU 가속을 제공하는 기계 학습용 하위 수준 API입니다.

ONNX란?

Open Network Neural Exchange 또는 ONNX는 ML 모델을 나타내는 개방형 표준 형식입니다. PyTorch, TensorFlow, SciKit-Learn, Keras, Chainer, MATLAB 등과 같은 인기 있는 ML 모델 프레임워크를 표준 ONNX 형식으로 내보내거나 변환할 수 있습니다. ONNX 형식이 되면 모델은 다양한 플랫폼 및 디바이스에서 실행할 수 있습니다. ONNX는 학습된 것과 다른 형식으로 ML 모델을 사용하는 데 적합합니다.

ORT란?

OnnxRuntime 또는 ORT는 하드웨어 가속기(디바이스 CPU, GPU 또는 NPU)를 지원하는 다양한 프레임워크(PyTorch, TensorFlow 등)에서 모델을 실행하기 위한 통합 런타임 도구입니다.

ONNX는 PyTorch 또는 TensorFlow와 같은 다른 ML 프레임워크와 어떻게 다른가요?

PyTorch 및 TensorFlow는 AI 애플리케이션에서 사용되는 딥 러닝 모델을 개발, 학습 및 실행하는 데 사용됩니다. PyTorch는 연구에 자주 사용되며 TensorFlow는 산업 배포에 자주 사용되며 ONNX는 필요에 따라 프레임워크 간에 전환하고 플랫폼 간에 호환될 수 있도록 격차를 해소하는 표준화된 모델 교환 형식 입니다.

NPU란? CPU 또는 GPU와 어떻게 다른가요?

신경 처리 장치 또는 NPU는 AI 작업을 수행하도록 특별히 설계된 전용 AI 칩입니다. NPU의 초점은 CPU 또는 GPU의 포커스와 다릅니다. 중앙 처리 장치 또는 CPU는 명령 및 범용 계산을 실행하는 컴퓨터의 기본 프로세서입니다. 그래픽 처리 장치 또는 GPU는 그래픽 렌더링을 위해 설계되고 병렬 처리에 최적화된 특수 프로세서입니다. 비디오 편집 및 게임 작업을 위해 복잡한 이미지를 렌더링할 수 있습니다.

NPU는 딥 러닝 알고리즘을 가속화하도록 설계되었으며 컴퓨터의 CPU 또는 GPU에서 일부 작업을 제거할 수 있으므로 디바이스가 보다 효율적으로 작동할 수 있습니다. NPU는 신경망 작업을 가속화하기 위해 특별히 제작되었습니다. 대량의 데이터를 병렬로 처리하는 데 탁월하므로 이미지 인식 또는 자연어 처리와 같은 일반적인 AI 작업에 적합합니다. 예를 들어 이미지 인식 작업 중에 NPU는 개체 감지 또는 이미지 가속을 담당할 수 있지만 GPU는 이미지 렌더링을 담당합니다.

디바이스에 어떤 종류의 CPU, GPU 또는 NPU가 있는지 어떻게 알 수 있나요?

Windows 디바이스에서 CPU, GPU 또는 NPU의 유형과 성능 방식을 확인하려면 작업 관리자(Ctrl + Alt + 삭제)를 연 다음 성능 탭을 선택하면 컴퓨터의 CPU, 메모리, Wi-Fi, GPU 및/또는 NPU가 나열되고 속도, 사용률 및 기타 데이터에 대한 정보와 함께 표시됩니다.

WinML이란?

WinML 또는 Windows Machine Learning은 개발자가 디바이스의 기능을 활용하여 모델 유추를 수행할 수 있도록 하는 Windows 디바이스에 ML(하드웨어 가속 기계 학습) 모델을 배포하기 위한 고급 API입니다. 모델 로드, 바인딩 및 평가에 중점을 두고 있습니다. WinML은 ONNX 모델 형식을 사용합니다.

유용한 AI 개념

LLM(큰 언어 모델)이란?

LLM은 범용 언어 생성 및 이해를 달성하는 기능으로 유명한 ML(Machine Learning) 모델의 한 유형입니다. LLM은 계산 집약적인 자체 감독 및 반 감독 학습 프로세스 중에 방대한 양의 텍스트 문서에서 통계 관계를 학습하여 기능을 획득하는 인공 신경망입니다. LLM은 일부 입력 텍스트가 제공되면 일관되고 상황에 맞는 문장을 만들 가능성이 가장 큰 단어(또는 "토큰")를 생성하는 생성 AI의 한 형태인 텍스트 생성에 자주 사용됩니다. 매개 변수가 적고 용량이 제한되는 SLLM(Small Language Models)도 있지만 더 효율적일 수 있습니다(계산 리소스가 덜 필요함), 비용 효율적이고 특정 도메인에 이상적입니다.

ML 모델 학습이란?

Machine Learning에서 모델 학습에는 데이터 세트를 모델(LLM 또는 SLM)에 공급하여 모델이 해당 데이터를 기반으로 예측 또는 결정을 내릴 수 있도록 데이터에서 학습하고 패턴을 인식할 수 있도록 하는 작업이 포함됩니다. 또한 모델 매개 변수를 반복적으로 조정하여 성능을 최적화할 수도 있습니다.

추론이란?

학습된 기계 학습 모델을 사용하여 보이지 않는 새 데이터에 대한 예측 또는 분류를 만드는 프로세스를 "추론"이라고 합니다. 데이터 세트에서 언어 모델을 학습하고 기본 패턴 및 관계를 학습하면 실제 시나리오에 이 지식을 적용할 준비가 된 것입니다. 유추는 AI 모델의 진실의 순간이며, 학습 중에 학습된 정보를 얼마나 잘 적용하여 예측을 하거나 작업을 해결할 수 있는지를 테스트합니다. 유추를 위해 기존 모델을 사용하는 프로세스는 학습 단계와 다르며, 학습 및 유효성 검사 데이터를 사용하여 모델을 개발하고 해당 매개 변수를 미세 조정해야 합니다.

ML 모델 미세 조정이란?

미세 조정은 미리 학습된 모델이 특정 작업을 수행하도록 조정되는 기계 학습에서 중요한 단계입니다. 모델을 처음부터 학습시키는 대신, 미세 조정은 기존 모델(일반적으로 큰 데이터 세트에서 학습됨)으로 시작하고 더 작은 작업별 데이터 세트를 사용하여 해당 매개 변수를 조정합니다. 미세 조정을 통해 모델은 사전 학습 중에 얻은 일반 지식을 유지하면서 작업별 기능을 학습하여 특정 애플리케이션에 대한 성능이 향상됩니다.

프롬프트 엔지니어링이란?

프롬프트 엔지니어링은 언어 모델의 동작과 응답을 형성하기 위해 생성 AI와 함께 사용되는 전략적 접근 방식입니다. 언어 모델(예: GPT-3 또는 GPT-4)에서 원하는 결과를 얻기 위해 입력 프롬프트 또는 쿼리를 신중하게 작성해야 합니다. 효과적인 프롬프트를 디자인하여 ML 모델을 안내하여 원하는 응답 유형을 생성할 수 있습니다. 기술에는 표현 조정, 컨텍스트 지정 또는 컨트롤 코드를 사용하여 모델 출력에 영향을 주는 것이 포함됩니다.

ML 모델 학습과 관련하여 하드웨어 가속이란?

하드웨어 가속은 범용 CPU를 통해 달성할 수 있는 것 이상으로 AI 애플리케이션의 속도를 높이기 위해 설계된 특수 컴퓨터 하드웨어를 사용하는 것을 의미합니다. 하드웨어 가속은 학습 모델, 예측 만들기 또는 딥 러닝 워크로드에 대한 병렬 처리에서 뛰어난 전용 하드웨어 구성 요소에 대한 계산 오프로드와 같은 기계 학습 작업의 속도, 에너지 효율성 및 전반적인 성능을 향상시킵니다. GPU와 NPU는 모두 하드웨어 가속기의 예입니다.

앱에 AI 기능을 적용하려는 데이터 과학자, ML 엔지니어 및 앱 개발자의 차이점은 무엇인가요?

ML 모델을 만들고 사용하는 프로세스에는 데이터 과학자, 즉 문제 정의, 데이터 수집 및 분석, ML 알고리즘 선택 및 학습, 결과 평가 및 해석의 세 가지 주요 역할이 포함됩니다. Python, R, Jupyter Notebook, TensorFlow, PyTorch 및 scikit-learn과 같은 도구를 사용하여 이러한 작업을 수행합니다. ML 엔지니어: 프로덕션 환경에서 ML 모델을 배포, 모니터링 및 유지 관리하는 역할을 담당합니다. Docker, Kubernetes, Azure ML, AWS SageMaker 및 Google Cloud AI Platform과 같은 도구를 사용하여 ML 모델의 확장성, 안정성 및 보안을 보장합니다. 앱 개발자: 앱 논리, UI 및 UX에 ML 모델을 통합하는 역할을 담당합니다. Windows Copilot Runtime, OnnxRuntime 또는 REST API와 같은 도구를 사용하고 사용자 입력 및 모델 출력을 처리합니다. 각 역할에는 서로 다른 책임과 기술이 포함되지만 최상의 결과를 얻으려면 이러한 역할 간의 협업과 의사 소통이 필요합니다. 프로젝트의 크기와 복잡성에 따라 동일한 사용자 또는 다른 팀에서 이러한 역할을 수행할 수 있습니다.