昨天有个段子,相传有勇士用一块4090显示卡跑了一下llama 3.1 405B的大模型,苦等半小时出了一个“The”。
这件事就相当搞笑了,在AI大模型的时代,如果你没有合适的硬件资源那么真正的想触及一下最尖端的技术无异痴人说梦。毕竟类似于405B版本的Llama 3.1它的BF16级别模型起始硬件需求是至少800GB内存以及640GB显存,通过这些硬件的设置405B才“可堪用”
如果是一个大型企业我们可以投入几百万美元构建这样一套系统,但是如果是个人呢?大多数个人就只能望机兴叹,即便是王校长的财力也很难靠自己的零花钱对Llama 3.1最大体量模型一窥究竟
在这样的大背景下,如何获取和利用高性能的硬件资源,成为每个AI从业者必须面对的重要课题。
让iN想起来另一个段子,很多人去村里玩,临走的时候都会村民们都会给你带上大量土特产,你如果拒绝,村民往往会笑着说“自家出的,不值钱……”。CPU这种东西其实也有几家厂商在“自家出”用起来显得“很不值钱”——关键你要找到合适的门道。
这家“CPU不值钱”的厂商大家熟悉得很,就是大名鼎鼎的牙膏厂Intel,在他们的在线云项目中为开发者提供了大量的计算节点。只需要注册一下账户,就可以在特定条件下使用到这些节点。
这项服务在Intel叫做oneAPI。
先说下什么是oneAPI,这是一个Intel自己寄予极大期待的开放标准,Intel设立这项技术的初衷是希望依靠同一套代码来支撑CPU、GPU、NPU、FPGA等计算单元的加速作业。这样在相同的代码下只需要升级到不同的硬件就可以获得计算速度和计算能力的大幅度提升。同时在oneAPI的标准下,开发、部署、移植应用也就变得相当的便捷,毕竟程序员所面对的就是一套统一起来的堆栈。
既然intel搞了这么大的一个概念,那么就得让人测试和开发啊,但是这件事并不简单,不仅仅涉及到了大量实验性硬件的购买和配置直接拉高企业成本,也涉及到了大量的环境和库支持同时拉高了企业门槛……显然开发者是不会对这种开创式的创举买单的。那么Intel要想开局成功,也就只好给大家来在线试用。
反正CPU、GPU、NPU、FPGA都是他家“自家出的,不值钱”。
那么你要如何用到这些Intel提供给大家的免费资源呢?
第一,去intel 的oneAPI注册一个自己的账户
第二,账户登录后连接到intel的实验平台上。
注册账户的事情没什么可说的。
当注册后,可以登录到oneAPI的用户界面
在这里右上角可以看到自己的用户名以及失效日期(Expiration Date),通常而言用户失效是在注册后的三个月,也就是说在注册后可以使用90天。临近失效期可以点击Request Extension进行延期,基本上如果不出意外的话,通过每90天点一下Request Extension是可以一直免费使用下去的。
进入后点击Get Start,进入项目的选择区域,如果我们要使用显卡和分析服务,就选择Intel® oneAPI AI Analytics Toolkit。
根据每个人自己的情况,可以选择windows 下的SSH客户端进行连接,也可以选择Linux/MAC OS或者直接导入VS Code的连接设置。
以iN的mac OS为例:
下载后,将密钥拷贝到~.shh/目录中
编辑~/.ssh/config文件加入下面内容:
Host devcloudUser u227053IdentityFile ~/.ssh/devcloud-access-key-227053.txtProxyCommand ssh -T -i ~/.ssh/devcloud-access-key-227053.txt guest@ssh.devcloud.intel.com
简单的说说就是设置好主机名、用户名、密钥和连接地址。
设置后,将密钥文件 chmod 600赋予权限,如果之前没用过ssh的配置文件的话,也将~/ssh/config 也chmod 600一下设置好权限。
这时候在命令行就可以使用 “ssh devcloud”登录到intel的实验环境了。
但要注意这只是一个让你能登录进来的前端,intel的CPU显卡什么的都是计算节点,还需要通过这个前端来调用节点。
我们可以通过pbsnodes | sort |grep properties命令来查看你现在有权使用的计算节点:
通常intel会给予一个账户几十个计算节点使用,从大家耳熟能详的Core i9到志强都有,其中会出现properties = core,tgl,i9-11900kb,ram32gb,netgbe,gpu,gen11的内容,表明了CPU的型号、内存容量、网络规格和显卡类型等基本信息。
例如:xeon,icx,plat8380,ram2tb,net1gbe,batch,这就是一台使用铂金志强8380CPU 拥有2TB内存的计算节点。
再如:xeon,skl,gold6128,ram192gb,net1gbe,fpga_runtime,fpga,arria10,这表明是一台金牌志强6128CPU配备192GB内存并带有Arria 10 FPGA计算板的节点
我们可以git一些项目到这台试验机中
在git项目的基础上创建一个执行命令:
这时候,我们就可用节点调用命令qsub将项目发送到计算节点上进行处理:
同时,可以通过命令watch -n 1 qstat -n -1对现在正在处理的任务进行查阅
虽然说这种处理方式比传统的命令行处理要麻烦一点,但是“白吃馒头就别嫌面黑了”,把这些掌握了,训练一些自己的AI模型,或者跑一些自己的分析应用都是免费的且高效的。毕竟这是很多人能接触到的最高端的处理能力了。
热门跟贴