Windows Copilot PC 非正式导论

Windows Copilot PC是Windows提出的新一代个人电脑的标准。

不同于游戏PC等强调某一部件的子类,Windows Copilot PC 是真正的下一代个人电脑的标准,因为它不仅要求搭载一个全新的硬件类目,还要求软件/云端/系统API等的配套结合,故称得上是完整并且独立的一套新的系统和生态。

(至少看起来是这样)

(至少宣传是这样)

(反正大概就这样)

所以大概是个啥?

关于Windows Copilot PC的introduction,微软在2024.05.20发布了一份blog专门做了这个工作:

https://blogs.microsoft.com/blog/2024/05/20/introducing-copilot-pcs

(文章又臭又长所以)使用Windows Copilot PC提供的文本总结,我们大概可以知道,Copilot PC首先要求搭载一个算力大于40 AI TOPS的NPU(GPU都不算,因为GPU没有NPU省电),然后能本地运行SLM等AI模型,并支持Windows一系列AI-powered功能和应用。

这些功能和应用大部分是关于AIGC,语言模型和机器学习的,并且重点是把(大)部分和隐私有关的计算放在本地由NPU等完成,来实现AI的推广,解决隐私困扰。具体在推广的功能和应用可以自行查看这个blog了解。

这就完了?

如果你只是一个消费者或用户,到此就差不多了。但对于一个开发者,只知道有什么用还不够,你还需要知道怎么用。

依我拙见,其实Windows Copilot PC并非Microsoft一己之力推动的,这背后也有业界逐渐趋于一统的标准化潮流和成果在助推。

业界的标准化潮流,就是ONNX格式/框架/运行时(当然Microsoft也是组织成员之一了)。

Microsoft的努力,则体现在Windows ML和DirectML这些API组件的制定上。

说人话!

好!

ONNX框架

关于ONNX框架,你可以参考:

https://onnx.ai/onnx/intro

当然,对于开发者更关注的是运行和部署适配,所以关于ONNX Runtime运行时,你可以参考:

https://onnxruntime.ai/docs/tutorials

我比较感兴趣的是它的执行后端,也就是execution provider的引入:

通过这样的形式,它就把各个厂商的硬件实现拉齐到同一起跑线了,这对标准化的制定是至关重要的。

然后,ONNX的当务之急是对当前热门的generative AI models细分领域的支持。所以它着重强调了它的Generate API:

https://onnxruntime.ai/docs/genai/tutorials

https://github.com/microsoft/onnxruntime-genai

从这个表可以看出ONNX对(Generate API)标准化的决心。层次科学明了,覆盖广度和建设高度齐飞。

基于此,厂商在开发软件支持中间件的时候就很方便了,比如RyzenAI-SW环境中的python包,和ONNX有关的有:

其中有两个包是没有pypi公网地址的,因为它是本地编译安装的,它们是onnxruntime-genai-directml-ryzenai,onnxruntime-vitisai。

顾名思义,onnxruntime-genai-directml-ryzenai就是一个ONNX runtime的execution provider,它是面向Generate API运行时的(而不是面向一般化的ONNX运行时的),它拓展的是DirectML接口(所以是面向GPU加速的执行器),并且最后的ryzenai后缀说明这是非公版的,是DirectML接口体系下的AMD RyzenAI custom operation hook的实现(也就是并非走的公版的DirectML流程,会适配所有的GPU,而仅适应AMD自家的GPU)。

并且,虽然上面没有列出,但与之对应的,是onnxruntime-genaionnxruntime-genai-directmlonnxruntime-genai-cuda等这些公版的Python包。放在一起大家就明白了,其实这就是ONNX体系定义的execution providers。

至于onnxruntime-vitisai,想必是ONNX普通运行时的VitisAI execution provider的实现了。

Windows AI相关

Windows关于AI一直在造概念,更烦人的是这些概念还不断在换名字。所以我懒得导论了,直接多甩点连接就好了。

Phi Silica

直接看官方的说明吧。

Phi Silica is a local language model that you can integrate into your Windows apps using Windows AI Foundry.

可以说,Windows正是造出了Phi Silica这个本地语言模型,才有决心和底气推出这一整套Windows AI和Windows Copilot PC概念的,具体参见:

https://learn.microsoft.com/en-us/windows/ai/apis/phi-silica

Windows AI Foundry

它之前是叫Windows Copilot Runtime,但过于抽象和不符合实际,最近才改成了Windows AI Foundry。

这个更多是营销层面的整合包装,并非开发体系上的划分,所以随便改,我不在意。就是一些Windows

AI概念和Windows新推的Phi Silica本地语言模型整合后得到的一个营销话术。具体参见:

https://learn.microsoft.com/en-us/windows/ai/overview

Windows AI APIs

它之前是叫Windows Copilot Runtime APIs,也是最近才改成了Windows AI APIs。

当然我的确支持Windows AI这个销售概念,它比Windows Copilot Runtime更简单更包容,并且和有硬件指向的Copilot概念有了更大的区分。具体参见:

https://learn.microsoft.com/en-us/windows/ai/apis

Windows ML

这终于是个开发体系上的概念了。

Windows ML我理解就是Windows Runtime关于机器学习的所有顶层聚集点。它曾经只是是DirectML的前端,现在经过ONNX拓展后,它成为了Windows上所有机器学习执行框架的前端,并主要通过ONNX格式和框架来实现互通。

网址的细节也体现了些有趣的道道——现在它是the new windows ml了,而不只是the windows ml了。具体参见:

https://learn.microsoft.com/en-us/windows/ai/new-windows-ml/overview

DirectML

这是最核心的Windows ML的概念了。

它从DirectX中分设而来。联系Direct3D、DirectDraw等组件可知,它在DirectX体系中负责机器学习的实现和运行。你可以把它看做Windows ML的(一个)后端。

当然,因为它是属于Windows系统的公版的general的执行组件,所以在它之下还可以由底层的驱动来进行拓展和分化,于是便有了前面提到的,ONNX的ROCm、CUDA、VitisAI等具体的execution provider的实现。具体参见:

https://learn.microsoft.com/en-us/windows/ai/directml/dml

后话

说了那么多,大家应该更多想立马上手体验一下Windows AI的最新成果,但如何体验呢?

通常我们会想到直接安装开发版的Windows,这当然更完整,但太折腾了。

其实大家可以直接点,一键安装Windows商店提供的AI Dev Gallery,就能瞬间体验Window吹的AI概念和功能了!

具体参见:

https://learn.microsoft.com/en-us/windows/ai/ai-dev-gallery

安装以后,打开,直接先去下载几个模型(当然都是Phi)。你可以选择GPU版本的和CPU版本的,如下:

然后你就可以在Samples选项卡体验了。比如体验它提供的文本总结功能:

注意,目前Phi提供的本地版本只有GPU和CPU,并没有看到NPU的版本(可能因为我的电脑不符合要求而不显示下载链接)。

此外,如果你选择WCR版本的Phi Silica,它是基于云端的,需要联网执行,而且对Windows版本和Windows Copilot PC认证有要求:


关于DREAMSCAPER

I am what I seem.

One comment:

用Facebook、WordPress或邮箱即可评论