IT技术精华 http://it.taocms.org/ 聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长 2022-12-06 IT技术精华 114698 网易基于历史查询的 Impala 集群性能优化实践

导读:本文将介绍基于历史查询的 Impala 集群性能优化与实践。

今天的介绍会围绕以下几点展开:
  • 背景介绍

  • 高性能数仓建设

  • HBO 实现方案

  • HBO 优化实践

  • 未来发展计划

分享嘉宾|温正湖 网易数帆 数仓技术负责人

编辑整理|谢小甲

出品平台|DataFunTalk



01

背景介绍

1. 网易数帆

网易数帆是网易旗下数字化转型技术与服务提供商,主要由网易轻舟、网易有数、网易易智和网易易测四部分组成。

2. 网易数帆中的网易有数

网易有数目前支撑了公司内部绝大部分互联网业务,包括音乐、严选、有道、邮箱、传媒等。我们也有很多外部商业化的客户,涵盖了金融、零售、农业、能源、物流等行业领域中的企业。

3.网易有数中 Impala 的定位和应用场景

网易有数大数据平台的基础设施中包含了主流的计算和查询系统,如下图所示。在这之中,Impala 主要是聚焦于交互式计算,主要应用场景包括有数 BI、自助取数和交互式查询等。

  • 有数报表:BI 工程师可以通过敏捷 BI 进行数据分析

  • 自助取数:无需写 SQL,采用拖拽式自助取数

  • 交互式查询:可以通过 SQL 进行灵活的数据分析

02

高性能数仓建设

1. 为何要进行高性能数仓建设

网易大数据团队是国内最早一批将 Impala 作为分析型数仓查询引擎的团队,在长期的使用实践中,积累了丰富的集群运维、问题排查、特性增强和性能优化经验。在这个过程中,我们发现仅使用社区的 Impala 版本是不够的,如果没有进一步的增强和优化,会对业务造成不同程度的影响,主要涉及查询的性能和成功率,我们将业务痛点归类如下:

  • 痛点一:混合型业务负载挑战

一个 Impala 集群可能服务整个大业务,比如网易云音乐拥有很多个部门,每一个部门会使用 Impala 做不同的事情,比如查询报表或进行 Ad-Hoc 查询或进行数据分析亦或仅仅是获取数据。这些不同类型的查询,在同一个 Impala 集群上可能会互相产生影响,比如资源竞争等。会导致部分业务的 SLA 无法保障。

  • 痛点二:复杂/聚合查询性能

对于报表等 BI 类应用,其性能要求相比离线的任务会高很多,用户的耐受程度通常为秒级,一般要求 5 秒以内。但 BI 类应用的有些图表查询的数据量可能较大、数据连接和聚合等操作计算量较多,如此一来,定会比一般的查询性能更差一些。比如图表查询时间需要 10 秒以上,甚至数十秒,用户显然是不可接受的。

  • 痛点三:统计信息缺失导致慢查询

收集统计信息在数据库领域属于一个比较大的技术难点。统计信息涉及到资源预估,以及执行计划的优化等。在 Hadoop 生态中的各查询引擎均没有较好解决统计信息的问题。很多查询引擎未提供统计信息的自动计算能力,就算提供了,统计信息的粒度也不够细。这会导致计算资源预估不准确,执行计划不够合理,比如大表作为build表或大表走broadcast而不是shuffle等,这都会引起查询性能变差。

  • 痛点四:元数据缓存和更新问题

Impala 提供了元数据缓存,通过在集群内部缓存表、列和文件级别元数据来提升查询性能,但同时也带来了一些问题。因为离线数据产出往往通过 Hive 或 Spark,Impala 无法感知到表元数据的变化,进而无法及时更新元数据缓存,导致查询时因使用旧的元数据而报错。

  • 痛点五:存储层波动影响查询性能

Impala 是存算分离的设计架构,典型的使用场景是表元数据在 HMS 中,数据在远端的 HDFS 集群中。若不考虑 Impala 数据和元数据缓存,Impala 查询时,需要跨网络访问 HMS 和 HDFS 集群,容易因为网络、HMS、HDFS NN 或 DN 性能波动导致查询性能变差。如何消除这些波动降低对用户的影响就是一个很值得研究的问题。

  • 痛点六:集群状态周期性腐化

