比特币(Bitcoin)和 区块链(Blockchain)

比特币和区块链是相辅相成的概念:比特币是区块链的首个成功应用,区块链是比特币的技术基石。它们的区别在于性质(货币 vs. 技术)、功能(支付 vs. 数据记录)和应用范围(单一 vs. 广泛)。未来,随着区块链技术的发展,可能会出现更多创新应用,而比特币可能继续作为数字黄金存在。

1、 比特币(Bitcoin)

比特币是由中本聪(Satoshi Nakamoto)在2008年提出的去中心化数字货币,2009年正式上线。它是一种基于点对点(P2P)网络的加密货币,允许用户在无需银行或政府等中介的情况下进行交易。其核心目标是提供一种无需信任第三方的价值转移方式。
• 性质:数字资产,类似于电子现金。
• 功能:用于支付、投资、价值存储。
• 运行机制:通过区块链记录所有交易,矿工通过工作量证明(Proof of Work)验证并添加新区块,获得比特币奖励。
• 例子:用户A通过比特币钱包向用户B发送1 BTC,交易记录在区块链上,全球节点可验证。

2、 区块链(Blockchain)

区块链是一种分布式账本技术(Distributed Ledger Technology, DLT),用于以安全、透明和不可篡改的方式记录数据。它由一系列按时间顺序连接的区块组成,每个区块包含数据(如交易)、时间戳、前一区块的哈希值等。
• 性质:技术框架和数据结构。
• 功能:提供去中心化的数据存储和验证机制,可用于多种场景。
• 运行机制:通过加密算法(如SHA-256)、共识机制(如工作量证明)和分布式节点网络确保数据完整性和一致性。
• 例子:除了比特币,区块链还用于以太坊的智能合约、供应链追踪、医疗数据管理等。

3、 比特币与区块链的区别

🏆区块链是比特币的技术基础,比特币是区块链的首个成功应用
• 依赖性:比特币依赖区块链来记录和验证交易。没有区块链,比特币无法实现去中心化、安全性和透明性。
• 起源:区块链的概念因比特币而诞生。中本聪在比特币白皮书中首次提出区块链作为解决双花问题(Double Spending)和去中心化信任的方案。
• 推广:比特币的成功使区块链技术广为人知,催生了其他加密货币(如以太坊、瑞波币)和非货币应用(如去中心化金融DeFi、NFT)。

  1. 性质与目标
    ◦ 比特币的目标是提供一种去中心化的货币系统,解决传统金融体系的信任问题(如银行垄断、货币超发)。
    ◦ 区块链是通用的技术框架,目标是提供安全、透明的数据记录方式,适用于任何需要信任和验证的场景。
  2. 功能与用途
    ◦ 比特币主要用于支付和价值存储。例如,用户可以用比特币购买商品或作为投资资产。
    ◦ 区块链的功能更广泛。例如,以太坊区块链支持智能合约,允许开发者构建去中心化应用(DApps);Hyperledger Fabric用于企业级供应链管理。
  3. 技术范围
    ◦ 比特币是区块链的一种具体实现,其区块链专门为记录比特币交易设计,包含特定规则(如工作量证明、10分钟出块时间)。
    ◦ 区块链是通用技术,可定制不同共识机制(如PoS、DPoS)、权限模型(公有链、联盟链、私有链)和其他特性。
  4. 扩展性
    ◦ 比特币的区块链较为单一,专注于交易记录,扩展性有限(例如,每秒处理7笔交易,远低于Visa的数千笔)。
    ◦ 区块链技术可根据需求优化。例如,以太坊支持更复杂的编程,Solana优化了高吞吐量交易。
    4、 比特币与区块链的联系
    尽管存在显著差异,比特币和区块链在技术、理念和生态上紧密相连:
  5. 技术依赖
    ◦ 比特币的每笔交易都记录在区块链上,通过区块的链式结构、哈希算法和工作量证明确保安全。
    ◦ 区块链的去中心化特性使比特币无需中央机构即可运行,节点共同维护账本。
  6. 理念共享
    ◦ 比特币和区块链都强调去中心化、透明性和安全性,旨在消除对中介的依赖。
    ◦ 比特币通过区块链实现了“无需信任”的交易系统,区块链则将这一理念扩展到其他领域。
  7. 生态影响
    ◦ 比特币的成功推动了区块链技术的发展,催生了数千种加密货币和区块链应用。
    ◦ 区块链技术的进步(如Layer 2解决方案、分片技术)反过来提升了比特币的可扩展性和效率,例如闪电网络(Lightning Network)提高了比特币交易速度。
  8. 实际例子
    ◦ 比特币区块链记录了从2009年创世区块至今的所有交易,任何人都可通过区块链浏览器(如Blockchain.com)查看。
    ◦ 区块链技术的应用已扩展到非金融领域,如IBM的Food Trust使用区块链追踪食品供应链,Walmart用区块链确保产品溯源。
  9. 实际案例分析
    ◦ 比特币应用:2021年,萨尔瓦多成为首个将比特币作为法定货币的国家,公民可使用比特币支付日常消费(如咖啡、税款)。这依赖区块链记录每笔交易,确保透明和安全。
    ◦ 区块链应用:以太坊区块链支持去中心化金融(DeFi)协议,如Uniswap,用户可直接交易代币而无需中介。
  10. 技术实现对比
    比特币区块链的简单实现已在上一回答中详细描述(见Create simple Blockchain using Python | GeeksforGeeks)。相比之下,通用区块链实现可能包括:
    ◦ 智能合约支持:如以太坊的Solidity语言,允许编程复杂逻辑。
    ◦ 不同共识机制:如权益证明(Proof of Stake)替代工作量证明,提高能效。
    ◦ 权限管理:如Hyperledger的私有链,仅允许授权节点参与。
  11. 总结与展望
    比特币和区块链是相辅相成的概念:比特币是区块链的首个成功应用,区块链是比特币的技术基石。它们的区别在于性质(货币 vs. 技术)、功能(支付 vs. 数据记录)和应用范围(单一 vs. 广泛)。未来,随着区块链技术的发展,可能会出现更多创新应用,而比特币可能继续作为数字黄金存在。

