Aracılığıyla paylaş


Windows ML nedir?

Windows Machine Learning (ML), C#, C++ ve Python Windows uygulama geliştiricilerinin ONNX modellerini CPU'lar, GPU'lar ve NPU'lar gibi çeşitli Windows bilgisayar donanımlarında yerel olarak çalıştırmalarına yardımcı olur. Windows ML, kodunuzu yazmaya odaklanabilmeniz için donanım ve yürütme sağlayıcılarını soyutlar. Ayrıca, Windows ML en son NPU'ları, GPU'ları ve CPU'ları yayımlandıklarında destekleyecek şekilde otomatik olarak güncelleştirilir.

Daha sonra NPU'lara, GPU'lara ve CPU'lara ulaşmak için Windows ML üzerinden geçen bir ONNX modelini gösteren diyagram.

Önemli

Windows ML API'leri şu anda deneyseldir ve üretim ortamlarında kullanılmak üzere desteklenmez . Bu API'leri deneyen uygulamalar Microsoft Store'da yayımlanmamalıdır.

Desteklenen Windows sürümleri

Windows ML, sürüm 24H2 (derleme 26100) veya üzerini çalıştıran tüm Windows 11 bilgisayarlarda çalışır.

Desteklenen donanım

Windows ML tüm x64 ve ARM64 bilgisayar donanımlarında, hatta NPU'ları veya GPU'ları olmayan bilgisayarlarda bile çalışır, bu da piyasada yüz milyonlarca Windows cihazına ulaşabileceğiniz anlamına gelir. Bu, iş yüklerini hafif tutmak anlamına gelebilir; ancak ağır iş yüklerini işleyebilecek kadar güçlü iGPU'lar vardır.

Modelleri ONNX'e dönüştürme

Windows ML ile kullanabilmek için modelleri diğer biçimlerden ONNX'e dönüştürebilirsiniz. Daha fazla bilgi edinmek için modelleri ONNX biçimine dönüştürme hakkında Visual Studio Code AI Toolkit belgelerine bakın.

Windows ML hangi zorlukları ele alır?

Donanım çeşitliliği

Windows üzerinde çalışan bir yapay zeka geliştiricisi olarak, Windows ML'nin sizin için çözüm getirdiği ilk zorluk donanım çeşitliliğidir. Evet, kullanıcıların kendilerine en uygun donanımı seçebilecekleri Windows ekosisteminin bir avantajıdır. Ancak Windows ML olmadan bu, yapay zeka deneyimleri geliştiren bir geliştirici olarak tüm bu donanım çeşitliliğini desteklemenizi zor hale getirir. Windows'ta çalışan günümüzün önde gelen uygulamalarının çoğu, aynı anda yalnızca tek bir donanım satıcısına yayınlamayı seçer. Sadece Intel; sadece Qualcomm; sadece AMD; şimdilik sadece ayrı GPU'lar. Bu da bu uygulamaların üzerinde çalışabileceği cihaz sayısını büyük ölçüde sınırlar.

Bağımlılıkları dağıtma

Ardından ihtiyacınız olan tüm bağımlılıkları dağıtma sorunu yaşanıyor. Uygulamanızda yapay zeka deneyimlerini göndermek için uygulamanızın üç öğe göndermesi ve dağıtması gerekir.

  • Çalıştırmak istediğiniz yapay zeka modelleri.
  • Bu modellerde çıkarım yapmanızı sağlayan çalışma zamanı.
  • Seçtiğiniz çalışma zamanının silikonla iletişim kurmasına yardımcı olan satıcıya özgü araçlar ve sürücüler.

Uygulamanızın bu tür şeylere ihtiyacı vardır ve ayrıca bunların bakımının yapılması ve güncelleştirilmesi gerekir. Çalışma zamanının yeni bir sürümü yayınlandığında veya bu sürümde kritik bir hata düzeltildiğinde, uygulamanızı uygun şekilde güncelleştirmeniz gerekir. Windows ML olmadan, uygulama geliştiricisi olarak bu bağımlılıkların tümünün sahipliğini almanız gerekir. Uygulamanızın bir parçası haline gelirler ve her şeyi korumanın yükü size düşer.