时不时会有业务同学会问为什么这个查询性能越来越差了啊?我什么都没做。其实导致集群状态变差的原因很多,那怕都是执行相同的查询 SQL,但因为随着时间的变化,需要扫描和计算的数据量变多,也可能导致集群性能变差,比如计算资源竞争越来越严重、IO 波动变频繁等。当然,更普遍的情况是由于没有控制新业务/场景的接入,导致集群承接的查询越来越多,集群不堪重负。这需要我们及时识别集群状态恶化,找出问题的原因并尽早优化,以免影响 SLA。

2. 高性能数仓——建设原则

当然,上面所述的多种类型的问题,除了元数据缓存相关外,其他的都是普遍性问题,使用同类型的数仓查询引擎也可能会遇到。为了有效解决包括 Impala 在内的大部分 Hadoop 查询引擎都存在的这些问题我们提出基于 Impala 建设高性能数仓。下面先简单说明高性能数仓的建设原则,再介绍上述问题的解决方案。

建设高性能数仓,最重要的就是要持续增强 Impala 的核心能力,其次是要充分利用历史查询信息。

在组件之间,可以进行上下游组件的垂直优化,例如:有数 BI 等组件通过 SQL 注解,反哺 Impala 进行更智能的查询分析。 

此外,充分利用网易有数全链路大数据平台的优势,也是建设高性能数仓的另一个重要原则。

3. 高性能数仓——业务痛点解决方案 

混合型业务负载上,我们引入了虚拟数仓,对业务进行物理资源隔离。本质上虚拟数仓依旧在一个 Impala 集群上面,不同点在于是对物理资源进行了隔离。但在这种隔离条件下,会引起资源利用率变低的问题,这也是需要进行优化的。

在统计信息缺失导致慢查询的问题上,我们提供了统计信息自动计算的能力。即便拥有统计信息,它的预估依然会存在较大可能不准的问题,所以我们进一步基于历史查询做查询 SQL 的归一化模版,用历史查询的实际内存消耗来提升查询的内部预估精度。

存储性能上,Impala 本身自带有本地缓存的能力,针对该内容, 我们做了进一步的增强。

复杂、聚合查询能力差,解决方式无非通过提升计算能力,在资源有限的情况下,尽量压榨计算性能。比如早期使用的 Ambari 集群部署,一个机器只能部署一个 Impalad,该机器的 CPU、内存资源无法充分利用,我们希望用户端可以部署多个节点。在高版本上,我们希望可以依托 Impala 多线程(MT_DOP)的能力,通过提升计算资源利用率来进一步提升查询效率。

03

HBO 实现方案

1. HBO 信息来源——Impala 管理服务器

HBO 即基于历史查询的优化。

在使用 Impala 的过程中,为了解决无法查看和审计集群中的查询等问题,我们引入了 Impala 管理服务器——Manager 组件。该组件的主要功能,是持久化保存Impala查过的那些 SQL,也会存储这些 SQL 的 Profile 信息,目前我们是将其保存在 MySQL 中。同时,对保存下来的信息,进行解析,实现结构化保存。

其实现原理如下:开启后,Coordinators 会向 Statestore 注册查询信息,例如在Statestore 上会有一个新的 Topic,这个 Topic 里面会保存那些 Coordinators 有哪些查询记录,Manager 会从 Statestore 获取查询信息,包括 Hostname 以及 Query_ID,根据 Hostname 向对应的 Coordinator 发送 Http 请求指定 Query_ID 的查询信息并保存到 MySQL 中。 

2. 历史查询信息解析

如图中所示,管理服务器提供了基础的查询信息,包括排队耗时、内存预估和实际消耗、扫描的数据量等。

此外,还保存了 Profile、Timeline 和 Summary 信息。这样,就可以排查存在性能问题的历史查询。

如左图,我们通过解析 Profile 文件,我们可以看查询的执行计划,分析是否可以进行优化,右图中具体展示了 Scan Node 的详细执行信息,比如下游节点等待数据时间、扫描节点打开 HDFS 文件所耗时间等。

