컨텐츠 바로가기

06.28 (금)

"윈도우 AI 구축을 위한 툴" 윈도우 코파일럿 런타임의 이해

댓글 첫 댓글을 작성해보세요
주소복사가 완료되었습니다
마이크로소프트 빌드 2024(Build 2024)의 주요 테마를 알아보기는 어렵지 않았다. 이벤트 전 코파일럿+ PC(Copilot+ PC) 발표부터 사티아 나델라와 스콧 거스리의 중대한 두 기조연설에 이르기까지 온통 AI 이야기였다. 애저 CTO 마크 루시노비치가 진행하는 연례 애저 하드웨어 혁신 투어에서도 초점은 AI 지원이었다.
ITWorld

ⓒ Sunrise King/Unsplash

<이미지를 클릭하시면 크게 보실 수 있습니다>



나델라는 CEO가 되고 처음 몇 년 동안 빅데이터, ML, 엣지 기반 처리를 혼합한 "지능형 클라우드와 지능형 엣지"에 대해 여러 차례 이야기했다. 나델라의 이야기는 클라우드 네이티브 세계를 보는 산업적 시각에서 나온 것이지만, AI에 대한 마이크로소프트의 접근 방식을 잘 보여준다. 핵심은 애저의 슈퍼컴퓨팅 역량을 사용해 AI 모델의 크기에 관계없이 모델을 위한 학습과 추론을 클라우드에 호스팅하는 것이다.


엣지로 가는 AI

중앙 집중식 AI에는 상당한 전력과 그에 따른 냉각이 필요하다. 따라서 빌드에서 마이크로소프트가 발표한 주요 사항이 엔드포인트 AI 기능 대부분을 애저에서 사용자의 PC로 옮기고 로컬 AI 가속기를 활용해 다양한 알고리즘의 추론을 실행하는 데 중점을 둔 것은 놀라운 일이 아니다. 애저에서 코파일럿을 실행하는 대신 ARM, 인텔, AMD의 차세대 데스크톱 칩에 포함되는 NPU(Neural Processing Unit)를 사용할 수 있다.

하드웨어 가속은 여러 차례 입증된 접근 방법이다. 필자는 1990년대 초반 행렬 연산을 가속화하기 위해 벡터 처리 하드웨어를 사용한 유한 요소 분석 코드를 작성했다. 지금의 NPU는 이런 벡터 프로세서의 직계 후손으로, 신경망에 사용되는 복잡한 벡터 공간의 비슷한 연산에 최적화된다. 마이크로소프트의 현세대 ARM 디바이스(또는 소수의 최신 인텔이나 AMD 디바이스)에는 이미 NPU가 포함돼 있다. 다만 이 NPU는 마이크로소프트의 코파일럿+ PC 요구사항을 충족하는 데 필요한 40TOPS(초당 테라 연산) 수준만큼 강력하지는 않다.

마이크로소프트는 이 기존 하드웨어에서 이미 다양한 NPU 기반 애플리케이션을 시연했고, 다이렉트ML(DirectML) API를 통해 개발자 액세스를 제공하고 ONNX 추론 런타임을 지원했다. 그러나 빌드 2024에서는 '윈도우 코파일럿 런타임'이라는 새로운 브랜드로 묶은 새로운 엔드포인트 호스팅 AI 서비스 모음을 통해 개발자 고객층에 더욱 공을 들이는 모습을 보였다.

윈도우 코파일럿 런타임은 윈도우에서 AI 애플리케이션을 제공하는 데 도움이 되는 새로운 서비스와 기존 서비스의 혼합으로 구성된다. 내부에는 새로운 개발자 라이브러리 모음과 40개 이상의 ML 모델이 포함돼 있는데, 마이크로소프트 파이(Phi) 소규모 언어 모델 제품군의 NPU 중심 버전인 파이 실리카(Phi Silica)도 여기에 포함된다.

윈도우 코파일럿 런타임의 모든 모델이 언어 모델은 아니다. 많은 모델이 윈도우 비디오 파이프라인과 함께 작동하면서 기존 스튜디오 이펙트의 향상된 버전을 지원하도록 설계됐다. 번들로 제공되는 모델로는 부족하거나 특정 사용례를 충족하지 않는다면, 윈도우에서 자체 모델을 실행하는 데 도움이 되는 툴이 있다. 이런 툴은 파이토치, 그리고 웹 브라우저에서 모델을 실행할 수 있게 해주는(향후 웹어셈블리 애플리케이션에서도 가능해질 수 있음) 새로운 웹 호스팅 모델 런타임인 WebNN을 직접 지원한다.