Yerel donanımdan yararlanma

Ardından uygulamanızın üzerinde çalıştığı yerel donanımı çalıştırma sorunu vardır. Yapay zeka iş yükleriniz CPU veya GPU ya da NPU üzerinde mi çalıştırılmalıdır? Farklı yapay zeka modelleri kullanıyorsanız hangileri en iyi hangi işlemcilerde çalışır? Bu sorun hızla çok karmaşık hale gelir. Eğer Windows ML olmasaydı, önce geçerli cihazda kullanılabilir olanları algılayan ve ardından ondan en iyi performansı çıkarmaya çalışan zor mantığı yazmak ve korumak sizin sorumluluğunuzdadır.

Windows Uygulama SDK'sı aracılığıyla kullanılabilen Windows ML, bu sorunların tümünü çözer.

  • Çalışma zamanının uygulamanızın içinde olması gerekmez.
  • Yürütme sağlayıcısı (EP), kullanıcılarınız için kullanılabilen donanıma göre otomatik olarak seçilir. Geliştirici ayarları seçmek için mevcuttur.
  • Windows ML çalışma zamanı bağımlılıklarınızı yönetir; yükünü uygulamanızdan dışarı alarak, Windows ML'nin kendisine ve EP'lere aktarır.
  • Windows ML, istemci cihazındaki yükü dengelemeye yardımcı olur ve yapay zeka iş yükünün yürütülmesi için uygun donanımı seçer.

Ayrıntılı genel bakış

Windows ML içindeki Microsoft.Windows.AI.MachineLearning, Windows AI Foundry'nin yapay zeka çıkarım özelliği görevi görür. Bu nedenle, Windows'da yerleşik olarak bulunan modellere erişmek için Windows AI API'lerini kullanıyor olun veya Foundry Local ile kullanıma hazır Foundry modellerinin büyüyen listesini kullanıyor olun (bkz. Foundry Local'ı kullanmaya başlama), yapay zeka iş yüklerinizi büyük olasılıkla farkında bile olmadan Windows ML'de çalıştırıyor olacaksınız.

Kendi modellerinizi getiriyorsanız veya model çıkarımının nasıl gerçekleştiği üzerinde yüksek düzeyde ayrıntılı denetime ihtiyacınız varsa, API'lerini çağırarak Windows ML'yi doğrudan kullanabilirsiniz. Bkz . Windows ML (Microsoft.Windows.AI.MachineLearning) API'leri.

ONNX Çalışma Zamanı'na göre

Windows ML, ONNX Çalışma Zamanı'nın ayrılmış ve özelleştirilmiş bir sürümü üzerine kurulmuştur. Bunun yapılması, Performansta Windows'a özgü bazı geliştirmeleri etkinleştirir. Ayrıca, modelleri gereksiz yere büyütmeye gerek kalmadan yerel cihazda en iyi çıkarım performansını elde etmeye odaklanmayı sağlayan standart ONNX QDQ modelleri etrafında da iyileştirdik.