在 Timeline 中可以了解到查询时间消耗,如左上图的时间消耗主要是加载元数据信息,其中 "loaded-tables=1/1" 表示查询里涉及 1 个表,本次加载了 1 个表;“load-requests=28”表示总共向 Catalogd 发送了 28 次 PrioritizeLoad  类型的元数据请求;"catalog-updates=549" 表示总共等了 549 轮的 Catalog 广播更新;“storage-load-time=510879ms”表示加载文件元数据花了 510879ms。整个元数据加载的等待时间是 9m15s。

又如上图的右下子图,查询的时间消耗主要是排队等待上。

Impala 查询的 Summary 总结了查询各个 Fragment 和 Node 的耗时等状况,包括并发执行的节点数、平均耗时和最大耗时、预估和实际处理行数、预估和实际使用内存等。

另外我们会进行 SQL 注解,以及结构化保存。通过注解的方式记录了相当多的信息内容。其中包括物化视图命中状态、报表状态,以及命中物化视图对应的表的改写代价等等。

3. 挖掘历史查询规律

如上图,透过 SQL 注解以及其他历史查询信息,我们可以得知集群状态,了解到具体的任务排队情况,预测内存使用情况。

通过历史查询信息,我们还可以得知查询次数以及查询性能随时间变化的一个规律,得知集群繁忙状态。 

通过在成千上万的 SQL 查询中,分析各类不同 SQL 中的差异,归纳总结出 SQL 模版,用以提升 Impala 查询的内存预估效率,并为其他决策提供支持。同时,在如此多的查询信息中,很容易得知热点表/分区的信息。 

4. HBO 优化实践

Impala 有较为完善的本地缓存体系,包括元数据缓存和 HDFS 文件缓存。但也因为有缓存,所以导致了一些缓存过旧问题,因此出现查询时的元数据错误。数据缓存也同样存在问题,包括重启失效,不命中代价较高等。

基于如上的一些问题,我们针对本地缓存体系进行了优化。

在元数据缓存模块,所做优化包括过滤无效表、合并同类 DDL、暴露同步进程和通过SQL 注解手动指定查询涉及的表信息,以及通过动态白名单驱动表元数据异步加载。

在 DataCache 增强方案上,对于 Parquet 等文件格式,支持独立配置 Footer Cache,因为 HDFS 在读文件时先会读取 Parquet 文件的 Footer Block,之后解析这个 Block 的信息,才可以进一步做过滤等其他操作,再真正去读数据。我们会优先将 Footer 块缓存,另外解决了 Cache Fill 性能退化问题。

我们还解决了 DataCache 持久化问题,以保证重新启动后依旧留存有之前的缓存数据信息。避免了 Impala 进程重启缓存丢失的情况。

5. 基于 HBO 的多表物化视图

物化视图目前主要用于 BI 报表场景,由于 SQL 是批量下发的,若部分 SQL 执行时间长,将会对集群造成不小的压力。BI 报表对实时性能要求较高,其查询规律性强、重复率高、T+1 类型较多,适合用物化视图进行加速。

物化视图的实现方案,目前主要包括两方面,其一是生命周期的管理,这部分是我们纯自研,以独立服务形式部署,元数据存储在 MySQL。通过数据产出消息、DDL 变更日志和文件驱动物化视图表数据更新;其二是 SQL 透明改写,该部分内容目前是以 Calcite 物化视图为基础,进行二次开发增强。因为在调研的过程中,我们发现 Calcite 提供了一个较好的框架,提供了 SQL 自动改写的能力,该能力支持多表 Join。

下面稍微展开讲下 Impala 物化视图自动改写能力。它基于一篇 SQL Server 的SIGMOD 论文来实现。从实现的角度来讲:Impala SQL 会先转变成 Calcite AST 语法树,再到 Rewrite 阶段进行重写,之后又转回为 Impala SQL,由 Impala 继续处理。在集成方面,我们通过一个 Jar包,放入 Coordinator 的 EF 端来实现。在此处更类似一个插件,对于以后版本的升级迭代都更加方便。

由于 Calcite 开源组件本身还存在不少的缺陷,包括 SQL 匹配以及改写效率上的问题,在生产环境中,我们对此进行了进一步的优化,包括添加了 Outer Join、Group By、Limit 等算子和各种 UDF 的支持。

HBO 在物化视图的使用主要是通过分析有数 BI 报表的历史查询记录,确认要获取优化的对象并创建物化视图。