윈도우용 AI 개발 스택

마이크로소프트는 윈도우 코파일럿 런타임에 대해 AI 툴을 사용한 "운영체제와의 새로운 상호작용 방법"이라고 설명한다. 빌드에서 윈도우 코파일럿 런타임은 새로운 칩 기능을 기반으로 실행되는 스택으로 소개됐다. 이를 위해 새로운 라이브러리와 모델, 그리고 이 코드를 빌드하는 데 필요한 툴이 제공된다.

이는 스택을 지나치게 단순화해서 표현한 것이지만 윈도우 코파일럿 런타임의 모든 구성요소를 보여주려면 파워포인트 슬라이드를 금방 채우고도 남을 것이다. 중심에는 두 가지 흥미로운 기능인 DiskANN 로컬 벡터 저장소, 그리고 윈도우 코파일럿 라이브러리로 통칭되는 API 모음이 있다.

DiskANN은 SQL라이트(SQLite)에 상응하는 벡터 데이터베이스라고 생각하면 된다. RAG(Retrieval-Augmented Generation) 애플리케이션을 구축하는 데 있어 핵심인 벡터 데이터를 위한 고속 로컬 저장소다. SQL라이트와 마찬가지로 UI가 없다. 즉, 모든 작업은 명령줄 인터페이스 또는 API 호출을 통해 수행된다. DiskANN은 내장된 최근접 이웃 검색을 사용하며 임베딩과 콘텐츠를 저장하는 데 사용할 수 있다. 또한 윈도우의 기본 제공 검색과 함께 작동하며 NTFS 구조와 파일에 연결된다.

윈도우 코파일럿 런타임을 기반으로 코드를 빌드하면 스택에 번들로 제공되는 40개 이상의 다양한 AI/ML 모델을 활용하게 된다. 앞서도 언급했듯이 모든 모델이 생성형 모델은 아니다. 상당수는 텍스트 인식, 윈도우 스튜디오 이펙트의 카메라 파이프라인과 같은 컴퓨터 비전 작업을 위한 애저 코그니티브 서비스(Azure Cognitive Services)에 사용되는 모델을 기반으로 한다.

클라우드 API로 전환하는 옵션도 있다. 예를 들어 로컬 소규모 언어 모델 또는 챗GPT와 같이 클라우드에 호스팅되는 대규모 언어 모델 중에서 선택할 수 있다. 사용 가능한 대역폭이나 현재 작업의 복잡성에 따라 코드가 자동으로 두 모델 사이를 전환할 수도 있다.

마이크로소프트는 로컬과 클라우드 AI API 중에서 결정하는 데 도움이 되는 기본 체크리스트를 제공한다. 고려할 주요소는 사용 가능한 리소스, 개인 정보 보호, 비용이다. 로컬 리소스를 사용하면 비용이 없지만 클라우드 AI 서비스를 사용하는 데 따르는 비용은 예측할 수 없다.

AI 텍스트 인식(AI Text Recognition)과 같은 윈도우 코파일럿 라이브러리 API의 경우 하드웨어 가속 기능을 활용하기 위해서는 적절한 NPU가 필요하다. API를 호출하기 전에 이미지 버퍼에 이미지를 추가해야 한다. 동일한 기능을 하는 애저 API와 마찬가지로, 인식된 텍스트를 문자열로 수집하기 전에 API에 비트맵을 제공해야 한다. 추가로 바운딩 박스 세부 정보를 얻을 수 있으므로 인식된 텍스트의 신뢰 수준과 함께 오버레이를 초기 이미지에 제공할 수 있다.


NPU를 위한 온디바이스 언어 모델 '파이 실리카'

윈도우 코파일럿 런타임의 핵심 구성요소 중 하나는 NPU에 최적화된 새로운 파이 실리카 소규모 언어 모델이다. 파이 모델군에 속하는 파이 실리카는 프롬프트 입력에 대해 텍스트 응답을 제공하도록 설계된, 간편히 사용할 수 있는 생성형 AI 모델이다. 샘플 코드를 통해 파이 실리카가 새로운 Microsoft.Windows.AI.Generative C# 네임스페이스를 사용하며, 비동기적으로 호출되어 문자열 프롬프트에 생성형 문자열 응답으로 답하는 것을 볼 수 있다.