ONNX Çalışma Zamanı, çalışma zamanı ile donanım sürücüleri arasında bir çeviri katmanı görevi gören yürütme sağlayıcıları (EP'ler) aracılığıyla donanımla iletişim kurar. Windows Click to Do ve NPU'lar ile yaptığımız yürütme sağlayıcısı çalışmasını aldık, bunu GPU'lar için yeni yürütme sağlayıcılarıyla birleştirdik ve şimdi cpu, GPU ve NPU genelinde herhangi bir donanımı hedefleyebilecek yapay zeka iş yüklerini etkinleştirme sözü veren tek bir Windows ML çerçevesine sarmaladık. Her işlemci türü, dört büyük yapay zeka silikon satıcısının (AMD, Intel, NVIDIA ve Qualcomm) en son sürücüleri ve ONNX Çalışma Zamanı yürütme sağlayıcılarıyla tam olarak desteklenen birinci sınıf bir vatandaştır. Bu işlemci türleri eşit ayak üzerindedir; yapay zeka iş yüklerinizi tüm donanım türleri arasında güvenle ölçeklendirmek için yalnızca ONNX QDQ modelleriyle Windows ML'ye yazmanız gerekir.

Paketleme ve dağıtım

Windows ML, Windows Uygulama SDK'sının bir parçası olarak dağıtılır. Projenizde Windows Uygulama SDK'sına başvuru ekledikten ve uygulamanızı müşterinin bilgisayarına yükledikten sonra:

  1. Windows Uygulama SDK'sı önyükleyicisi, Windows ML çalışma zamanının uygulamanızda düzgün bir şekilde başlatılmasını sağlar.
  2. Ardından Windows ML, uygulamanızın yüklü olduğu makineye yönelik donanımı algılar ve bu bilgisayar için gereken uygun yürütme sağlayıcılarını indirir.

Bu nedenle uygulama paketinizde kendi yürütme sağlayıcılarınızı taşımanız gerekmez. Aslında, yürütme sağlayıcıları veya AMD, Intel, NVIDIA, Qualcomm veya başka bir donanım ailesi için özel olarak tasarlanmış yapay zeka çalışma sürelerinin özel derlemelerini göndermek hakkında endişelenmenize hiç gerek yok. Yalnızca Windows ML API'lerini çağırırsınız, sonra düzgün biçimlendirilmiş bir modelle beslersiniz ve biz gerisini hallederiz; bu sayede hedef donanımda gereken her şeyi otomatik olarak sağlar ve her şeyi güncel tutarız.

Sonuç olarak, yönetmeniz ve endişelenmeniz gereken bağımlılıkları büyük ölçüde basitleştirir. Amd, Intel, NVIDIA ve Qualcomm gibi donanım iş ortaklarıyla sağladığımız etkileşim düzeyi sayesinde mümkün hale getirildi. Bu iş ortakları, Windows ML için uygulama sağlayıcıları sağlamaya devam edecek ve güncelleştirmeler veya piyasaya sundukları yeni silikonlar olduğunda bunları Microsoft'a gönderecektir.

Microsoft, doğruluk çıkarımında herhangi bir regresyon olmadığından emin olmak için yeni yürütme sağlayıcılarını (IP' ler) onaylar. Ardından bu IP'leri donanım satıcıları adına hedef makinelere dağıtma sorumluluğunu üstlenecek ve Windows ML ekosisteminin güncel ve güncel kalmasını kolaylaştıracağız.

DirectML ve DirectX gibi teknolojilerin yaklaşımından farklı bir yaklaşımdır; burada Microsoft, donanım ekosistemi değişikliklerine göre API'leri soyutlar. Bunun yerine, Windows ML ile ortamı değiştiriyoruz ve donanım satıcılarına yenilikçi silikonları hızla ve doğrudan piyasaya tanıtmaları için güç veriyoruz. Ayrıca, bu donanım piyasaya çıktığında, bu donanım için ilk gün yürütme sağlayıcı desteği sunuluyor.

Gösteri

Performans, saf duvar saati hızından daha fazladır. Evet, birçok yapay zeka iş yükü hesaplama açısından pahalıdır. Ancak uygulama deneyimlerinde yapay zeka yaygınlaştıkça, çıkarımı yüksek doğruluk derecesini korurken pil ömrünü koruyacak şekilde iyileştirebilen bir çalışma zamanına ihtiyaç vardır. Böylece yapay zeka iyi ve doğru sonuçlar üretir.

Yapay zeka iş yükleri genellikle iki demetten birine ayrılır:

  1. Çevresel Yapay Zeka. Kullanıcılar uygulamanızla etkileşim kurarken yapay zeka arka planda sessiz bir şekilde gerçekleşiyor.
  2. Açık yapay zeka. Kullanıcılar, genellikle bir tür üretken yapay zeka (genAI) senaryosu olan bir yapay zeka görevi başlattıklarını biliyorlar.

Ortam yapay zeka iş yükleri, 40'ın üzerinde işlem gücüne sahip bir NPU işlemciye (TOPS) yüklenebilir ve genellikle birkaç watt'ta güç çekebilir. Bu şekilde, Windows ML ortam yapay zeka iş yükleri için mükemmeldir. Çoğu durumda, uygulamalarınızın kullanıcıları beklemeye gerek kalmadan ve bilgisayarlarının pil ömrü konusunda endişelenmeden yapay zekanın büyüsünü hissedecektir.

Çok sayıda hesaplama açısından ağır yapay zeka görevi, ayrılmış bir GPU tarafından en iyi şekilde kullanılabilir. Windows ML'nin 2018 sürümü, GPU iş yüklerini işlemek için bir DirectML EP'ye dayanır; modelinizle silikon arasındaki katman sayısını artırır. Microsoft.Windows.AI.MachineLearning içindeki Windows ML, DirectML katmanına sahip değil. Bunun yerine doğrudan GPU için ayrılmış yürütme sağlayıcılarıyla çalışır ve böylece donanım düzeyinde bir performans elde edersiniz. Bu performans, geçmişteki RTX için TensorRT, AI Engine Direct ve PyTorch için Intel Uzantısı gibi özel SDK'larla eşdeğerdir. Windows ML'yi sınıfının en iyisi GPU performansına sahip olacak şekilde geliştirdik ve geçmiş DirectML tabanlı çözümün sunduğu her yerde bir kez çalıştır avantajını koruduk.

Yukarıdaki iki durumda da performansın tüm yönleri önemlidir. Saf duvar saati hızı, pil ömrü ve doğruluk. Böylece kullanıcı gerçekten iyi sonuçlar alır.

Tüm bunlar size yapay zeka destekli çeşitli deneyimler ve senaryolar sunar. Ayrılmış NPU'larda ortam yapay zeka iş yüklerini ve aracılarını çalıştırabilirsiniz; veya gerekirse ayrı GPU'yu boş tutmak için tümleşik GPU'larda iş yüklerini çalıştırın. Ham güç istiyorsanız, daha yüksek iş yüklerini mümkün olan en yüksek hızlarda çalıştırmak için günümüzün modern ayrıK GPU'larını (dGPU' lar) hedefleyebilirsiniz.

Yürütme sağlayıcısı nedir?

Yürütme sağlayıcısı (EP), makine öğrenmesi (ML) işlemleri için donanıma özgü iyileştirmeler uygulayan bir bileşendir. Ep, bir veya daha fazla donanım soyutlaması uygulayabilir. Örneğin:

  • CPU yürütme hizmet sağlayıcıları, genel amaçlı işlemciler için operasyonlarını optimize eder.
  • GPU yürütme sağlayıcıları, grafik işlemcileri için optimize eder.
  • NPU yürütme sağlayıcıları sinir işleme birimleri için optimize eder.
  • Satıcıya özgü diğer sağlayıcılar.

Windows ML çalışma zamanı, aşağıdakileri yapmak için API'ler sağlayarak bu yürütme sağlayıcılarını yönetmenin karmaşıklığını işler:

  1. Geçerli donanım için uygun EP'leri indirin.
  2. EP'leri çalışma zamanında dinamik olarak kaydedin.
  3. EP davranışını yapılandırın.

Windows ML ile yürütme sağlayıcılarını kullanma

Windows ML çalışma zamanı, makine öğrenmesi (ML) yürütme sağlayıcılarına (IP' ler) erişmek için farklı donanım yapılandırmalarında ML modeli çıkarımını iyileştirebilen esnek bir yol sağlar. Bu EP'ler, işletim sisteminden bağımsız olarak güncellenebilen ayrı paketler olarak dağıtılır.

Windows ML hakkında geri bildirim sağlama

Windows ML'yi kullanma hakkındaki geri bildirimlerinizi duymak isteriz! Herhangi bir sorunla karşılaşırsanız veya önerileriniz varsa, daha önce bildirilip bildirilmediğini görmek için lütfen Windows Uygulama SDK'sı GitHub'da arama yapın ve aksi takdirde yeni bir sorun oluşturun.