物化视图的创建,又以不同的颗粒区分,比如:慢图表、慢报告、慢模型。创建物化视图一定要考虑投入产出比,如何用最小的资源消耗获取最大的产出,是很重要的问题。

对于一个创建好的物化视图,如何评估这个物化视图的效果?我们通过 Coordinator层面提供了一些 Metrics,它会记录每个物化视图的命中情况,命中之后改写性能消耗,还有物化视图表自身有多少的数据量、占用了多少空间等信息。

通过BI产品的报表数据医生也可以看到 HBO 优化的效果。

6. 基于 HBO 的内存预估优化

Impala 会为查询预分配内存,因此,预分配的内存决定了集群内存的使用效率,若是预估值过大,Impala 会一直占用这部分资源到 SQL 查询结束,这会平白浪费不少资源。对于这部分,我们目前通过 SQL 模板进行优化,从结果上看,我们尽可能地更正了预估的数值,提高了资源利用率。

7. 虚拟数仓与资源动态调配

所谓虚拟数仓就是一个集群中,分了多个组,每个组完成不同的业务,从而进行有效的负载隔离。它拥有两种方式,第一:基于zk的命名空间,Impala 上不同的 Coordinator 注册到不同的 ZK 地址,通过不同zk地址拿到不同 Coordinator 的连接,就会到达不同的虚拟数仓上。

另外一种为同一个 ZK 地址,所有查询都会到达同一组 Coordinator,可以通过 Set Request Group 的方式来将你的查询路由到某个虚拟分组中去,这种方式类似 Snowflake。

虚拟数仓涉及到资源的高效使用和负载均衡,我们的解决方式是混合型虚拟数仓,也就是节点可以在不同的虚拟数仓中,又可以分为两种,一是 Executor 在不同虚拟数仓中,另一种是 Coordinator 注册到 Zookeeper 不同的 Znode 上。

04

未来发展计划

1. Impala 4.1 版本

  • 已完成自研特性合并

  • 添加 Hive 2.x 版本支持

  • 推进上线中

2. 物化视图

  • 支持更多 SQL 语法和算子

  • 提升物化视图创建的自动化程度

  • 与有数 BI 产品进一步融合

3. Impala 内核优化

  • 进一步提升 HBO 内存估算能力

  • 支持更多场景的查询透明重试

  • 支持向量化执行模式

4. 集群管理和运维

  • 支持通过 K8S 进行 Impala 集群部署

  • 资源动态调度和负载均衡

  • 集群健康状态诊断系统

今天的内容就到这里,谢谢大家。


|分享嘉宾|



温正湖

网易数帆 数仓技术负责人

2010年浙大硕士毕业,10+年数据库和存储开发经验。2013年入职网易数据库团队,一直从事关系型数据库和分析型数仓相关工作,专注于数据库领域技术创新、研发和应用。


|往期文章推荐|

搜推广知识图谱NLP智能风控数据科学

决策智能图机器学习AI基础设施数字人

数据治理隐私计算大数据存储大数据计算

多维分大数据基础设施产品经理

|免费直播&资料|

|DataFun新媒体矩阵|

|商务合作|

|关于DataFun|

专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章800+,百万+阅读,15万+精准粉丝


立即购买:淘宝网]]> IT技术精华 2022-12-05 23:12:02 114697 最后7天!免费赠送《如何实现数据安全》电子书

资料简介

电子书《如何实现数据安全》是 DataFun 独家出品的数据安全与隐私计算专题资料。收录了京东/阿里/启明星辰/天空卫士 4 家企业在数据治理与数据安全方面的实践经验,以及数据产品经理关于数据安全工具建设和治理的思考。

免费领取方式

扫描/识别下方二维码,回复数据安全 

活动截止日期2022年12月11日

资料目录

企业数据安全中的数据脱敏

随着各国数据安全保护法的颁布,数据安全已经成为大数据应用行业的关键课题。如何在不影响数据使用的前提下,保护用户数据隐私,进行大数据分析和挖掘是相关从业者的一大难题,而“数据脱敏”正在成为解决这一行业性难题的关键技术。

京东大数据安全与分布式权限体系的探索与实践

