• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

如何在 AO 上打造 AI 应用?

  • 2024年9月12日 21:53

来源: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。

JBd5RmxayVJxYgLm9uWzSnqx4qnTPQLpYCGWfTFq.jpeg

运行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回复“生命的意义是一个深刻而哲学的问题,一直吸引着人类。”

liahvGe3r5myHgI5nhtWNGelpEzXPDOnOTe0WnZ3.jpeg

更多

在链上实现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/

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM