如何让区块链获得人工智能的能力

转载
2000 天前
16010
蓝狐笔记

文章来源:蓝狐笔记


(梵高)

随着人们在虚拟世界的行为数据日趋复杂和丰富,随着未来物联网设备数十亿数百亿级别的增加,数据复杂度将呈指数级增加。在这种情境下,区块链、人工智能以及物联网,将会是未来几十年最重要的技术推动力量,可以说是三驾马车。

人工智能的产生源于人类对自身局限的改进。作为生物能的主体,人类无法持续进行大量的运算,难以接近事情的全貌。人工智能弥补了人类的局限,在极其庞杂的数据中,帮助人们作出更好的决策。

区块链的本质是构建一套无须中介即可自运行的系统。跟中心化的系统不同,要达成自运行的系统,需要达成多方的共识,所以,需要有人记账,有人验证,以达成共识。通过这样的过程,区块链在人类历史上第一次实现了不依靠单一主体的信任和安全。仅这一点而言,区块链就是具有社会革新性的技术。

区块链和人工智能有什么可以结合的地方?两者是相互赋能的关系。首先,区块链可以赋能人工智能。人工智能核心有算力、算法和数据。但目前少数巨头占据绝对优势。区块链让人工智能的发展有了新的路径选择。

算力方面,目前有项目利用区块链无须中介信任的特点,试图构建去中心化的算力市场,聚集闲置的算力,用于人工智能的计算。当然,目前看还不成熟,但也是值得尝试的方向。

数据方面,也可利用区块链的去中心化信任,形成数据市场,让用户自己控制数据,并获得回报。区块链的隐私保护技术可以促进数据市场的发展,为人工智能带来更多优质数据。而这些数据不再是巨头们的垄断,有利于形成更公平的人工智能市场。

算法方面,通过区块链也可形成去中心化的模型市场。目前的模型和数据都是相互依存,训练模型需要数据,数据需要更好的模型。如果能够形成一个去中心化的模型市场。那么,在保证数据私密的情况下,能够带来更好的智能推断结果。

总之,区块链之所以能够赋能人工智能,主要是基于区块链无须中介的信任特征。这决定了它在未来能够帮助到人工智能。此外,区块链的去中心化特性以及隐私技术的发展,也能带来更多的安全和隐私保护,这对于后续人工智能的发展都会有很大的帮助。

同样,人工智能也会赋能区块链。通过人工智能的参与,dApp也有了更多可自演化的特性。从而让区块链具备更多价值,一个具有机器学习能力的去中心化应用能够有更多的落地场景。这也是让区块链证明自己的机会,让它产生更多的落地价值。

本文阐述人工智能与区块链的关系,但由于话题比较大,首先会聚焦于去中介化的算法市场。这是Cortex的突破口。本文以Cortex为案例,分析区块链上人工智能化的探索,Cortex在去中心化推断和构建区块链场景下的新型确定性推断框架方面都取得了进展。Cortex的最终目标是要利用人工智能和区块链的结合实现去中心化的生产关系设计。

 

Cortex的链上人工智能的探索

以太坊当前聚焦于2.0的发展,其核心是通过分片、PoS以及eWASM进行扩展,也就是说,基于以太坊公链的dApp有可能获得更高性能,但说到人工智能的算法支持方面,它并无优势。当前以太坊的智能合约不具备自我学习和进化能力。

那么,能否给智能合约,dApp赋予人工智能的能力?这正是Cortex在努力探索的地方。Cortex是专注于为智能合约提供人工智能算法支持的公链,它允许任何人都可以为自己的智能合约增加人工智能模型。它要赋予区块链人工智能的能力。

如何给区块链增加人工智能的能力?Cortex从算法模型方面进行突破。它试图让人们获得最好的模型。如何才能让人们获得最好的模型?Cortex基于区块链提出了算法模型的市场,也就是任何人都可以提交和优化模型,对模型有贡献的人可以获得奖励。

Cortex兼容EVM智能合约,可以运行现有以太坊智能合约,也可以运行带有人工智能算法模型的合约,也就是具备人工智能的推断能力。

在Cortex的系统中,有多种重要的角色,包括提交模型的贡献者、调用模型的需求者、记账矿工和运行合约的全节点等。

基于区块链的开源特性,这会加速模型的进化速度,因为基于集体的智慧会促使更多创新的产生。从这一角度,一旦形成足够多模型的算法市场,会极大加速人工智能的进展。

Cortex整个系统围绕着一个核心问题进行基础设施的构建:如何给区块链赋予人工智能的能力。而且,这个能力是能够不断进化的。

一旦解决了这个核心问题,它意味着什么?

它意味着,真正的人工智能dApp时代的到来。什么是人工智能dApp?dApp不再是简单地根据预设条件执行操作,它还具备人工智能的能力。它在金融、游戏、个性化推荐、管理等方面都会有应用。