京东具有超过6000多数据分析人员及100多万数据表,这些主体和资源间有数以亿万级的权限策略,如何实现这些权限策略的微秒级响应,并确保数据资源合规、高效访问,京东大数据架构师李冬峰老师将为我们分享《京东大数据安全与分布式权限体系的探索与实践》。

数据安全工具建设经验分享

近年来,在信息技术支撑下,数据经济驱动着全球各经济体的经济总量不断增加,“数据安全”也已上升到我国国家安全战略高度。政府部门和企业持续加大在数据治理、数据存储、数据保护、数据加密等方面的重视程度和投资力度。今天我将基于在业务场景中遇到的数据安全治理问题,帮助大家理解“数据安全”概念,并向大家分享在数据安全治理过程中所采用的工具手段和思维思路。

数据安全治理体系化实践思路

主要分享启明星辰在整个数据安全治理过程当中的一些实践经验。

数据法在企业如何落地

数据安全立法2018年9月于十三届全国人大常委会列入立法规划。经过三次审议,在2021年6月10日,十三届全国人大常委会第二十九次会议正式表决通过,并于2021年9月1日起施行。从法律角度来说,国家对于数据安全越来越重视,作为企业该如何针对数据安全法进行数据安全治理的规划,最终进行对应的技术落地?本文将分享数据法在企业的落地。

数字水印在数据泄露溯源中的应用与挑战

随着全球数字经济的高速发展,中国的数字经济规模达到了5.4万亿美元,位列全球第二。据IDC预测,2025年中国将成为全球最大的一个数据圈。在数据量高速增长和数字经济持续发展的背景下,数据安全领域受到越来越多的挑战和重视。其中,数据泄露正是焦点问题之一。今天和大家分享的议题是数字水印在数据泄露溯源中的应用和挑战。


立即购买:淘宝网]]>
IT技术精华 2022-12-05 23:12:00
114691 Kubuntu、Ubuntu、CentOS等Linux操作系统常用命令大全 立即购买:淘宝网]]> IT技术精华 2022-12-05 21:12:02 114690 C++ 首超 Java,与 Python、C 共角逐年度最佳编程语言奖!

整理 | 苏宓
出品 | CSDN(ID:CSDNnews)

最新的 TIOBE 12 月编程语言已发布,先来预测一波今年的年度编程语言大奖究竟会花落谁家吧?


C++ 首超 Java


和上个月相比,12 月榜单中最大的变化莫过于 C++ 以 0.12% 微弱的优势,凭借 11.94% 的市场份额首次超过了 11.82% 的 Java。

其实在今年 6 月,TIOBE CEO Paul Jansen 曾做出预测,「C++ 将会是下一个超越 Java 的语言。具有高性能的高级编程是 C++ 表现出色的关键原因。C++ 语言每 3 年修订一次,此类修订包含开创性的新功能,使语言与 C# 和 Java 相提并论,但没有垃圾收集器的性能损失。在最新版本 C++20 的推动下,C++ 将冲击 TIOBE 榜单 TOP 3 ,成为强有力竞争者。

如今短短几个月后,C++ 如预料的那番,站到了第三的位置上,这也是自 2001年 TIOBE 指数榜单发布以来,Java 首次跌出 Top3


2022 年度编程语言,将花落谁家?


2022年正式开启倒计时1个月,过去一年中,Python 的稳定输出有目共睹,它一直保持着高速的增长趋势,如今其以 3.76% 的涨幅占据 16.66% 的市场份额,这也让它成为年度编程语言的最佳候选者之一。

除此之外,根据 TIOBE 官方预测,C 和 C++ 也是 2022 年度编程语言的候选者。虽然 Python 和 C 已经多次获得这一奖项,但 C++ 上一次获得年度编程语言还是在 2003 年。今年极具潜力的C++能否摘得头筹,我们还需要静待下个月的榜单。


其他编程语言排名


在更多的编程语言中,我们还看到 Kotlin 和 Julia 正越来越接近 Top 20 名。

以下为 Top 20-50 的编程语言榜单:

