来源:PermaDAO
AO是为链上AI设计的异步通信网络,通过与Arweave的结合,实现高性能链下计算和永久数据存储。文章介绍了在AO上运行AI进程的步骤,尽管目前仅支持小型模型,但未来将支持更复杂的计算能力,AI在链上的发展前景广阔。什么是AO上的AI?
AO天生就是为链上AI设计的
2023年被称为AI的元年,各种大模型以及AI的应用层出不穷。Web3的世界中,AI的发展也是关键的一环。但是一直以来,“Blockchain不可能三角”让Blockchain的计算一直处于昂贵、拥堵的状态,阻碍了AI在Web3上的发展。但是现在这种情况在AO上已经得到了初步改善,并且展现了无限的潜力。
AO被设计为一个消息驱动的异步通信网络。基于存储共识范式(SCP),AO运行在Arweave之上,实现了与Arweave的无缝集成。在这种创新的范式中,存储(共识)与计算被有效地分离,使得链下计算和链上共识成为可能。
高性能计算:智能合约的计算在链下执行,不再受制于链上的区块共识过程,从而大大扩展了计算性能。不同Node上的各个进程可以独立地执行并行计算和本地验证,而无需像传统的EVM架构中那样等待所有Node完成重复计算和全局一致性验证。Arweave为AO提供了所有指令、中间状态和计算结果的永久存储,作为AO的数据可用层和共识层。因此,高性能计算(包括使用GPU进行运算)都成为了可能。
永存的数据:这是Arweave一直以来所致力于做的事情。我们知道AI的训练中很关键的一个环节就是训练数据的收集,而这正好是Arweave的强项。至少200年时间的数据永存,让AO+Arweave的生态中拥有了丰富的数据集。
此外,AO和Arweave的创始人Sam在今年6月的一次发布会上演示了第一个基于aos-llama的AI进程。为了保证性能,并没有使用之前一直使用的Lua,而是使用了C编译的wasm。
使用的模型是huggingface上开源的llama2。可以在Arweave上下载模型,是一个约2.2GB的模型文件。
Llamaland
LlamaLand是一款前沿的大型多人在线(MMO)游戏,它以AI技术为核心,构建于先进的AO平台之上。也是在AO+Arweave生态上的首个AI应用。其中最主要的特征就是llamacoin的发行,是100%AI控制的,也就是用户跟Llamaking祈愿,得到Llamaking赏赐的llamacoin。另外,地图中的LlamaJoker、Llamaoracle也都是基于AI进程完成的NPC。
运行AI进程需要耗费少量的wAR。通过arconnect转成功以后,会在进程中看到Action=Credit-Notice的一条消息。执行一次AI需要消耗wAR,但是消耗的并不多,作为demo之用的话,向进程转0.001wAR即可。
注意:wAR可以通过AOX跨链桥获取,跨链需要3~30分钟。
可以通过以下命令查看当前进程中wAR的余额。下面是我执行了5次左右还剩下的wAR。消耗的数量跟token的长度以及当前运行一次大模型的实时价格有关系。另外,如果当前请求处于拥堵状态,那么也会需要一个额外的费用。(在文章最后,我会根据代码详细解析下费用计算,感兴趣的小伙伴可以看看)
注意:这里小数点为12位,也就是说999999673表示的是0.000999999673个wAR。
3.安装/更新APM
APM全称为aopackagemanagement,构建AI进程的话,需要通过APM安装对应的包。执行上述命令,出现对应的提示,就是安装/更新APM成功了。
4.安装LlamaHerder
执行完成以后,在进程内会有一个Llama对象,可以通过输入Llama进行访问,那么 LlamaHerder就是安装成功了。
注意:这里如果运行的进程中没有足够的wAR则Llama.run方法是无法执行的,会出现TransferError。需要按照第一步充值wAR。
5.HelloLlama
接下来我们做一个简单的交互。问一下AI进程“生命的意义是什么?”,限定了最多生成20个token。然后把结果放到OUTPUTS中。AI进程的执行需要几分钟的时间,如果有AI任务排队的话,则需要等待更久。
如下面代码中的返回,AI回复“生命的意义是一个深刻而哲学的问题,一直吸引着人类。”
更多
在链上实现AI的能力,在之前是无法想象的东西。现在已经可以在AO上,基于AI实现了完成度较高的应用,其前景让人期待,也给与了大家无限的想象空间。
但是就目前而言,局限也是比较明显的。目前只能支持2GB左右的“小语言模型”,尚不能利用GPU进行运算等。不过值得庆幸的是,AO的架构设计中也都对这些短板有着对应解决方案。例如,编译一个可以利用GPU的wasm虚拟机。
期待在不久的将来,AI可以在AO的链上,开放出更加绚烂的花朵。
附录
前面留下的一个坑,一起看下LlamaAI的费用计算。
下面是初始化好以后的Llama对象,分别对重要的对象给出一个我的理解。
M.herder:存储了LlamaHerder服务的标识符或地址。
M.token:用于支付AI服务的token。
M.feeBase:基础费用,用于计算总费用的基础值。
M.feeToken:每个token对应的费用,用于根据请求中的token数量计算额外费用。
M.lastMultiplier:上一次交易费用的乘数因子,可能用于调整当前费用。
M.queueLength:当前请求队列的长度,影响费用计算。
M.feeBump:费用增长因子,默认设置为1.005,意味着每次增加0.5%。
M.feeBase初始值为0。
通过M.getPrices函数向LlamaHerder请求最新价格信息。
其中M.feeBase、feeToken、M.lastMultiplier、M.queueLength都是向M.herder请求,并接收到Info-Response消息后,实时变动的。确保了总是保持最新的价格相关的字段值。
计算费用的具体步骤:
根据M.feeBase加上feeToken与token数量的乘积,得到一个初始的费用。
在初始费用的基础上,再乘以M.lastMultiplier。
最后,如果存在请求排队的情况,会再乘以M.feeBump,也就是1.005得到最后的费用。
引用链接
1.Arweave上的模型地址:
https://arweave.net/ISrbGzQot05rs_HKC08O_SmkipYQnqgB1yC3mjZZeEo
2.aosllama源码:
https://github.com/samcamwilliams/aos-llama
3.AOX跨链桥:
https://aox.arweave.dev/
免责声明:如何在 AO 上打造 AI 应用?文章转发自互联网,版权归其所有。
文章内容不代表本站立场和任何投资暗示。加密货币市场极其波动,风险很高,可能不适合所有投资者。在投资加密货币之前,请确保自己充分了解市场和投资的风险,并考虑自己的财务状况和风险承受能力。此外,请遵循您所在国家的法律法规,以及遵守交易所和钱包提供商的规定。对于任何因使用加密货币所造成的投资损失或其他损失,本站不承担任何责任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM