01 20 个技术领域持续开源
截止 2020 年底,在 GitHub/Gitee 百度官方组织下已经围绕着安全、监控、知识图谱、网络与接入、视觉、量子计算、开发框架等 20 个技术领域开源了 86 个项目,其中自然语言处理、开发框架与前端领域的开源项目数占比超过 50%。
百度开源 GitHub 组织:https://github.com/baidu
百度开源 Gitee 组织:https://gitee.com/baidu
02 飞桨(PaddlePaddle)、Apollo 已快速成长为行业领先者
【Github 项目地址:https://github.com/paddlepaddle】
【Gitee 项目地址:https://gitee.com/paddlepaddle】
飞桨 (PaddlePaddle) 以百度多年的深度学习技术研究和业务应用为基础,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体。目前,飞桨累计开发者 265 万,服务企业超过 10 万家,基于飞桨开源深度学习平台产生了 34 万 + 个模型。飞桨助力开发者快速实现 AI 想法,快速上线 AI 业务。帮助越来越多的行业完成 AI 赋能,实现产业智能化升级。
飞桨生态社区建设:GitHub 的所有仓库(repo)累计 star 数量 55000+(2020 年新增 30000+),累计 commits 超过 16 万次,开源贡献者超过 5000+,飞桨开发者技术专家(PPDE)97 位,飞桨特别兴趣小组(PPSIG) 7 个。
2020 年发版情况如下:
【 1.7.0】版本对框架功能层面进行了重点增强,预测部署能力全面提升,分布式训练发布 PLSC 支持超大规模分类,并对参数服务器模式进行优化整合;
【 1.8.0】版本深度优化了命令式编程模式(动态图)的功能、性能和体验,框架基础功能也进一步强化;全新发布量桨 Paddle Quantum 量子机器学习框架;
【2.0-RC1】飞桨核心框架重要升级,先后发布了 2.0-alpha、2.0-beta、2.0-rc0、2.0-rc1 共计 4 个版本。2.0 版本为开发者提供了 “编程一致、动静统一” 的全新开发体验,动态图功能走向成熟、API 进行了全面升级,同时动静统一的编程体验将为深度概率编程、量子机器学习等前沿学术研究提供更好的支持。
12 月 20 日,在 WAVE SUMMIT+2020 深度学习开发者峰会上,飞桨全新发布 PaddleHelix 螺旋桨生物计算平台;推出业内首个通用异构参数服务器架构;开源算法库全面升级,官方算法数量从 140 + 扩展至 200+;飞桨硬件生态伙伴达到 20 家,适配或者正在适配的芯片 / IP 型号 29 种。飞桨提供了开源深度学习平台自主可控的坚实底座,加速 AI 产业生态构建。
在企业应用方面,飞桨已经在产业界广泛应用,合作伙伴包括但不限于:中国电信、联通、工行、小米、OPPO、58 同城、国家电网、昆仑数智,宁德时代等(排名不分先后)
【Github 项目地址:https://github.com/ApolloAuto】
【Gitee 项目地址:https://gitee.com/ApolloAuto】
Apollo 开放平台是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 Apollo 平台是百度重点打造的 AI 开放平台之一,包括有多个算法模块:定位、感知、车辆规划控制。
自 2017 年开源以来,发布了 9 个版本,从简单循迹出发,逐步增加支持高速场景自动驾驶、城市场景自动驾驶。随着技术的发展,平台里也增加了学术前沿领域的智能新模型,同时平台系统以及相关基础软件也进行了整体性的升级。Apollo 平台今年发布了 6.0 版本,主要功能包含:
智能新模型 :基于语义地图的规划模仿学习模型,模仿学习老司机,提升动态避障能力;
安全无人化:支持远程平行驾驶接口,监测通信设备状态,压缩传输视频和音频信号,保持稳定的通讯连接,接受远程操作指令,下发规划控制指令操作车辆;音频检测紧急车辆,通过多声道麦克风捕捉音频,判断紧急车辆方位,判断紧急车辆靠近或远离;
系统升级 Bazel、Python、C++、GCC、CUDA、PCL、Pytorch、TensorRT 等基础软件;
开放新服务,整合 Dreamland 和 Fuel,统一服务入口;整合离散服务,由单个服务到联动服务;
V2X 车路协同,车路协同升级,首发对象级别的车端感知与路侧感知融合特性。
2020 年,Apollo 开发者社区已拥有来自全球 97 个国家,55000 多名开发者,涵盖 221 多所高校,308 多家科技公司,57 多家车企。目前,社区累计发布内容超过 1200 篇,其中开发者贡献内容 60 余篇。此外,面向自动驾驶行业开发者的研发产品——Apollo 自动驾驶开发套件(Apollo D-KIT),已为 100 多家高校、科研机构及行业伙伴提供研发支持。作为全球最大自动驾驶开放平台,Apollo 拥有生态合作伙伴达 210 家,几乎囊括全球主流汽车制造商、一级零部件供应商、芯片公司、传感器公司、交通集成商、出行企业等,覆盖从硬件到软件的完整产业链。
截止目前,Apollo 测试车队规模已达 500 辆级别,获得专利数 2900 件,测试里程总计超过 700 万公里,获得测试牌照总计近 200 张,其中载人测试牌超过 120 张。同时,百度还将北京市自动驾驶测试管理联席小组发布的首批 T4 级别自动驾驶测试牌照收入囊中,成为中国第一家、也是唯一获得此级别牌照的企业。2020 年 3 月份,全球知名调研机构 NR,将 Apollo 列为全球自动驾驶领域四大 “领导者” 之一。
Apollo 依靠合作共赢的开放平台,带动全球的开发者、汽车制造商、百余家高校,互惠互利,造福人类发展。
03 累计向 4 大基金会捐赠了九个开源项目
项目地址:https://github.com/xuperchain/
2019 年 5 月,百度基于持续多年在区块链技术与应用领域的研究与探索,推出了完全自主知识产权的区块链底层技术——超级链(XuperChain)并正式开源,现已成为国内最具影响力的区块链开源技术之一,其具有四大核心技术亮点,如下:
高度易用:多语言智能合约支持、多语言 sdk + 合约模板;详解全面文档中心;IDE、浏览器、可视化管理工具等;7X24H 技术客服 + 繁荣生态支持;
超高性能:超级节点技术;链内并行技术;存储、计算可水平扩展;合约 ACL 背书验签技术;
高可扩展:动态内核技术保证架构上高可扩展;多引擎架构技术保证核心流程和技术选型可按场景订制;超级节点技术保证存储和计算上高可扩展;
高可用性:超级链开放网络多节点长期运行验证,稳定性>=99.99%;14w 节点广告聚屏案例生产环境检验;
2020 年 9 月,超级链成为首个捐赠给开放原子开源基金会的项目。
2020 年 10 月,开放原子开源基金会宣布成立国内首个区块链开源工作组,工作组由百度发起,与浪潮、招商银行等知名企业共同成立,在开放原子开源基金会指导下进行区块链相关事务的专项管理。
2020 年 XuperChain 项目累计获得 Star 数 1266 个,Fork 287 次,代码提交次 660 次,贡献者 37 人,全球开发者使用数量 10,000 + 次,外部代码贡献 20%+,版本迭代 12 次,技术专利发布 425 篇,社群人数达 10,000 人。在架构、功能、性能上也有较大的提升:
架构:内核技术 XuperCore 独立发展,依托动态内核技术,实现广域场景适用;
功能:落地了国密算法、合约事件、EVM 虚拟机等实用功能;持续完善联盟场景支持,完成了 XPoA 共识、静态 P2P 网络、平行链群组技术等技术的落地;
易用性:智能合约语言支持 JAVA、Solidity 等语言;智能合约 SDK 支持跨链、可信计算等高级功能;
同时今年完成了适配 BSN 区块链网络服务底层,还将全新升级的百度超级链内核 XuperCore 作为区块链开源工作组的内核技术。为信浦存证平台、链上巨鹿政务服务、百度文库、百信银行、浦发银行、北京互联网法院等 20 余家企业机构及平台,提供底层技术服务与区块链解决方案。
项目地址:https://echarts.apache.org/
2020 年,百度继续深度参与 Apache ECharts 的项目开发及社区建设工作,保持着稳定的发版节奏,并在年底发布了全新重量级的 Apache ECharts 5,在最新版本中,实现了五大模块、十五项特性的全面升级。此外,经过两年时间 Apache Way 的学习和开源社区的建设,ECharts 于 2020 年 12 月正式从 Apache 软件基金会毕业,成为顶级 Apache 项目,也是首个百度捐赠到 Apache 基金会中毕业的项目。
在最新大版本 Apache ECharts 5 中,重点围绕图表的叙事能力,在动态叙事、视觉设计、交互能力、开发体验以及可访问性等方面做了专项优化升级,帮助开发者更方便地创建具有强大叙事能力的图表:
动态叙事:叙事功能提供了更简便的方式以展现数据在时间维度上的发展变化;
视觉设计:根据可视化理论优化设计,提高信息墨水比,让读者更专注在重要的数据信息;
交互能力:多状态设计让读者参与交互,交互的丰富性和流畅性使得用户更深刻理解数据之间的关联;
开发体验:默认更强大更好用,让开发者无需为性能、数据处理等问题分心,更高效地专注在传递信息
可访问性:无障碍设计让视觉障碍人士能够平等了解图表传递的信息。
随着产品不断迭代,以及社区发展上的发力,给 Apache ECharts 带来了开发者的持续增长。在 npm 上,Apache ECharts 的每周下载量约为 25 万,较去年同期增长 40%。项目在 Github 的关注数(star)增加到 4.4 万,较去年同期增长 15%。
为了使产品能够可持续地健康发展,团队积极引导开发者参与到社区贡献中,通过优化开发文档、建立新手任务、悉心指导 pull request 等方式,降低开发者参与开源共建的门槛,让更多人能够加入到社区贡献中。在 2020 年,项目新发展 5 个 Apache Committer,2 个 Apache PPMC。在 Github 的累计贡献者数量超过了百位。
在 ApacheCon 2020 上,百度资深研发工程师出席分享了 Apache ECharts 在过去的一年中在产品和社区建设方面取得的进展,也让更多海外的开发者了解到 ECharts。在许多国外社交平台上,越来越多的用户自发地对 ECharts 发表积极评价并向其他人推荐。产品本身的质量成为口碑营销的有力途径。
在 2021 年,Apache ECharts 作为 Apache 软件基金会的顶级项目,必将以更为成熟、开放的姿态,来迎接新的挑战和机遇。
项目地址:https://github.com/apache/incubator-doris
Apache Doris(原百度 Palo )是一款基于大规模并行处理技术的分布式 SQL 数据仓库,由百度在 2017 年开源,2018 年进入 Apache 孵化器。专门应对高并发、低延时的 Pb 级实时数据仓库使用场景,全面兼容 MySQL 协议,可以毫秒级针对亿万级数据进行及时的多维分析透视和业务探查。
在 2020 年,Star 数增长 668,Contributor 增长 65,在 Apache 社区保持着平均每个季度发布一个大版本,每周发布一个 3 位版本。4 月发布 0.12.0 版本、11 月发布 0.13.0 版本。今年新增加 14 个新 feature:
全新的存储格式 SegmentV2;
Spark on Doris;
明细模型上的物化视图功能;
支持 ORC 格式数据的导入;
动态分区;
差集、交集、Grouping Set;
大查询落盘;
物化视图支持 bitmap_union, hll_union 和 count;
Spark 导入;
RoutineLoad 和 StreamLoad 支持新的数据格式:Json;
修改 RoutineLoad;
Logstash 插件;
支持查询结果输出到文件;
在 delete 语句中支持谓词。
目前,Doris 用户涵盖字节跳动、美团、小米、京东、微博、快手、贝壳找房、爱奇艺等 100 + 行业优秀企业。
项目地址:https://teaclave.apache.org/
Apache Teaclave (incubating)是全球首个通用安全计算平台,为隐私数据计算赋能,让安全计算更简单。Teaclave 基于硬件安全能力(Intel SGX),确保敏感数据在可信域外和离岸场景下安全可控的流通和处理,无需担心隐私数据泄露和滥用。同时,Teaclave 还支持多方参与的联合计算,打破企业和组织中的数据孤岛。Teaclave 于 2019 年 8 月进入 Apache 基金会孵化器,2020 年 10 月,Teaclave 社区正式通过并发布了 0.1.0 版。
2020 年发布首个 Apache Incubator 版本 0.1.0,启动了对项目的重构计划,同时对整个项目代码 和交互的梳理,0.1.0 的发布是项目从诞生到成长的第一步。
在以下几个方面做了代码重构和功能特性完善:提供了更完善的函数和数据注册执行,重新设计的函数的 开发流程,支持兼容 protobuf 的 RPC 定义接口,支持分布式执行服务,支持自定义执行 器,提供更佳完善的文档,重新设计了错误处理机制,完善测试框架和测试用例,实现了更 多的内置函数,支持了更加灵活的远程证实方式(DCAP),重新设计 RPC 方式等等。
更详细的修改可以看版本发布文档。这次发布一共修改了 876 个源文件,新增了 78,237 行代码,删除了 54,846 行代码,并且在 GitHub issue 上解决了来自社区的 102 个问题。详情可见 0.1.0 发布文档:
https://teaclave.apache.org/blog/2020-10-28-announcing-teaclave-0-1-0-cn/
截止目前,Github 上 Teaclave 项目 star 数 1,205 个,新增一名 commiter,累计支持厂内多个团队业务以及数十家外部开源项目,建立了健康、可持续的开源社区和 Teaclave 安全计算生态。
项目地址:https://github.com/apache/incubator-brpc
Apache brpc(incubating)是一个用来构建高可用和高性能后台服务的企业品质的 RPC 开发框架,在百度内部应用的非常广泛,在多个核心业务上都有应用。
自 2017 年从百度对外开源,2018 年成为 Apache 开源基金会孵化项目后,越来越多的公司在使用它,包括爱奇艺,B 站,小米,蚂蚁等。同时,也有更多的同学对这个项目作出贡献。是百度内最常使用的工业级 RPC 框架, 有 1,000,000 + 个实例 (不包含 client) 和上千种多种服务。
"brpc" 的含义是 "better RPC"。其特性:
囊括百度内部所有 RPC 协议,支持多种第三方协议;
模块化设计,层次清晰,很容易添加自定义协议;
全面的服务发现、负载均衡、组合访问支持;
可视化的内置服务和调试工具;
性能上领跑目前其他所有 RPC 产品。
项目今年新增一名 commiter,累计 star 数 11,000 个,fork2,700 次,发布了 0.9.7 新版本:内置服务支持火焰图、增加 gdb bthread 堆栈查看工具、适配 arm64、支持 redis 协议 server、备份请求支持熔断器。、
项目地址:https://github.com/bfenetworks/bfe
BFE(Beyond Front End),是现代的七层负载均衡和流量转发引擎。BFE 目前已接入百度大部分流量,每日转发请求接近 1 万亿,峰值 QPS 超过 1000 万。BFE 于 2019 年 7 月正式开源,并获得了广泛的关注。
2020 年 6 月 24 日,BFE 开源项目被 CNCF (Cloud Native Computing Foundation,云原生计算基金会)正式接纳为 Sandbox Project。这是百度第一个被 CNCF 接纳的开源项目,也是在网络方向上中国第一个被 CNCF 接纳的开源项目。
2020 年 BFE 完成 7 次版本发布。截止 12 月 29 日,获得 4,213 个 Stars,较 2019 年 12 月约增长 40%。新增 Contributer50 位。增加多个新的 feature,其中重点功能包括:
Mac 和 Windows 环境编译支持;
用户限流功能;
客户端认证, JWT 认证以及对接第三方认证服务;
请求的 tagging 功能;
分布式 tracing;
DoH(DNS over HTTPS)请求和 EDNS;
TCP 连接的 Proxy;
gRPC over HTTP/2。
项目地址:https://github.com/baetyl
Baetyl 是 Linux Foundation Edge 旗下的边缘计算项目,旨在将云计算能力拓展至用户现场。 提供临时离线、低延时的计算服务,包括设备接入、消息路由、数据遥传、函数计算、视频采集、AI 推断、状态上报、配置下发等功能。
在 2019 年 9 月 23 日,百度宣布将 BAETYL 捐赠给 Linux 基金会旗下社区,是首个 LF Edge 捐赠项目。BAETYL 名字源自希腊语βαίτυλος (baítulos),字面意思是 House of God,古代指赋予万物生命的圣石。借此意希望该项目能成为赋予万物智能的基石,让 ABC Anywhere。
今年 6 月 Baetyl 正式发布 2.0 版本,Baetyl v2 提供了一个全新的边云融合平台,采用云端管理、边缘运行的方案,分成边缘计算框架和云端管理套件两部分,支持多种部署方式。可在云端管理所有资源,比如节点、应用、配置等,自动部署应用到边缘节点,满足各种边缘计算场景,特别适合新兴的强边缘设备,比如 AI 一体机、5G 路测盒子等。v2 和 v1 版本的主要区别如下:
边缘和云端框架全部向云原生演化,已支持运行在 K8S 或 K3S 之上;
引入声明式的设计,通过影子(Report/Desire)实现端云同步(OTA);
边缘框架暂不支持进程(native)运行模式,由于运行在 K3S 上,所以整体的资源开销会有增加;
边缘框架将来会支持边缘节点集群。
项目地址:https://gerrit.akraino.org/r/
IME,Intelligent Mobile Edge,智能移动边缘,立足 5G,以 AI + 视频为抓手,借助软硬一体的边缘计算平台能力,构建行业解决方案底座,屏蔽产业转型期的典型问题,通过开放合作和协同创新,支撑企业快速构建各种行业的解决方案,助力产业快速智能化转型。
IME 项目源自百度 5G 移动边缘产品,于 2019 年 5 月在 Github 开源,并于 2019 年 9 月贡献给 LF Edge Akraino 社区,成为国内首批进入 LF Edge Akraino 并孵化的边缘计算平台之一。
目前,IME 已经进入 LF Edge Akraino 第三个正式的版本,正在准备成熟度审核及 Release 4 的相关工作,即将成为 Akraino 核心项目。IME 最新版本(V3.0):
边缘集群轻量化,在资源有限的边缘节点能够使得 IME 组件尽量少得占据计算资源,为业务让位;
多集群管理,目的是通过多层级的分级自治管理,实现一次部署下发,全量集群实现部署的功能;
多功能自动化交付组件——kube-sitter,旨在把机器设备管理、监控采集、开机环境初始化、软件包部署管理等主要功能集成于一身,精简功能满足轻量化要求;
边缘节点自治,使得即使边缘节点在与中心机房断连甚至中心机房宕机的情况下,也可以确保边缘节点上的感知算法依旧能正常运转。
项目地址:https://github.com/elasticdeeplearning/edl
EDL 是一个基于 Kubernetes 的原生深度学习框架,它支持大规模分布式训练任务的容错和弹性缩放。 EDL 基于 Kubernetes 优先级的抢占功能,实现了深度学习任务的弹性调度。 深度学习模型训练和具有弹性资源的推理将在云上很常见,诸如 Amazon AWS,百度云之类的云计算资源具有多租户。
在提出了弹性深度学习(EDL),该方法使在云上进行深度学习模型的训练和推理变得更加轻松和高效。现在,EDL 是 LF AI 基金会的孵化阶段项目。最新版本(0.3.1):
在训练过程中通过推理型服务支持弹性训练,例如知识蒸馏;
infernce 服务通过 EDL 中的服务发现自动注册;
计算机视觉和自然语言处理中的知识蒸馏示例。