第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):

  • ABC, ActionScript, Alice, Apex, APL, AutoLISP, Awk, B4X, C shell, CL (OS/400), CLIPS, Clojure, Common Lisp, Crystal, Elixir, Emacs Lisp, Forth, Hack, Icon, Io, J#, JScript, Korn shell, Ladder Logic, LPC, Modula-2, MQL5, MUMPS, NATURAL, Occam, OpenCL, OpenEdge ABL, PL/I, Q, Racket, Raku, Ring, RPG, S, Smalltalk, Solidity, SPARK, Stata, Tcl, VBScript, Verilog, VHDL, WebAssembly, X++, Xojo

Top 10 编程语言 TIOBE 指数走势(2002-2022)



历史排名(1987-2022)


注:以下排名位次取决于 12 个月的平均值。


编程语言“名人榜”(2003-2021)


【说明】:

TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

详细榜单信息可参考 TIOBE 官网:https://www.tiobe.com/tiobe-index

AMD 回击黄仁勋:摩尔定律没死;英国 22% 的技术人员年龄 50 岁或以上;PyTorch 2.0 发布|极客头条
挑战 Google 搜索?OpenAI 发布最强 AI 对话系统 ChatGPT
☞AIGC , 超级热点 or 程序员创富新起点?


立即购买:淘宝网]]>
IT技术精华 2022-12-05 19:12:23
114689 如何让 AI 像人类一样存有大量记忆?

【CSDN 编者按】专家通过数据研究,睡眠可防止 AI 失忆。

译者 | 刘春霖       责编 | 张红月
出品 | CSDN(ID:CSDNnews)

神经网络可以在很多任务上有超越人类的表现,但如果要求一个 AI 系统吸收新的记忆,它们可能会突然忘记之前所学的内容。

现在,一项新的研究揭示了神经网络经历睡眠阶段,并帮助预防这种健忘症的新方法。

人工神经网络面临的一个主要挑战是“灾难性遗忘”(catastrophic forgetting)。当它们去学习一项新任务时,会有一种不幸的倾向,即突然完全忘记他们以前学到的东西。本质上,新学到的知识会覆盖过去的数据。

相比之下,人类的大脑能够终身学习新任务,而不会影响其执行先前记忆的能力。在早有的研究表明,当一轮又一轮的学习穿插着睡眠时,人脑的学习效果最好。睡眠显然有助于将近期经历融入长期记忆中。

“重组记忆实际上可能是生物体需要经历睡眠阶段的主要原因之一,”加州大学圣地亚哥分校的计算神经科学家 Erik Delanois 说道。

那 AI 是否可以睡觉呢?此前的一些研究试图通过让 AI 模拟睡眠来解决灾难性遗忘。例如,当神经网络学习一项新任务时,一种被称为交错训练的策略会同时向机器提供它们之前学习过的旧数据,以帮助它们保留过去的知识。这种方法之前被认为是在模仿大脑在睡眠时的工作方式,不断重播旧的记忆。

然而,科学家们曾假设交错训练需要在神经网络每次想要学习新事物时,为其提供最初用于学习旧技能的所有数据。这不仅需要大量的时间和数据,而且似乎也不是真正的大脑在真正的睡眠中所做的事情——生物既不会保留学习旧任务所需的所有数据,睡觉时也没有时间重播所有这些内容。

在一项新研究中,研究人员分析了灾难性遗忘背后的机制,以及睡眠对于预防这种遗忘中的效果。研究人员没有使用传统的神经网络,而是使用了一种更接近模拟人脑的“脉冲神经网络”。

在人工神经网络中,被称为神经元的组件被输入数据,并共同解决一个问题,例如识别人脸。神经网络反复调整突触(神经元之间的联系),并观察由此产生的行为模式是否能更好地找到解决方案。

随着时间的推移(不断训练),网络会发现哪些模式最适合计算结果。最后,它采用这些模式作为默认模式,这被认为是部分模仿了人脑的学习过程。

此图代表了抽象突触空间中的记忆及其在睡眠和不睡眠时的演化

在大多数人工神经网络中,神经元的输出是随着输入的变化而不断变化的数字。这大致类似于生物神经元在一段时间内可能发出的信号数量。

相比之下,在脉冲神经网络中,一个神经元只有在给定数量的输入信号后,才会产生输出信号,这一过程是对真正生物神经元行为的真实再现。由于脉冲神经网络很少发射脉冲,因此它们要比典型的人工神经网络传输的数据更少,原则上也需要更少的电力和通信带宽。

