분류2 “코파일럿+ PC에서 AI 개발” 한계와 가능성
페이지 정보
![profile_image](https://g5.webvision.co.kr/data/member_image/ad/admin.gif?1645343065)
본문
마이크로소프트의 새로운 AI 탑재 하드웨어는 개발자에게 가능성을 보여주지만, 플랫폼의 파편화된 툴체인을 해결하기 위해 여전히 작업이 필요하다.
마이크로소프트와 하드웨어 파트너는 최근 NPU(Neural Processing Unit)가 내장된 Arm CPU로 구동되는 코파일럿+ PC를 출시했다. 이는 기존의 주류 x64 플랫폼에서 흥미로운 방향 전환으로, 첫 제품은 최신 빌드의 Arm용 윈도우를 구동하는 퀄컴 스냅드래곤 X 프로세서를 사용했다. 지금 구입해도 윈도우 11 24H2가 다른 하드웨어에 적용되기 최소 두어 달 전에 이미 실행된다.
코파일럿+는 기본적으로 최신 노트북에서 기대할 수 있는 모든 기능을 갖춘 고성능 PC이다. Arm 기반 프로세서를 사용해 배터리 사용시간이 길며, Arm 네이티브 벤치마크는 대부분 인텔 또는 AMD 기반 하드웨어만큼, 경우에 따라 그보다 더 우수하다. 심지어 애플의 M2 및 M3 Arm 프로세서를 능가한다. 따라서 비주얼 스튜디오(Visual Studio) 및 비주얼 스튜디오 코드(Visual Studio Code)를 사용하는 일반적인 개발 작업 대부분에 이상적인 하드웨어이다. 두 제품 모두 Arm64 빌드를 지원하므로 Arm용 윈도우의 프리즘(Prism) 에뮬레이션 계층에 따르는 복잡한 과정을 거칠 필요가 없다.
솔직히 말해 이는 이전의 Arm용 윈도우 하드웨어와 크게 달라진 점은 없다. 이 새로운 세대의 하드웨어는 더 다양한 소스를 제공할 뿐이다. 델이나 HP 또는 레노버 등의 대형 업체와 구매 계약을 맺은 기업이라면, Arm 하드웨어를 빠르게 추가할 수 있으며, 마이크로소프트 서피스만을 사용하지 않아도 된다.
새로운 디바이스의 가장 흥미로운 기능은 내장된 NPU이다. 최소 40TOPs의 추가 컴퓨팅 성능을 제공하는 NPU는 PC에 첨단 추론 성능을 제공해 소형 언어 모델 및 기타 머신러닝 기능을 지원한다. 마이크로소프트는 우선 디바이스 카메라 처리 경로에서 라이브 캡션 툴과 다양한 실시간 비디오 필터를 통해 이런 기능을 선보이고 있다. 논란이 됐던 리콜 AI 인덱싱 툴은 보안 문제로 재개발 중이다.
DirectML을 지원하면 AI 애플리케이션을 쉽게 빌드하고 실행할 수 있지만, 마이크로소프트는 이미 자체 AI 애플리케이션을 빌드하는 데 필요한 몇 가지 툴을 출시했다. 하지만 아직 많은 부분이 누락되어 AI 개발 워크플로우 전체를 구현하기는 쉽지 않다.
그렇다면, 어디서부터 시작해야 할까? 가장 확실한 곳은 비주얼 스튜디오 코드용 AI 툴킷이다. 이 툴킷은 CPU, GPU, NPU를 사용하여 PC와 노트북에서 실행할 수 있는 소형 언어 모델을 시험하고 조정할 수 있도록 만들어졌다. 최신 빌드는 Arm64를 지원하므로 코파일럿+ PC에 AI 툴킷과 비주얼 스튜디오 코드를 설치할 수 있다.
설치가 완료되면 AI 툴킷을 사용해 PC 및 엣지 하드웨어에서 실행하기 위한 소규모 언어 모델 라이브러리를 평가할 수 있다. 현재 이용할 수 있는 것은 5가지로, 마이크로소프트의 Phi-3 버전 4종과 미스트랄 7b 인스턴스 1종이 있다. 모두 로컬로 다운로드할 수 있으며, AI 툴킷의 모델 플레이그라운드를 사용해 컨텍스트 명령과 사용자 프롬프트를 실험해 볼 수 있다.
안타깝게도 모델 플레이그라운드에서는 NPU를 사용하지 않으므로 모델이 NPU에서 어떻게 실행되는지 알 수 없다. 그렇더라도 애플리케이션의 컨텍스트 개발을 실험하고 모델이 사용자 입력에 어떻게 반응하는지 살펴보면 좋다. 모델을 중심으로 더 완전한 기능을 갖춘 애플리케이션을 구축하는 좋은 방법이 될 수 있는데, 예를 들어, 자체 데이터에서 소형 언어 모델을 기반으로 실험하는 프롬프트 플로우(Prompt Flow)나 유사한 AI 오케스트레이션 툴을 구현할 수 있다.
코파일럿+ PC에서 모델을 미세 조정할 수 있을 거라고 기대하지는 말자. 우분투 Arm64 WSL 빌드를 지원하는 등 대부분의 요구사항을 충족하지만, 퀄컴 하드웨어에는 엔비디아 GPU가 포함되어 있지 않다. NPU는 추론 전용으로 설계됐기 때문에 알고리즘 미세 조정에 필요한 기능을 제공하지 않는다.
그래도 전체 또는 일부 GPU에 액세스할 수 있는 클라우드 호스팅 가상머신과 함께 사용할 수 있으므로 미세 조정 워크플로우의 일부로 Arm 장치를 사용할 수는 있다. 마이크로소프트 데브 박스(Dev Box)와 깃허브(GitHub) 코드스페이스 모두 GPU 지원 가상머신 옵션을 제공하지만, 대규모 작업을 실행하는 경우 비용이 많이 들 수 있다. 또는 기밀 데이터로 작업하는 경우 엔비디아 GPU가 탑재된 PC를 사용할 수 있다.
마음에 드는 모델을 찾았다면 애플리케이션을 본격적으로 구축할 수 있다. 이 단계에서는 AI 툴킷에서 바로 코드 편집으로 이동할 수 없기 때문에 코파일럿+ PC AI 개발 워크플로우에 큰 구멍이 있다. 대신 테스트 중인 모델의 로컬 복사본이 있는 숨겨진 디렉터리를 찾거나 선택한 미세 조정 서비스에서 튜닝된 버전을 다운로드해 PC의 NPU를 지원하는 ONNX 런타임을 설정하고 이를 사용해 코드 빌드 및 테스트를 시작하자.
직접 코드를 빌드하는 것을 선호하는 경우, 윈도우용 파이썬 3의 Arm64 빌드와 퀄컴의 QNN NPU용 ONNX 실행 공급자(Execution Provider)의 사전 빌드 버전이 있다. 이를 통해 AI 툴킷 내에서 CPU 추론을 사용해 모델을 검증한 후 비주얼 스튜디오 코드 내에서 파이썬 코드를 빌드하고 테스트할 수 있다. 이상적인 접근 방식은 아니지만, 코파일럿+ PC를 AI 개발 환경으로 사용할 수 있는 경로를 제공한다. 마이크로소프트의 시맨틱 커널(Semantic Kernel) AI 에이전트 오케스트레이션 프레임워크의 파이썬 버전과 함께 사용할 수도 있다.
C# 개발자도 예외는 아니다. NuGet에는 QNN ONNX 툴의 .NET 빌드가 제공되므로 로컬 모델을 빠르게 가져와 코드에 포함할 수 있다. 모델을 .NET 애플리케이션에 임베드하기 전에 AI 툴킷과 파이썬을 사용해 모델을 검증할 수 있다.
이때 QNN ONNX 툴의 한계를 이해하는 것이 중요하다. 이 툴은 양자화된 모델 전용으로 설계됐으므로 사용하는 모든 모델이 8비트 또는 16비트 정수로 양자화되어 있는지 확인해야 한다. 기성 모델을 사용하기 전에도 참고 문서를 확인해 애플리케이션에 포함하기 전에 변경해야 할 사항이 있는지 확인해야 한다.
디바이스가 이미 개발자의 손에 들어왔기 때문에 향후 출시는 조만간 이루어질 예정이다. 로컬 디바이스에 AI 추론을 적용하는 것은 애저 데이터센터의 부하를 줄이는 데 중요한 단계이다. 물론, 현재 윈도우 상의 Arm64 AI 개발 상태는 실망스럽지만, 이는 툴이 부족해서가 아니라 가능성을 확인할 수 있기 때문이다. 하드웨어를 최대한 활용할 수 있도록 엔드 투 엔드 AI 애플리케이션 개발 플랫폼을 제공하기 위해 필요한 요소는 많으며, 이를 하나로 묶을 수 있는 방법이 필요하다.
현재로서는 코파일럿 런타임과 바로 사용할 수 있는 API가 포함된 기본 제공 파이-실리카(Phi-Silica) 모델을 사용하는 것이 가장 좋다. 필자는 이미 새로운 Arm 기반 서피스 노트북을 구매했고, 이제는 필자가 원하는 AI 개발 하드웨어로서 약속을 이행하는 것을 보고 싶다. 마이크로소프트가, 그리고 퀄컴이 부족한 부분을 채워서 완성된 NPU 코딩 환경을 제공해 주길 바란다.
editor@itworld.co.kr
Arm 개발을 위한 Arm PC
깃허브나 기타 버전 관리 시스템을 사용해 코드를 관리하는 경우, Arm 버전의 애플리케이션을 작업하는 개발자는 리포지토리를 빠르게 복제하고, 새 브랜치를 설정하고, 빌드, 테스트 및 로컬 변경을 수행한 후 풀 리퀘스트를 사용해 변경 사항을 병합할 준비가 된 메인 리포지토리로 브랜치를 푸시할 수 있다. 이 접근 방식은 지원 하드웨어가 소프트웨어 개발 라이프사이클의 일부가 되면서 기존 애플리케이션의 Arm 버전 개발 속도를 높여준다.솔직히 말해 이는 이전의 Arm용 윈도우 하드웨어와 크게 달라진 점은 없다. 이 새로운 세대의 하드웨어는 더 다양한 소스를 제공할 뿐이다. 델이나 HP 또는 레노버 등의 대형 업체와 구매 계약을 맺은 기업이라면, Arm 하드웨어를 빠르게 추가할 수 있으며, 마이크로소프트 서피스만을 사용하지 않아도 된다.
새로운 디바이스의 가장 흥미로운 기능은 내장된 NPU이다. 최소 40TOPs의 추가 컴퓨팅 성능을 제공하는 NPU는 PC에 첨단 추론 성능을 제공해 소형 언어 모델 및 기타 머신러닝 기능을 지원한다. 마이크로소프트는 우선 디바이스 카메라 처리 경로에서 라이브 캡션 툴과 다양한 실시간 비디오 필터를 통해 이런 기능을 선보이고 있다. 논란이 됐던 리콜 AI 인덱싱 툴은 보안 문제로 재개발 중이다.
AI 하드웨어에서 구축하는 나만의 AI
번들로 제공되는 AI 앱은 흥미롭고 유용하지만 하드웨어의 기능을 확인하는 정도로 생각하는 것이 더 나을 수도 있다. 항상 그렇듯이 마이크로소프트는 하드웨어의 한계를 뛰어넘을 수 있는 더 복잡한 애플리케이션을 제공하는 것은 개발자의 몫으로 남겼다. 코파일럿 런타임이 중요한 것은 이 때문이다. 여기에 ONNX 추론 런타임에 대한 지원, 탑재된 윈두우 릴리즈에는 포함되지 않은 코파일럿+ PC 및 퀄컴 NPU용 DirectML 추론 API도 포함된다.DirectML을 지원하면 AI 애플리케이션을 쉽게 빌드하고 실행할 수 있지만, 마이크로소프트는 이미 자체 AI 애플리케이션을 빌드하는 데 필요한 몇 가지 툴을 출시했다. 하지만 아직 많은 부분이 누락되어 AI 개발 워크플로우 전체를 구현하기는 쉽지 않다.
그렇다면, 어디서부터 시작해야 할까? 가장 확실한 곳은 비주얼 스튜디오 코드용 AI 툴킷이다. 이 툴킷은 CPU, GPU, NPU를 사용하여 PC와 노트북에서 실행할 수 있는 소형 언어 모델을 시험하고 조정할 수 있도록 만들어졌다. 최신 빌드는 Arm64를 지원하므로 코파일럿+ PC에 AI 툴킷과 비주얼 스튜디오 코드를 설치할 수 있다.
비주얼 스튜디오용 AI 툴킷으로 작업하기
설치는 기본 제공되는 마켓플레이스 도구를 사용해 금방 할 수 있다. AI 애플리케이션을 빌드할 계획이라면 파이썬 및 C# 툴과 것허브 또는 기타 소스 코드 리포지토리에 연결하기 위한 툴도 모두 설치하는 것이 좋다. 추가해야 할 다른 유용한 기능으로는 애저 지원 및 리눅스용 윈도우 서브시스템(WSL)과 함께 작동하는 데 필요한 확장 기능이 있다.설치가 완료되면 AI 툴킷을 사용해 PC 및 엣지 하드웨어에서 실행하기 위한 소규모 언어 모델 라이브러리를 평가할 수 있다. 현재 이용할 수 있는 것은 5가지로, 마이크로소프트의 Phi-3 버전 4종과 미스트랄 7b 인스턴스 1종이 있다. 모두 로컬로 다운로드할 수 있으며, AI 툴킷의 모델 플레이그라운드를 사용해 컨텍스트 명령과 사용자 프롬프트를 실험해 볼 수 있다.
안타깝게도 모델 플레이그라운드에서는 NPU를 사용하지 않으므로 모델이 NPU에서 어떻게 실행되는지 알 수 없다. 그렇더라도 애플리케이션의 컨텍스트 개발을 실험하고 모델이 사용자 입력에 어떻게 반응하는지 살펴보면 좋다. 모델을 중심으로 더 완전한 기능을 갖춘 애플리케이션을 구축하는 좋은 방법이 될 수 있는데, 예를 들어, 자체 데이터에서 소형 언어 모델을 기반으로 실험하는 프롬프트 플로우(Prompt Flow)나 유사한 AI 오케스트레이션 툴을 구현할 수 있다.
코파일럿+ PC에서 모델을 미세 조정할 수 있을 거라고 기대하지는 말자. 우분투 Arm64 WSL 빌드를 지원하는 등 대부분의 요구사항을 충족하지만, 퀄컴 하드웨어에는 엔비디아 GPU가 포함되어 있지 않다. NPU는 추론 전용으로 설계됐기 때문에 알고리즘 미세 조정에 필요한 기능을 제공하지 않는다.
그래도 전체 또는 일부 GPU에 액세스할 수 있는 클라우드 호스팅 가상머신과 함께 사용할 수 있으므로 미세 조정 워크플로우의 일부로 Arm 장치를 사용할 수는 있다. 마이크로소프트 데브 박스(Dev Box)와 깃허브(GitHub) 코드스페이스 모두 GPU 지원 가상머신 옵션을 제공하지만, 대규모 작업을 실행하는 경우 비용이 많이 들 수 있다. 또는 기밀 데이터로 작업하는 경우 엔비디아 GPU가 탑재된 PC를 사용할 수 있다.
마음에 드는 모델을 찾았다면 애플리케이션을 본격적으로 구축할 수 있다. 이 단계에서는 AI 툴킷에서 바로 코드 편집으로 이동할 수 없기 때문에 코파일럿+ PC AI 개발 워크플로우에 큰 구멍이 있다. 대신 테스트 중인 모델의 로컬 복사본이 있는 숨겨진 디렉터리를 찾거나 선택한 미세 조정 서비스에서 튜닝된 버전을 다운로드해 PC의 NPU를 지원하는 ONNX 런타임을 설정하고 이를 사용해 코드 빌드 및 테스트를 시작하자.
퀄컴 NPU용 AI 런타임 빌드하기
소스부터 Arm ONNX 환경을 빌드할 수도 있지만, 필요한 모든 요소가 이미 제공되므로 자신만의 런타임 환경을 조립하기만 하면 된다. AI 툴킷에는 로드된 모델을 위한 기본 웹 서버 엔드포인트가 포함되어 있으며, 이를 포스트맨(Postman) 같은 툴과 함께 사용하면 마치 웹 애플리케이션에서 사용하는 것처럼 REST 입력 및 출력과 함께 작동하는 방식을 확인할 수 있다.직접 코드를 빌드하는 것을 선호하는 경우, 윈도우용 파이썬 3의 Arm64 빌드와 퀄컴의 QNN NPU용 ONNX 실행 공급자(Execution Provider)의 사전 빌드 버전이 있다. 이를 통해 AI 툴킷 내에서 CPU 추론을 사용해 모델을 검증한 후 비주얼 스튜디오 코드 내에서 파이썬 코드를 빌드하고 테스트할 수 있다. 이상적인 접근 방식은 아니지만, 코파일럿+ PC를 AI 개발 환경으로 사용할 수 있는 경로를 제공한다. 마이크로소프트의 시맨틱 커널(Semantic Kernel) AI 에이전트 오케스트레이션 프레임워크의 파이썬 버전과 함께 사용할 수도 있다.
C# 개발자도 예외는 아니다. NuGet에는 QNN ONNX 툴의 .NET 빌드가 제공되므로 로컬 모델을 빠르게 가져와 코드에 포함할 수 있다. 모델을 .NET 애플리케이션에 임베드하기 전에 AI 툴킷과 파이썬을 사용해 모델을 검증할 수 있다.
이때 QNN ONNX 툴의 한계를 이해하는 것이 중요하다. 이 툴은 양자화된 모델 전용으로 설계됐으므로 사용하는 모든 모델이 8비트 또는 16비트 정수로 양자화되어 있는지 확인해야 한다. 기성 모델을 사용하기 전에도 참고 문서를 확인해 애플리케이션에 포함하기 전에 변경해야 할 사항이 있는지 확인해야 한다.
성큼 다가온 로컬 AI 개발 환경과 해결과제
코파일럿+ PC 플랫폼및 관련 코파일럿 런타임은 많은 가능성을 보여주지만, 툴체인은 여전히 파편화되어 있다. 현재로서는 IDE에서 벗어나지 않고는 모델에서 코드로, 애플리케이션으로 이동하기가 어렵다. 하지만 향후 출시될 비주얼 스튜디오 코드용 AI 툴킷은 QNN ONNX 런타임을 번들로 제공할 뿐만 아니라 .NET 애플리케이션 개발을 위한 DirectML을 통해 사용할 수도 있다.디바이스가 이미 개발자의 손에 들어왔기 때문에 향후 출시는 조만간 이루어질 예정이다. 로컬 디바이스에 AI 추론을 적용하는 것은 애저 데이터센터의 부하를 줄이는 데 중요한 단계이다. 물론, 현재 윈도우 상의 Arm64 AI 개발 상태는 실망스럽지만, 이는 툴이 부족해서가 아니라 가능성을 확인할 수 있기 때문이다. 하드웨어를 최대한 활용할 수 있도록 엔드 투 엔드 AI 애플리케이션 개발 플랫폼을 제공하기 위해 필요한 요소는 많으며, 이를 하나로 묶을 수 있는 방법이 필요하다.
현재로서는 코파일럿 런타임과 바로 사용할 수 있는 API가 포함된 기본 제공 파이-실리카(Phi-Silica) 모델을 사용하는 것이 가장 좋다. 필자는 이미 새로운 Arm 기반 서피스 노트북을 구매했고, 이제는 필자가 원하는 AI 개발 하드웨어로서 약속을 이행하는 것을 보고 싶다. 마이크로소프트가, 그리고 퀄컴이 부족한 부분을 채워서 완성된 NPU 코딩 환경을 제공해 주길 바란다.
editor@itworld.co.kr
댓글목록
등록된 댓글이 없습니다.