DeAI 的下一步:链上推理实现人脸识别
社区在提案 13094 中批准的复制版本 e4eeb3 完成了 ICP 路线图中的 Cyclotron 里程碑。
这一里程碑的目标是实现具有数百万个参数的 AI 模型的链上推理,这是迈向大型 AI 模型的链上训练和推理这一更宏伟目标的第一步。
众所周知,人工智能工作负载需要大量计算,对具有数百万个参数的人工智能模型进行推理需要数十亿次算术运算,例如乘法和加法,这意味着,为了支持链上推理,区块链需要每秒处理数十亿次运算的能力。
Cyclotron 里程碑将 ICP 的计算能力提高了一个数量级(约 10 倍),使其成为唯一一个拥有完全在链上执行人脸识别的智能合约工作示例的区块链,以及其他用例,例如图像分类和运行 GPT2(由 DecideAI 开发)。
查看本文开头 Dominic Williams 的面部识别演示视频。
链上人工智能计算的基础
虚拟机是区块链的一部分,对于 AI 计算至关重要,因为它可以执行智能合约的代码,虚拟机的功能和性能直接影响智能合约可以执行多少 AI 计算。
例如,EVM 是以太坊的虚拟机,它是为 DeFi 智能合约量身定制的,缺乏 AI 计算所需的浮点运算等功能,相比之下,ICP 使用 WebAssembly 作为虚拟机,WebAssembly 支持浮点数,并且从头开始设计以实现接近原生的性能。
Cyclotron 里程碑的想法是尽可能地从 ICP 虚拟机中榨取尽可能多的浮点数性能。
优化 1:确定性浮点运算
大多数 AI 库和框架都依赖于浮点运算,在 ICP 的上下文中,浮点运算必须是确定性的,这意味着它们应该使用相同的输入操作数产生相同的可预测结果。
这种确定性属性很重要,因为 ICP 在多个节点上执行相同的代码,然后运行其共识算法来建立正确的结果,如果浮点运算不确定,节点可能会出现分歧,从而阻止区块链的进展。
DFINITY 工程师在名为 Wasmtime 的 WebAssembly 虚拟机实现中找到了一种使确定性浮点运算更快的方法,这是一种低级编译器优化,可生成更快的代码,这种优化不仅使 ICP 受益,还使使用 Wasmtime 的其他平台和区块链受益。
SIMD 是所有现代 CPU 都支持的技术,它允许 CPU 使用一条指令执行多个算术运算,例如,WebAssembly 可以使用一条指令执行四个并行浮点加法,如下图所示。
WebAssembly SIMD 还可以处理整数,例如,它可以对小型 8 位整数执行 16 次并行算术运算,根据数字和运算的类型,性能可能会提高 4 倍至 16 倍。
在 ICP 上运行的智能合约现在可以使用确定性 SIMD 指令并受益于并行计算,了解如何使用 SIMD 编译智能合约:
github.com/dfinity/examples/tree/master/rust/simd
Cyclotron 拼图的最后一块是向 AI 库添加 WebAssembly SIMD 支持,DFINITY 工程师为开源 Sonos Tract 推理引擎贡献了 WebAssembly SIMD 实现。
新代码使用 SIMD 指令实现矩阵乘法和其他数值算法,与 Wasmtime 中的第一次优化类似,这一贡献不仅使 ICP 受益,还使更广泛的开发者社区受益。
结果
这些优化合在一起将数值微基准测试速度提高了 28 倍,在端到端 AI 推理工作负载中,观察到的改进根据模型的不同从 5 倍到 19 倍不等,如下图所示。
包含这些 AI 模型的智能合约的源代码可在 GitHub 上获取,因此任何人都可以重现并验证结果:
图像分类:这是一个 MobileNet 模型,可对输入图像进行分类,并从 1000 个已知标签中返回最可能的标签,运行单次推理所需的 Wasm 指令数量从 247 亿条减少到 37 亿条。
人脸检测:这是一个 Ultraface 模型,可以在输入图像中找到人脸的边界框,运行单次推理所需的 Wasm 指令数量从 61 亿条减少到 12 亿条。
人脸识别:这是一个计算人脸输入图像的向量嵌入的模型,运行单次推理所需的 Wasm 指令数量从 770 亿条减少到 90 亿条,主网上的执行限制为 400 亿条指令,这意味着以前的人脸识别无法在主网上运行,只能在修补的副本中本地运行。
GPT2:这是 DecideAI 使用其 rust-connect-py-ai-to-ic 框架将其转换为智能合约的 GPT2 模型,基准测试的详细信息在 GitHub 上有描述。
基准测试在 dfx 版本 0.20.1(Baseline)和版本 0.22.0-beta.0(Cyclotron)中运行。
结论
Cyclotron 里程碑通过优化浮点运算和启用 WebAssembly SIMD 指令,使 ICP 上的 AI 计算性能接近原生 CPU 性能,它支持对具有数百万个参数的模型(例如图像分类、人脸识别和 GPT2)进行链上 AI 推理。
这是在链上完全运行大型 AI 模型以解决 AI 信任问题的第一步,ICP 路线图中的下一个 AI 里程碑旨在超越 CPU 限制,为了在链上执行 AI 推理和大型模型训练,智能合约需要一种在 GPU 等专用硬件上运行计算和内存密集型计算的方法。
请继续关注 Gyrotron 里程碑。
来源:DFINITY
翻译:Catherine
- 往 期 推 荐 -
TOKEN2049 新加坡将于 2024 年九月盛大开启,将打破所有记录
你关心的 IC 内容
🛠 技术进展 | 🔍 项目信息 | 🌏 全球活动
长按关注 IC 微信视频号
观看最新视频
*添加小助手微信 comiocn 进交流社群