正如预期的那样,当脉冲神经网络学会在网格中发现水平粒子对,然后被训练去寻找网格中垂直粒子对时,它显示出灾难性的遗忘。然而,在之后的几轮学习后,研究人员让脉冲神经网络经过一段时间间隔,参与学习第一个任务的神经元集合被重新激活。这更接近神经科学家目前认为的睡眠过程。

简单来说就是,脉冲神经网络使得之前学习过的记忆痕迹能够在离线处理睡眠期间自动重新激活,并在不受干扰的情况下修改突触权重。

该研究使用带有强化学习的多层脉冲神经网络来探索将新任务训练周期与类睡眠自主活动周期交错,是否可以避免灾难性遗忘。值得注意的是,该研究表明,可以通过周期性地中断新任务中的强化学习(类似睡眠阶段的新任务)来预防灾难性遗忘。

捷克科学院计算机科学研究所的计算神经科学家 Pavel Sanda 表示“有趣的是,我们没有明确地存储与早期记忆相关的数据,以便在睡眠期间可以人为地重放它们,以防止遗忘。”

科学家们发现,他们的策略有助于防止灾难性的遗忘。在经历了类似睡眠的阶段后,脉冲神经网络能够执行这两项任务。他们认为,此项策略有助于保存与新旧任务相关的突触模式。

“我们的工作展现了开发受生物学启发的解决方案的实用性”Delanois 说道。

研究人员指出,他们的发现不仅限于脉冲神经网络。Sanda 表示,即将开展的工作表明,类似睡眠的阶段可以帮助“克服标准人工神经网络中的灾难性遗忘”。

该研究于 11 月 18 日发表在《 PLOS Computational Biology 》杂志上。

参考链接:https://spectrum.ieee.org/catastrophic-forgetting-deep-learning

真程序猿?马斯克演示猴子用“意念”打字,更称:6个月后植入人体
挑战 Google 搜索?OpenAI 发布最强 AI 对话系统 ChatGPT
☞AIGC , 超级热点 or 程序员创富新起点?


立即购买:淘宝网]]>
IT技术精华 2022-12-05 19:12:21
114688 沉痛悼念织梦创始人林学先生,他为网站开源系统打开了大门!

整理 | 屠敏
出品 | CSDN(ID:CSDNnews)

12 月 4 日,突闻噩耗,国内流行的内容管理系统(CMS) DEDEBIZ 网站发布讣告,DedeCMS 创始人林学先生(IT 柏拉图)因罹患癌症于 2022 年 12 月 3 日下午逝世,终年 43 岁。


林学先生生平与 DedeCMS


林学先生生于 1979 年 10 月 10 日,2002 年毕业于广东茂名学院化工系。相比真名,他的网名“IT 柏拉图”以及其在 2004 年 8 月自主开发的内容管理程序 DedeCMS 更为众人所熟知。

