DAG(有向无环图)——区块链从容量到速度的一次革新

什么是DAG

DAG:Directed Acyclic Graph,中文意为“有向无环图”

DAG原本是计算机领域一种常用数据结构,因为独特的拓扑结构所带来的优异特性,经常被用于处理动态规划,导航中寻求最短路径,数据压缩……等多种算法场景。

Blockchain&DAG

再看传统区块链和DAG的区别,简单的说:

1 单元:区块链组成单元是Block(区块),DAG组成单元是TX(交易);

2 拓扑:区块链是由Block区块组成的单链,只能按出块时间同步依次写入,好像单核单线程CPU; DAG是由交易单元组成的网络,可以异步并发写入交易,好像多核多线程CPU;

3 粒度:区块链每个区块单元记录多个用户的多笔交易,DAG每个单元记录单个用户交易。

传统区块链技术的几个问题

1 效率问题:传统区块链技术基于Block区块,比特币的效率一直比较低,由于BlockChain链式的存储结构,整个网络同时只能有一条单链,基于POW共识机制出块无法并发执行;例如比特币每十分钟出一个块,6个出块才能确认,大约需要一个小时;以太坊大幅改善,出块速度也要十几秒。

2 确定性问题:比特币和以太坊存在51%算力攻击问题,基于POW共识的最大问题隐患,就是没有一个确定的不可更改的最终状态;如果某群体控制51%算力,并发起攻击,比特币体系一定会崩溃;考虑到现实世界中的矿工集团,以及正在快速发展量子计算机的逆天算力,这种危险现实存在。

3 中心化问题:基于区块的POW共识中, 矿工一方面可以形成集中化的矿场集团,另一方面,获得打包交易权的矿工拥有巨大权力,可以选择哪些交易进入区块,哪些交易不被处理,甚至可以只打包符合自己利益的交易,这样的风险目前已经是事实存在。

4 能耗问题:由于传统区块链基于POW算力工作量证明,达成共识机制, 比特币的挖矿能耗已经与阿根廷一个国家耗电量持平,IMF和多国政府对虚拟货币挖矿能源消耗持批评态度。

Digiconomist数据图

Digiconomist 数据表明:全球挖矿业务总计,每年产生约2.9亿吨碳排放

由于以上问题,所以有人提出疑问:“为什么一定需要区块呢?”,DAG技术被用于尝试解决区块链的上述问题。

DAG起源

最早在区块链中引入DAG概念作为共识算法的是2013年,bitcointalik.org上由ID为avivz78的以色列希伯来大学学者提出,也就是GHOST协议,作为比特币的交易处理能力扩容解决方案;Vitalik在以太坊紫皮书描述的POS共识协议Casper,也是基于GHOST POW协议的POS变种。

后来NXT社区有人提出用DAG的拓扑结构来存储区块,解决区块链的效率问题。区块链只有一条单链,打包出块无法并发执行。如果改变区块的链式存储结构,变成DAG的网状拓扑可以并发写入。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。

此时DAG跟区块链的结合依旧停留在类似侧链的解决思路,交易打包可以并行在不同的分支链条进行,达到提升性能的目的。此时DAG还是有区块的概念。

Nxt社区提出的DAG of blocks

2015年9月,Sergio Demian Lerner发表了 《DagCoin: a cryptocurrency without blocks》一文,提出了DAG-Chain的概念,首次把DAG网络从区块打包这样粗粒度提升到了基于交易层面,但DagCoin本身是一篇论文,没有代码实现。

DagCoin的思路,让每一笔交易都直接参与维护全网的交易顺序。交易发起后,直接广播全网,跳过打包区块阶段,达到所谓的Blockless。这样省去了打包交易出块的时间。如前文提到的,DAG最初跟区块链的结合就是为了解决效率问题,现在不用打包确认,交易发起后直接广播网络确认,理论上效率得到了质的飞跃。DAG进一步演变成了完全抛弃区块链的一种解决方案。

2016年7月,基于Bitcointalk论坛公布的创世贴,IOTA横空出世,随后ByteBall也闪亮登场,IOTA和Byteball是头一次DAG网络真正技术实现,也是此领域最耀眼的领军者;此时,号称无块之链(Block Less)、独树一帜的DAG链家族雏形基本形成。