具体来说,比如金融方面,举个金融征信例子,可以形成一个能够保护用户隐私,同时还能得到信用评分的可靠征信,这会极大促进开放金融的发展。当前基于以太坊的开放金融往往采用一刀切的逻辑,如Compound 和Dharma只有单一的借贷利率,如果加入一定的数据和模型,是否能够形成个性化的借贷利率?这些都是可以考虑和探索的场景。

其他的应用,还包括DEX的反欺诈、游戏的自动评判、玩家代理、NPC、助教系统、分布式决策、情感分析、智能投顾、链上数据挖掘、人脸识别、聊天机器人、自动翻译、语音合成、个性化信息推荐、搜索引擎、自动驾驶等。

更关键的是,这些应用都是基于区块链的,是去中心化的,不可篡改、不可停止的。它跟中心化的人工智能世界完全不同。

通过区块链,如能实现在算力、数据和算法上的去中心化的进展,这几乎是面对巨头在人工智能垄断上唯一可能的制衡,也是人类未来不被完全控制的唯一希望。

那么,Cortex如何来实现这一切?


Cortex如何给区块链赋于人工智能的能力

比特币和以太坊不具备人工智能的能力。比特币的核心是通过区块链实现无须中介参与的价值网络,实现价值的可信确认和转移。以太坊具备简单合约计算能力,通过区块链的共识和不可篡改实现合约的自动执行,但以太坊还不具备构建人工智能应用的能力。

机器学习方面,中心化的公司有很大的优势,大公司在数据和算力、算法方面都有优势。像一些大公司拥有用户的大量真实行为数据,拥有大量的算力,并通过模型不断迭代升级。

去中心化的模型训练,要解决更多的问题,比如隐私问题、带宽问题、数据同步等。有一些方案,比如同态加密能保护用户隐私,但由于运算量过高,当前落地还不现实。

Cortex要赋能区块链,它的突破口在于提供一批链上最好的机器学习模型。有了这些机器学习模型,模型的需求者就可以使用它们来对智能合约进行推断。更进一步,Cortex的用户可以在平台上发布对模型的需求,贡献者根据需求提交模型,通过智能合约调用模型进行推断,最终形成具有人工智能能力的dApp。

当然,最终来说,Cortex要赋能区块链,不仅是在模型上实现突破,预计未来会在隐私保护、分布式数据交换市场、分布式算力市场等方面进一步突破。

具体来说,Cortex是如何构建赋予区块链人工智能的能力的?它有一个全面的解决方案,包括了系统架构、软件方案、硬件方案等。为了在区块链的智能合约上赋予智能推断能力,Cortex从两个方面着手,一是构建模型的市场;二是智能推断的执行方案。

1. Cortex的去中心化人工智能模型市场

如果是中心化的模型市场,只要有一个中心化的主体来组织模型的需求者和贡献者形成市场即可,就像今天的淘宝市场一样。但是,中心化的模型市场存在信任、安全、隐私保护、费用高等诸多问题。很难保证中心化主体的完全可信任、很难保证数据和模型的足够安全,另外,一旦形成市场的垄断,费用方面也会高于去中心化的解决方案。

Cortex的去中心化智能模型市场,涉及到模型的需求者、模型的贡献者、矿工、全节点等。具体来说,它的基础流程如下:

模型的贡献者,全球的任何机器学习从业者都可以将训练好的模型上传到Cortex存储层,而模型的需求者,例如dApp的开发者可以选择适合自己的模型进行智能推断,需求者需要支付费用给模型的上传者和运行的全节点及记账矿工。在执行推断时,全节点从存储层将数据和模型同步到本地,之后节点会通过Cortex的独有虚拟机CVM(Cortex Virtual Machine)进行推断,将推断结果同步到所有全节点,并把结果返回给模型需求者。


 (推断流程)

从上图可以看出,用户(模型的需求者)发起交易,也就是将需要预测的数据进行代入计算到所选取的数据模型进行数据推断。执行带有数据模型的智能合约和智能推断都需要支付一定的费用,用Endorphin支付,每次支付的Endorphin数量跟模型运算难度和模型排名等相关,Endorphin价格由市场决定,它反映的是执行智能合约和进行模型推断的成本。Endorphin类似于以太坊的gas费用,Endorphin和CTXC(Cortex的代币)存在动态转换关系。

不过跟以太坊不同的是,Endorphin对应的CTXC会支付给两部分人,一是该模型的贡献者,二是矿工和全节点。

已有的智能合约如何获得Cortex链上的模型能力?Cortex在已有的智能合约上添加额外Infer指令,也就是Cortex通过修改和扩展指令集,为智能合约增加人工智能算法的支持,从而使得任何人都可以为自己的智能合约增加人工智能的模型。