与此同时,他也是 CSDN 的资深博主 ddboy(https://blog.csdn.net/ddboy),于 2002 年加入 CSDN,拥有 20 年的码龄。

彼时,之所以从化工专业半路出家走上 IT 编程领域,在 2007 年接受 CSDN 记者采访时,林学表示,「在学校的时候,学习 PHP 或其它与网页设计有关东西的风气比较浓。我还未毕业就在中山这边一个小网络公司里工作,开始是用 ASP 来开发网站,后转用 PHP,这也导致我本身开发东西的时候,可能会按照自己习惯的模式」。

毕业两年后,其开发的基于 PHP+MySQL 的 DedeCMS(中文名为织梦内容管理系统第一个版本也是无心插柳,当时“只是为了提供给做 SEO 的朋友,未曾想一步一步发展到今天”,林学在采访时分享道。

当 2007 年谈及对以优秀的性能、卓越的功能而深受站长喜爱的内容管理系统 DedeCMS 有什么样的愿景时,林学曾坚定地说道,「让全世界都看到中国开源 CMS」。


从共享精神看 CMS


在当时开源并未成为 IT 行业主流文化以及方式之际,林学先生大力推动开源的 DedeCMS 发展,让很多网站从中受益,DedeCMS 逐步成为中小型门户网站建设解决方案。

作为开源的贡献者、推动者,林学先生坚持共享精神,也正如其人生格言那番「行成于思,行胜于言」,“这对于我而言,不仅仅是个格言,更是我个人工作态度的一个真实写照,很多东西我并不喜欢太过自我吹嘘,而是用心去做,其它的东西让用户去评论吧。”

在推动 DedeCMS 发展的早期,林学在《从共享精神看国内主流的 CMS》(https://blog.csdn.net/ddboy/article/details/3773122)一文中如是写道:

「在以往,当只有 DedeCms 开源,其它都不开源的时候,一些恶意评论都在攻击说 Dede 假开源,不过当大家都开源后,这种思想就不再存在了,我们讨论的是系统的开放性,不是讨论什么 GPL 协议,因为这几个 CMS 都是不遵守 GPL 协议的,都有中国特色的加上了“非商业用途免费”这个说明,当然用“盗版”的中国人是相当的多的。所以讨论什么 GPL、假开源纯属废话,要讨论就讨论资源共享方面的问题。

DedeCms 具有如下特点:

1、标签开放性

DedeCms 的标签其本是开放的(除了直接涉及 SQL 操作的 loop、sql 标签外,不过实际上会用这两个标签的相对都有一点“专业”了),这里说的开放是标准统一,把模共享给他人的时候不需要过多的修改;

2、模板开放性

DedeCms 的模板基本上都是以文件形式存放的,这样的好处是极为有利于共享,单论模板共享数量,也无可否认,DedeCms 是最多的,这个在他们论坛的模板风格区就能体现出来。

3、文档共享性

DedeCmsV5.3之后,专门开设了一个文档中心的网站,即是 http://help.dedecms.com ,而且是允许用户在里面投稿,这是国内 CMS 第一次出现的这种性质的文档中心。

4、插件与其它共享

随着时间的发展,用户对 DedeCms 已经驾轻就熟了,V5.3 刚发布不久,就不少用户懂得开发相关模块和小插件,而且新版本不单对插件实现模块化,还对标签、内容模型、采集模型等实现共享,也只有 DedeCms 论坛里才能出现“谁给我一个XXX规则”之类的“叫卖声”。

从上述几点来说,DedeCms 已经初步具备了开源共享精神的各种特性,当然不遵守 GPL 这条,这在国内是没法的事,毕竟国内并没有像国外那种开源基金去支持一个东西的发展,所以需要生存,就肯定要针对商业应用收费。」


沉痛悼念林学先生


正是需要生存,所以也需要有商业化的存在。然而,那时的开源与商业化,在很多使用了免费软件的用户看来,是自相矛盾的两个对立面,这也造成了林学先生在生存与开源之间存在种种无奈。

这其中的困难,也是在当 2007 年年底 DeDeCMS 从个人维护的项目发展为一家公司,且时隔两年之后的 2009 年,林学先生无奈选择从这家公司离职时才向外界袒露心声:

最后,不管后来的 DedeCMS 收费与否,毋庸置疑的是,最初林学先生推动 DedeCMS 且想要让「让全世界都看到中国开源 CMS」的心愿依然在持续影响当前的 IT 产业。据 DEDEBIZ 网站公告显示,“DedeCMS 至今仍有数十万企业、个人站长使用,在使用者中不免有一些互联网巨头,其中 bilibili 更是基于 DedeCMS 白手起家”。

但有些遗憾的是,“林学先生一直秉承着开源免费的理念,通过技术改变了中国,却从未因 DedeCMS 过上体面的生活”,DEDEBIZ 表示,”在此我们缅怀林学先生为中国开源作出的贡献,其遗志必将传承下去,为社会创造更多价值。“

不少网友在”柏拉图“的微博底下留言哀悼:

也有不少曾经 DedeCMS 的用户感谢林学先生为行业做出的贡献:

而在生命的最后,林学先生也一直在与病魔做斗争。

沉痛悼念林学先生,一路走好。

参考:

https://blog.csdn.net/ddboy/article/details/3773122

http://www.360doc.com/content/16/0823/14/15118019_585329542.shtml

https://weibo.com/itprato?profile_ftype=1&is_all=1#_0


立即购买:淘宝网]]>
IT技术精华 2022-12-05 19:12:20