一句话来概括:DAG是面向未来的新一代区块链,从图论拓扑模型宏观的看,从单链进化到树状和网状、从区块粒度细化到交易粒度、从单点跃迁到并发写入;是区块链从容量到速度的一次革新。

<think>嗯,用户想了解DAG拓扑的深度神经网络模型是否轻,特别是计算复杂度和部署可行性。首先,我需要明确什么是DAG拓扑结构。在神经网络中,DAG代表有向无环图,这意味着神经元或层之间的连接没有循环,允许更灵活的信息流动,比如Inception模块或ResNet中的跨层连接。 然后,轻级模型通常指参数少、计算复杂度低、适合移动设备部署的模型。所以需要分析DAG结构如何影响这些方面。可能要考虑参数共享、并行计算、模型压缩技术等因素。例如,DAG结构可能通过分支结构减少冗余参数,或者通过并行处理降低计算延迟。 接下来,评估轻特点的指标有哪些?参数、FLOPs、内存占用、推理速度、能耗等都是常见的指标。需要具体说明DAG模型在这些指标上的表现。比如,MobileNet使用深度可分离卷积,虽然结构不是严格的DAG,但类似的优化思路可能适用。 另外,用户提到的计算复杂度,可能需要区分训练和推理阶段。DAG结构在训练时可能因为动态计算图增加开销,但推理时通过优化可能有更好的性能。比如,TensorRT等框架会对计算图进行优化,合并层或化,从而提高部署效率。 还要考虑现有的研究或应用案例,比如引用中的NAS(神经架构搜索)可能用于自动设计高效的DAG结构,找到最优的层连接方式,减少不必要的计算。例如,NASNet通过自动搜索生成的分支结构,在保持准确率的同时降低了参数。 部署可行性方面,DAG模型是否容易转换为移动端支持的格式,比如TensorFlow Lite或Core ML。动态结构可能导致转换困难,但通过静态化处理或预定义分支可能解决。比如,一些框架支持将条件分支转换为固定计算路径,便于部署。 可能还需要比较DAG模型与其他轻级架构,如MobileNet、ShuffleNet的区别。DAG结构是否在灵活性和效率之间取得了更好的平衡。例如,EfficientNet使用复合缩放方法,结合深度、宽度和分辨率,其底层结构可能包含DAG元素,以实现高效计算。 最后,需要指出DAG模型的潜在缺点,比如结构复杂可能增加调试难度,或者动态计算图导致内存占用波动。这些因素是否影响轻级评估,需要权衡利弊。 总结来说,DAG拓扑的模型可以通过灵活的结构设计减少冗余计算,利用参数共享和并行处理降低复杂度,结合模型压缩和硬件加速技术提高部署可行性。但具体效果还需根据实际模型结构和应用场景来分析。</think>基于DAG有向无环图)拓扑的深度神经网络模型是否具备轻化特性,需要从结构特性、计算复杂度和部署可行性三个维度综合评估: ### 一、DAG拓扑模型的结构特性 1. **动态分支结构** DAG允许并行分支和条件跳转,例如Inception模块通过$1\times1$卷积核实现特征图通道维度压缩,降低后续$3\times3$卷积的计算$$C_{out} = \sum_{i=1}^k (C_{in}^{(i)} \times K_i^2)$$其中$K_i$为各分支卷积核尺寸,通过通道剪枝可减少30%以上参数[^1] 2. **参数复用机制** DAG结构中不同分支可共享权重矩阵,如ResNet残差块的跨层连接$$H(x) = F(x) + x$$通过跳跃连接复用底层特征,避免重复计算 ### 二、计算复杂度评估指标 | 指标 | 传统链式结构 | DAG结构 | 优化方向 | |------|-------------|---------|---------| | FLOPs | $O(n^2)$ | $O(n\log n)$ | 分支剪裁 | | 内存占用 | 连续线性增长 | 动态分配 | 内存复用 | | 推理时延 | 固定流水线 | 条件跳转优化 | 算子融合 | ### 三、部署可行性关键技术 1. **计算图优化** 使用TVM等编译器将DAG转换为静态执行图,通过算子融合降低20-40%推理延迟[^2] ```python # TVM图优化示例 with tvm.transform.PassContext(opt_level=3): lib = relay.build(mod, target="cuda") ``` 2. **硬件感知压缩** 结合NAS(神经架构搜索)自动生成设备适配的DAG结构,在移动端实现<100ms的实时推理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值