字节各类业务拥有众多用户群,作为字节前端性能监控 SDK,自身若存在性能问题,则会影响到数以亿计的真实用户的体验。所以此类 SDK 自身的性能在设计之初,就必须达到一个非常极致的水准。 与此同时,随着业务不断迭代,功能变得越来越多,对监控的需求也会变得越来越多。例如,今天 A 业务更新了架构,想要自定义性能指标的获取规则,明天 B 业务接入了微前端框架,需要监控子应用的性能。在解决这些业务需求的同时,我们会不断加入额外的判断逻辑、配置项。同时由于用户的电脑性能、浏览器环境的不同,我们又要解决各种兼容性问题,加入 polyfill 等代码,不可避免地造成 SDK 体积膨胀,性能劣化。那么我们是如何在需求和功能不断迭代的情况下,持续追踪和优化 SDK 的体积和性能的呢?
VLDB 会议,全称 International Conference on Very Large Data Bases,是全球数据库系统领域最负盛名的三大顶会之一。从 1975 年开始举办,每年一次,全球各地顶尖高校的大量研究者、各大高科技公司都会将自己的学术研究进展或工业界成果以论文形式投递到 VLDB 组委会,而组委会会审阅并接收其中最前沿、最具影响力的一批,并召开线下会议,供论文作者们分享、交流。 今年的 VLDB 在 9 月 5 日到 9 日,在澳大利亚悉尼举办。作为在全球有广泛用户和海量数据挑战的字节跳动公司,有三篇论文被 VLDB 接收:其中两篇来自 Graph 团队 ,一篇 ByteHTAP 系统,应 VLDB 组委会邀请,字节相关团队来到了正值早春的悉尼,与来自世界各地的数据领域专家学者,分享交流,共襄盛举。 为了让大家能对 VLDB 2022 有个快速的了解,我们总结了 VLDB 的论文分类、研究趋势以及工业界重点论文的摘要,当然啦,也包括字节跳动三篇论文简介。本文抛砖引玉,如果想深入了解学习,还是非常建议找到论文原文来仔细研究一番。
在正式开始介绍第一部分的内容之前,先给大家展示一组关键词。2020 年初 Hertz 立项,2020 年 10 月,Hertz 发布第一个可用版本。2022 年 6 月,Hertz 正式开源。 截至目前,Hertz 在字节内部已经支撑超过 1.4 万个业务服务,日峰值 QPS 超过 5000 万。 Hertz 不仅支撑业务服务,同时还会横向支撑字节内部的各种基础组件,包括但不限于字节跳动服务网格控制面、公司级别压测平台以及 FaaS,还包括各种业务网关等等。Hertz 的高性能和极强的稳定性可以支撑业务复杂多变的场景。在公司内部 Hertz 接替了大量基于 Gin 框架开发的存量服务,大幅度降低了业务资源使用成本以及服务延时,助力公司层面的降本增效。
我们一般会把 Sync 理解为 Android Studio 的准备阶段,包括解析工程配置信息、下载远程依赖到本地、更新代码索引等准备工作,当修改 gradle build 文件后,需要重新 Sync 将 Gradle 构建配置信息同步到 IDE,进而使 IDE 的功能及时应用新的构建配置,这些功能包括项目的 Gradle Task 列表展示、依赖信息展示等等。Sync 是 Android Studio 中独有的概念,当通过 Gradle 命令行程序构建 Android 应用时,只会经历 Gradle 定义的 Initialization、Configuration 和 Execution 生命周期,根本没有 Sync 的概念。Android Studio 的 Sync 阶段涉及到 IDE、Gradle、Plugin 等多个角色,梳理清楚这些角色各自的作用和联系,才能清晰理解 Sync 的整体架构,下面分别来介绍这些角色:
字节数据中台DataLeap的Data Catalog系统通过接收MQ中的近实时消息来同步部分元数据。Apache Atlas对于实时消息的消费处理不满足性能要求,内部使用Flink任务的处理方案在ToB场景中也存在诸多限制,所以团队自研了轻量级异步消息处理框架,支持了字节内部和火山引擎上同步元数据的诉求。本文定义了需求场景,并详细介绍框架的设计与实现。
用一句话概括模板学习,即将原本的输入文本填入一个带有输入和输出槽位的模板,然后利用预训练语言模型预测整个句子,最终可以利用这个完整的句子导出最终需要的答案。 模板学习最吸引人的关键在于其通过已有的预训练模型,定义合适的模板就能完成 few-shot 或者 zero-shot 任务,这样可以使得语言模型可以在预训练阶段利用尽可能多的信息进行训练,后续也能最大效率的发挥其作用。
9月17日,由字节跳动Dev Infra团队发起的字节跳动Dev Better系列技术沙龙|前端性能及新技术实践 直播活动成功在线上举办。本次活动邀请到了字节跳动研发工程师刘义、彭莉、张皓洋、陈博深和大家进行分享交流,为大家带来前端性能方面的优质内容与实战经验。
人工智能的三个层次: 运算职能:数据的存储和计算能力,机器远胜于人类。 感知职能:视觉、听觉等能力,机器在语音识别、图像识别领域已经比肩人类。 认知智能:自然语言处理、常识建模与推理等任务,机器还有很长的路要走。 自然语言处理属于认知智能范畴,由于自然语言具有抽象性、组合性、歧义性、知识性、演化性等特点,为机器处理带来了极大的挑战,有人将自然语言处理称为人工智能皇冠上的明珠。近些年来,出现了以 BERT 为代表的预训练语言模型,将自然语言处理带入了一个新纪元:预训练语言模型 + 特定任务精调。本文试图梳理自然语言预训练技术的演进之路,以期和大家相互交流学习,不足、谬误之处望批评指正。
字节跳动内部已经将ClickHouse广泛应用,并在原引擎基础上重构了技术架构,本系列文章将从Upsert、多表关联查询、可用性提升等多方面介绍字节跳动基于ClickHouse的能力增强实践。