大模型体系有哪些

• 纯Decoder系: 与Causal Decoder类似,但通常采用更复杂的注意力机制或训练目标。
• 基于Transformer-XL的模型: 通过引入段落级别的循环机制,提高模型对长序列的建模能力。
• 基于稀疏注意力的模型: 通过减少注意力计算量,提高模型的效率。

目前主流的开源模型体系有哪些 — 大模型体系

Prefix Decoder系

Prefix Decoder,也称为非因果解码器,是Encoder-Decoder架构的一种变体。它在处理输入序列时采用双向注意力机制,以充分理解全局上下文;而在生成输出序列时,则采用单向注意力机制,保证生成的连贯性。

• 核心特点:
◦ 输入双向注意力: 模型在生成文本时,可以同时参考上下文中的前文和后文信息,从而更好地理解语境。
◦ 输出单向注意力: 在生成下一个词时,模型仅关注已经生成的文本部分,这有助于保证生成的文本具有连贯性。
• 代表模型及特点:
◦ ChatGLM、ChatGLM2: 由清华大学开发,在中文对话方面表现出色,尤其擅长多轮对话和复杂任务。
◦ U-PalM: 强调通用性,可以在多种任务上取得较好的效果。
• 优势:
◦ 能够更好地捕捉上下文信息,生成更符合人类语言习惯的文本。
◦ 在对话、生成等任务上表现出色。

Causal Decoder系

Causal Decoder,即因果解码器,是一种自回归模型,广泛应用于文本生成任务中。其核心特点在于生成文本时,每个token(词或字符)的生成仅依赖于它之前的token,而无法利用未来的token信息。这种机制确保了生成的文本在时序上保持连贯性。

• 核心特点:
◦ 从左到右的单向注意力: 模型在生成文本时,只能参考已经生成的文本部分,这使得模型在生成过程中具有很强的自回归性。
• 代表模型及特点:
◦ LLaMA-7B: 由Meta AI发布,在参数量较小的情况下表现出强大的性能,是许多后续模型的基础。
◦ LLaMa衍生物: 许多研究者基于LLaMA进行了改进和优化,产生了众多衍生模型。
• 优势:
◦ 生成文本具有很强的连贯性,适合用于文本生成任务。
◦ 模型结构相对简单,易于训练和部署。

Encoder-Decoder系