上面简单介绍了智能合约获得人工智能能力的基本流程,那么其中的模型贡献者是如何实现模型的提交的?

目前看,链上的处理能力还不足以进行数据的大规模训练,基于这种现状,Cortex提出了链下训练的方案,它提供链下训练的提交接口,也包括模型的指令解析虚拟机。

模型的贡献者将模型通过Cortex的CVM解析成模型字符串及参数,并上传到存储层,发布通用接口,供模型的需求者(如dApp开发者)进行调用。这里有几个问题需要解决:一是模型的质量;二是模型的存续;三是模型的防作弊;四是模型的挑选。

 

(模型提交流程)

为了防止有人泛滥提交模型,模型提交者需要支付一定的费用,同时也是支付其在存储层存储的费用,以保证其持续存在。如果模型提交者进行撤回操作,Cortex会根据模型的使用情况进行托管,这也是为了保证调用模型的智能合约能正常工作。Cortex上的模型是公开的,这意味着会存在抄袭和复制的可能,一旦出现明显抄袭或复制,Cortex会通过介入仲裁的方式进行解决。

模型的挑选方面,Cortex链提供的开放的市场,不对模型进行限制。模型的需求者可根据某些数据进行挑选,如被调用次数等。也可以通过自定义的模型排序机制实现甄选,例如召回率、准确率、计算速度、基准排序数据集等。

Cortex除了为自己的用户提供人工智能的服务,也为其他链提供AI的调用接口。比如,以太坊智能合约也可以调用其AI模型服务。

2. Cortex的模型推断的执行

上面我们介绍了Cortex算法模型市场的基本结构和流程,那么它具体来说,是如何在Cortex链上进行推断的?

 

(全节点执行推断流程)

首先,Cortex公链本身并不实际存储数据和和模型,它存储的是模型和数据的哈希值,模型和数据存储在链下的存储层。

在Cortex的智能推断执行中,主要是全节点来执行。当模型的需求者(如智能合约的开发者)发起一笔智能合约的交易,全节点不仅要执行该智能合约代码,它还涉及到推断指令的执行。

具体流程来说,首先全节点会查询模型索引,找到该模型在存储层的位置,并下载模型的字符串和对应参数。之后,通过Cortex模型表示工具将模型字符串转换为可执行代码。然后再通过Cortex的虚拟机CVM执行可执行代码,得出结果进行全节点共识广播。

在区块链上进行深度学习的部署并非易事,主要是受制于节点的算力、内存和能耗,且区块链要求严格的确定性。这对链上的AI推断实现带来很大的挑战。

Cortex提出了区块链场景下的新型确定性推断框架,它是一种基于MXNet深度学习库模型的、为严格确定性设计的定点化方法。该框架包括了上面提到的两个主要组件:MRT和CVM。其中MRT(模型表示工具)用于模型定点化、CVM(Cortex虚拟机)用于链上推断。

Cortex首先使用MXNet的NNVM模块,称为MRT,也就是模型表示工具用以创建转换器,以实现量化MXNet模型集。然后,在CVM上运行量化模型。具体的实现过程涉及到重写、融合等复杂的运算过程。这里不进行详述。当前来看,Cortex的定点化方案应用之后,并没有降低精度。这也是Cortex在技术探索上取得的突破。


Cortex的PoW共识

Cortex采用的是PoW共识,关于PoW共识大家了解比较多,这里不做详细阐述。Cortex链的主要改进在于试图让参与挖矿的矿工在硬件上更公平,这里的挖矿矿工主要指的是链上记账的矿工。Cortex采用Cuckoo Cycle的PoW试图缩小CPU和显卡之间加速比的差距,并发挥智能手机显卡的效能,甚至让手机挖矿成为可能。

具体来说,Cuckoo Cycle是一种基于图论的求解算法。它要在Siphash随机生成的Cuckoo二分图中寻找到固定长度L的环。求解的过程,也就是寻找环的过程。求解的难度跟图的规模和L值相关,是一种Memory-hard的PoW算法。

Cortex主链采用Cuckoo Cycle的变种算法CuckARoo30算法,CuckARoo算法主要是对二分图内所有的节点进行分组,每组内的节点存在相互依赖关系,大大增加了求解难度,具有抗ASIC特性。

Cortex的CuckAroo30算法,将Siphash-2-4替换为Siphash-4-8,通过其抗ASIC的算法特性,可让更多普通矿工参与进来,以实现去中心化。Cortex目前的出块时间大约15秒,每个区块奖励7CTXC,每四年减半。同时,为了保证相对稳定的出块时间,利于防止双花和记录被篡改,Cortex的难度是动态调整的。

 

Cortex的CVM和模型表示工具

