A Microsoft eddig is érdeklődött a gépi tanulás iránt, de az új bejelentésükkel nagyon belevágtak az AI-piacba, ugyanis bemutatták a WinML (Windows Machine Learning) nevű AI API-t. Az újítás igen érdekes lehetőségeket rejt a fejlesztők számára, ugyanis a segítségével egyszerűen megoldhatóvá válik az előre tréningelt modellek lokális futtatása.
Hirdetés
A redmondi óriáscég már ma is használ AI-ra épülő megoldásokat a Windows 10 operációs rendszer új verzióin, ilyen például Cortana, vagy szimplán a kézírást felismerő alkalmazás. Ezekkel nincs is probléma, viszont igencsak be vannak olvasztva magába az operációs rendszerbe, így a működésükhöz a Microsoft és a gyártók szoros kapcsolata kellett. Erre például egy fejlesztő nem lesz hajlandó, hiszen egyáltalán nem realitás olyan AI-ra valamilyen módon építkező programot írni, amelyet egy, de leginkább több nagyobb cég direkt segítsége nélkül képtelenség fenntartani. A Microsoft számára tehát biztosítani kell azokat a lehetőségeket, amelyeken belül megvan minden szükséges komponens ahhoz, hogy a fejlesztők önállóan is írjanak AI-t használó alkalmazásokat, és ezek fussanak is a felhasználóknál elérhető hardvereken.
A Windows ML platform, ezen belül is a WinML API lényegében a fentebb leírtakat teszi lehetővé. Az egész viszonylag egyszerűen működik. Ki kell találni egy alkalmazást, ahol az AI előnyeit hasznosítani lehet. Erre vonatkozóan az Azure segítségével tréningelni kell egy megfelelő modellt, amit – a Microsoft, a Facebook, az Amazon, az AMD, az ARM, a Qualcomm, a Huawei, az Intel, az NVIDIA és a Preferred Networks által is támogatott – ONNX formátumban fel lehet majd használni az adott programon belül. Persze ha már van megfelelő, más által tréningelt ONNX modell, akkor az is jó, illetve esetlegesen a Windows ML fejlesztőeszköz segítségével is lehet konvertálni ilyet az elterjedt keretrendszerekből.
Ha kész a modell, akkor lép képbe a WinML API, amely segítségével Win32 és WinRT alkalmazásokat is lehet futtatni. A lényeg itt a WinML futtatási környezet, illetve a dedukcióért felelős motor, ami egy úgynevezett DirectML API-n keresztül biztosítja az adott ONNX modellre építő feldolgozást a lokálisan elérhető hardveren. Ilyen módon az AI-ra vonatkozó funkció is lokálisan fut az előre tréningelt adatok alapján, így igen nagy szabadságot kapnak a fejlesztők, hiszen megfelelően hardver mellett gyakorlatilag valós idejű eredmények is kaphatók.
A hardverkörnyezettel sem kell törődni, a Microsoft ugyanis kezeli az egyes processzorok közötti eltéréseket. A DirectML az egész motorja, ami biztosítja a kódok compute shaderbe történő konvertálását. Ez azért okos ötlet, mert ilyen formában maga a WinML a már elérhető DirectX 12 implementációkat használja, vagyis a hardverek oldalán a működés már egy kiforrottnak mondható környezetre építkezik.
Maga a WinML, ezen belül is a DirectML a DirectX 12 miatt alapértelmezetten a grafikus vezérlőn fog futni. Elméletben minden olyan hardver megfelel, amely rendelkezik DirectX 12 implementációval, de azért lehetnek teljesítményre vonatkozó problémák, ami miatt a Microsoft beépített egy CPU-s fallbacket. Ez a WARP12-n keresztül működik, ami a DirectX 12 eredetileg tesztelési célra létrehozott szoftveres leképezője. Az egész előnye, hogy a rendszer compute shadereket is képes futtatni a központi processzorokon, ráadásul az új verzió már AVX-512 utasításkészletet is kezeli, vagyis gyakorlatilag akármilyen CPU is dolgozzon a gépben, a teljesítmény szempontjából legjobb utasításkészleten fog futni a program.
Movidius Myriad X MA2485 VPU
Persze maga a teljes CPU-s fallback egy kényszerű tényező csak, a WinML az esetek nagy többségében jóval hatékonyabb, ha használja a dedikált vagy integrált grafikus vezérlő gyorsítását, így a Windows 10 operációs rendszer törekedni fog arra, hogy a lehetőségekhez mérten leginkább a gyorsító működjön. Sőt, a Microsoft az Intel kérésére beépítette még a Movidius Myriad X MA2485-ös VPU támogatását is, ami egy igen speciális DirectX 12-es implementáción keresztül biztosítja a WinML API-t használó alkalmazások feldolgozását.
A Windows ML platform, beleértve az összes szükséges komponenst a Windows 10 2018-as nagyobb frissítéseiben lesz elérhető.