Encoder-Decoder框架有一个最显著的特征就是它是一个End-to-End学习的算法;本文将以文本-文本的例子作为介绍,这样的模型往往用在机器翻译中,比如将法语翻译成英语。这样的模型也被叫做 Sequence to Sequence learning[1]。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。

• 核心特点:
◦ 输入双向注意力,输出单向注意力: 与Prefix Decoder类似,但Encoder-Decoder通常在编码阶段对整个输入序列进行编码,从而获得更好的全局表示。
• 代表模型及特点:
◦ T5: 谷歌提出的文本到文本转换模型,可以处理多种自然语言处理任务。
◦ Flan-T5: T5的改进版本,在指令跟随方面表现出色。
◦ BART: Bidirectional and Auto-Regressive Transformer,兼具双向和自回归的特性,可以用于多种生成任务。
• 优势:
◦ 能够更好地处理序列到序列的任务,如机器翻译、文本摘要等。
◦ 在处理长文本时具有优势。

其他值得关注的大模型体系

除了上述三大体系,还有以下一些值得关注的模型体系
• 纯Decoder系: 与Causal Decoder类似,但通常采用更复杂的注意力机制或训练目标。
• 基于Transformer-XL的模型: 通过引入段落级别的循环机制,提高模型对长序列的建模能力。
• 基于稀疏注意力的模型: 通过减少注意力计算量,提高模型的效率。

Presto简介

Presto是什么?

Presto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。因此Presto集群的硬件必须满足大内存,万兆网络和高计算能力特点。

Presto特点

Presto的基本概念

  1. Presto 服务进程
    Presto 集群中一共有两种服务器进程: Coordinator服务进程,Worker服务进程。因此Presto集群是Master-Slave的拓扑结构。

    • Coordinator进程: 接受查询请求,解析查询语句,生成查询执行计划,任务调度,Worker管理。
    • Worker进程: 执行被分解后端而查询执行任务–>Task
  2. Presto模型
    • Connector Presto访问不同数据源的驱动程序。每种Connector都实现Presto中标准SPI接口。当年需要使用某种Connector访问特定的数据源时,需要在$PRESTO_HOME/etc/catalog中配置文件:example.properties,并在配置文件中设置一个属性:connector.name,Presto中Connector Manager就是通过该配置属性来决定使用哪一个Connector去访问数据。
    • Catalog 对应某一类数据源,例如hive的数据,或mysql的数据。当你访问Catalog中某个表时,该表的全名总是以Catalog的名字开始。例如 名字为example.schema1.table1的表,指的是表table1位于名schema1下的schema中,而schema1又位于example的Catalog中。
    • Schema 对应mysql中的数据库
    • Table 对应mysql中的表
  3. 硬件架构
    硬件架构
  4. 软件架构
    presto软件架构

    Presto查询步骤

    1)客户端通过Http协议发送一个查询语句给Presto集群的Coordinator
    2) Coordinator街道客户端传递过来的查询语句,会对该查询语句进行解析,生成查询执行计划,并根据查询执行计划一次生成SqlQueryExecution,SqlStageExecution,HttpRemoteTask。Coordinator会根据数据本地行生成对应的HttpRemoteTask。
    3) Coordiantor将每一个Task都分发到其所需要处理的数据所在的Worker上进行执行。这个过程是通过HttpRemoteTask中的HttpClient将创建或者更新Task请求发送给数据所在节点上TaskResource所提供的RestFul接口,TaskResource接收到请求之后最终会在对应的Worker上启动一个SqlTaskExecution对象或者更新对应的SqlTaskExecution对象需要处理的Split。
    4)执行处于上有的Source Stage中的Task,这些Task通过各种Connector从相应的数据源中读取所需要的数据。
    5) 处于下游的会读取上有Stage产生的输出结果,并在该Stage每隔Task所在Worker的内存中进行后续的计算和处理。
    6)Coordinator从分发的Task之后,就会一直持续不断的从Single Stage中的Task获取计算结果,并将计算结果缓存到Buffer中,直到所有的计算结束。
    7)Client从提交查询语句之后,就会不断地从Coordinator中获取本次查询的计算结果,直到获得了所有的计算记过。并不是等到所有的查询结果都产生完毕之后一次全部显示出来,而是每产生一部分,就会显示一部分,直到所有的查询结果都显示完毕。