关于Cortex的软件方案和硬件方案,这里不做过多的介绍,详细内容可以参考Cortex的白皮书。这里重点提一下Cortex的CVM,也就是Cortex自己独有的虚拟机。CVM指令集兼容以太坊的EVM,还提供对推断指令的支持。Cortex的核心指令集覆盖主流人工智能的计算框架操作,支持跨平台的推断共识。

Cortex的模型表示工具旨在创建灵活开放的标准,实现深度学习框架和工具的互操作。Cortex模型表示工具方便人工智能开发者根据不同任务选择合适的框架,框架开发者可专注于创新和升级,硬件供应商可以进行有针对性的优化。

 

Cortex的代币经济模型

Cortex的代币为CTXC,其主要作用通过激励形成生态系统的正向循环。Cortex的生态主要参与者包括矿工、全节点、模型贡献者、模型需求者、Cortex基金会、顾问和社区等。每个角色都需要得到激励,才能形成去中心化的生态体系。

首先它会激励模型的贡献者。模型的贡献者通过提供模型获得代币奖励,奖励的多少,取决于模型的受欢迎程度。被模型的需求者调用的次数越多,能够获得的代币奖励就越多。前面也提到过,模型的需求者在调用合约时,需要支付Endorphin,类似于以太坊的Gas机制,价格根据市场调整。

其次,矿工和全节点也会因为自己挖矿记账和执行带有模型的智能合约而获得奖励。Cortex的代币总量中,50.03%的比例用于挖矿奖励。执行智能推断的全节点也会获得来自于合约调用者支付的费用,费用由模型的提供者和全节点及矿工之间分配。

除了模型需求者调用模型需要支付Endorphin费用之外,模型的提供者也需要支付模型的存储费用,以促使模型贡献者提交更优秀的模型。

模型的需求者是CTXC代币的主要消耗者,它调用模型需要支付运算和模型的使用费。

从Cortex的代币模型看,除了类似于以太坊的挖矿奖励和交易费用模型之外,它还增加了使用模型相关的奖励和消耗机制。模型的提交者因为其模型的质量而获得代币收益,同时也需要为其存储付费。模型的需求者则属于服务受益者,需要用代币支付服务的相关费用。

最后基金会、顾问和社区也是Cortex生态的重要组成部分。基金会获得24.95%的代币分配,主要负责项目的落地和推进。顾问和社区,包括开发者和推广者,也为项目的发展提供推动力,也会获得相关的代币激励。

 

Cortex的进展

Cortex是从2018年2月启动,截止到目前有17个月左右。在这一年多的时间内,它完成了测试网的上线和主网的正式上线。测试网于去年第三季度上线,其中包括了挖矿测试链Bernard和AI智能合约测试链Dolores。

Cortex的主链于2019年6月26日发布,这是区块链上首个实现链上人工智能推断的项目,不仅要实现在区块链上真正运行人工智能的计算程序,同时也要实现全网共识来验证人工智能推断的每一步,从而确保去中性化、确定性、公开。

从以上的介绍,我们也可以看出,在区块链上实现人工智能推断并不容易,它需要解决分布式计算的性能、不确定性等诸多挑战。Cortex经过一年多时间,在虚拟机设计、解决AI模型推断结果的确定性、链上AI推断的确认速度等方面,都取得进展,这在工程上需要解决各种挑战,比如深度神经网络模型在异构环境中存在不确定性,在区块链上执行时很难达成网络共识。要顺利解决这些问题,需要团队在AI和区块链领域都有较深厚的理解和积累。

根据Cortex的白皮书介绍,创始人陈子祺毕业于清华大学,后获得加州大学圣克鲁斯分校的计算机硕士学位,师从David P. Helmbold研究机器学习理论及算法应用,曾在SFTC公司担任主研究科学家,负责有限元网格生成法,同时对区块链的挖矿、共识算法和公链有研究。CTO兼首席科学家田甲同样毕业于清华大学,曾在百度、阿里担任过搜索引擎的架构师,在人工智能和区块链领域都有深入研究。区块链工程总监杨阳同样也有清华大学背景,具有独立用C/C ++实现一个数据库的能力,熟悉分布式数据库等。

此外,顾问方面Matt Branton、Whitefield Diffie等人。其中,Matt Brandton是分布式计算专家,也是World Financial Desk的创始合伙人;学术顾问Whitefield Diffie是公钥密码学的先驱,图灵奖得主。

 

结语

区块链和人工智能的结合,有利于释放双方的潜能。它们之间是相互促进和赋能的关系。Cortex通过为区块链智能合约赋予人工智能的能力,从而扩展了区块链的能力,使去中心化的人工智能应用成为可能,带来更多的区块链落地价值。这对于区块链世界进化来说,会有重大的影响,之前的“智能合约”其实并不智能,只是在条件触发后进行执行,而有了人工智能之后的“合约”,才能真正称为“智能合约”。