기본적인 파이 실리카 API를 사용하는 방법은 간단하다. 호출을 처리할 메서드를 만들었다면 완전한 문자열을 기다리거나 생성되는 대로 결과를 수집하는 방법으로 사용자 경험을 선택할 수 있다. 모델에서 상태 정보를 수집하는 다른 호출을 통해 프롬프트가 응답을 생성했는지 또는 호출이 실패했는지를 알 수 있다.

파이 실리카에는 한계가 있다. 코파일럿+ PC의 NPU를 사용한다 해도 파이 실리카가 처리할 수 있는 토큰은 초당 650개로 한정적이다. 단일 프롬프트에 원활하게 응답을 제공하기에는 충분하지만 여러 프롬프트를 동시에 관리하는 경우 속도가 저하될 수 있다.

파이 실리카는 교과서 내용으로 학습되었으므로 예를 들어 챗GPT만큼 유연하지는 않다. 그러나 오류가 덜 발생하고, RAG 기술과 DiskANN에 저장된 로컬 벡터 인덱스를 사용해서 자체 로컬 에이전트 오케스트레이션 안에 구축해 특정 폴더 내의 파일을 타겟팅할 수 있다.

마이크로소프트는 윈도우 코파일럿 런타임을 윈도우 개발자 스택의 별도 구성요소로 언급했다. 사실 이 런타임은 빌드 기조연설에서 언급한 수준보다 훨씬 더 심층적으로 통합되어 있으며, 윈도우 앱 SDK에 대한 2024년 6월 업데이트에 포함돼 제공된다. 마이크로소프트는 단순히 윈도우의 AI에 크게 베팅하는 것이 아니라 AI, 더 구체적으로는 자연어와 시맨틱 컴퓨팅을 윈도우의 미래로 보는 쪽에 베팅하고 있다.


윈도우 AI 구축을 위한 툴

윈도우 코파일럿 런타임 스택은 현재 비주얼 스튜디오 코드용 AI 툴킷으로 이름이 바뀐 기존 윈도우 AI 스튜디오 툴을 기반으로 할 가능성이 높지만, 전체적인 그림은 아직 나오지 않았다. 흥미롭게도, AT 툴킷의 최신 빌드(빌드 2024 이후)에는 리눅스 x64와 ARM64 모델 튜닝 및 개발에 대한 지원이 추가됐다. 이는 완전한 AI 개발 툴 모음의 빠른 출시와 이후의 비주얼 스튜디오용 AI 툴킷을 예고하는 좋은 신호로 보인다.

윈도우 코파일럿 런타임 모델을 사용한 작업에 필수적인 AI 툴킷의 중요한 한 가지 기능은 자체 코파일럿으로 빌드하기 전에 모델을 실험해 볼 수 있는 플레이그라운드 기능이다. 파이와 같은 소규모 언어 모델 또는 허깅 페이스(Hugging Face)의 오픈소스 파이토치 모델을 위한 기능이므로 24H2 윈도우 릴리스의 새로운 OS 기능과 코파일럿+ PC의 NPU 하드웨어가 제공하는 혜택을 누릴 수 있을 것이다.

6월에 윈도우 앱 SDK가 출시되고 첫 코파일럿+ PC 하드웨어가 나오고 나면 더 자세한 내용을 알게 되겠지만, 마이크로소프트의 목표가 윈도우의 중심에 AI를 탑재하고 결과적으로 사용자의 통제 하에 안전하게, 개인 정보를 보호하면서 데스크톱 애플리케이션에 AI 기능을 손쉽게 추가할 수 있게 해주는 플랫폼을 제공하는 것임은 이미 명확하다. 마이크로소프트 입장에서는 애저의 전력과 냉각 예산 부담을 덜어내는 부가적인 이점도 있다.
editor@itworld.co.kr

Simon Bisson editor@itworld.co.kr
저작권자 한국IDG & ITWorld, 무단 전재 및 재배포 금지
기사가 속한 카테고리는 언론사가 분류합니다.
언론사는 한 기사를 두 개 이상의 카테고리로 분류할 수 있습니다.