公司:字节跳动
北京字节跳动科技有限公司,简称字节跳动,是一家位于中国北京的跨国互联网技术公司,成立于2012年3月,旗下有产品媒体聚合服务今日头条和短影音抖音(及其海外版本TikTok)、西瓜视频、社交平台Lemon8等,也有一些加入人工智能技术的专业生产力软件,例如剪映、办公套装拉客(lark,中国版本称飞书)等业务。
至2018年,字节跳动的移动应用月度用户超过十亿人,估值750亿美元,超越Uber成为全球最有价值的创业公司。截至2019年7月,字节跳动的产品和服务已覆盖全球150个国家和地区、75个语种,曾在40多个国家和地区位居应用商店总榜前列。
在中国互联网企业中,字节跳动是第一家没有向阿里巴巴、腾讯或百度寻求商业保护或融资的创业公司;相反地,字节跳动被认为与百度、腾讯两大巨头有强烈的竞争关系,因字节跳动资金主要来源于抖音和今日头条的广告收入。
至2020年3月,字节跳动已经有六万员工,并计划再增员一万人。投资人和内部消息将字节跳动2019年的营收定在1,040亿元至1,400亿元人民币,超过了Uber、Snapchat和推特的总和。在中国,其广告收入也超越了腾讯、仅次于阿里巴巴。抖音的全球下载量达1.15亿次,固定用户近10亿。
通过 Goyacc 构建 Elasticsearch Querystring 解析器 - 领域特定语言语法分析实践
领域特定语言(DSL),如 SQL、Elasticsearch Querystring 等,往往是为专门的目的设计的。在特定的任务中,DSL 通过在表达能力上做的妥协换取在某一领域内的高效。
在飞书套件日志系统的私有化研发过程中,为了符合研发同学查询日志的习惯,尝试使用 Elasticquery Querystring(下简称为 Querystring)作为过滤器的查询条件语句,由此需要可用的 Golang Querystring 解析器。由于目前开源界无法找到完善的实现,尝试使用 Goyacc 自行构建。
从响应式编程到 Combine 实践
大约一年前,Resso 接入了 Combine,利用响应式编程简化了代码逻辑,也积累了很多实践经验。本文会从响应式编程的基本思想并逐步深入介绍 Combine 的概念与最佳实践, 希望能帮助更多的同学顺利上手并实践响应式编程,少踩坑。
等等,Resso 是什么?Resso 来源于 Resonate(共鸣),是字节跳动推出的一个社交音乐流媒体平台,专为下一代音乐发烧友设计,使他们能够通过对音乐的热爱来表达和与他人建立联系。
抖音「休息提醒」设计探索
随着网络科技的发展,当今中国已进入全面信息社会,以互联网信息通信技术为先导的智能技术,深刻改变着人们的生产生活。出行、娱乐、购物、新闻等等都已经从现实转换到了互联网。虽然极大地丰富了我们的生活,但也伴随着一些“低头族”“易沉迷”等社会问题的产生。
抖音作为有着一定社会影响的产品,一直致力于承担社会责任,引导用户积极向上的生活方式。所以我们这次在做的抖音休息提醒设计探索,不是让用户不用抖音,而是要引导用户健康地使用抖音。
从单机到分布式数据库存储系统的演进
存储系统是指能高效存储,持久化用户数据的一系列系统软件。
行为序列模型在抖音风控中的应用
行为序列模型相对于传统机器学习的主要优势在于不依赖行为画像特征,无需强专家经验挖掘高效特征来提升模型性能,缩短了特征工程的周期,能快速响应黑产攻击。
黑产通过刷接口、群控、真人众包等作弊手段在关注、点赞、评论等核心场景进行攻击。不同作弊方式在行为序列上有不同的特点。刷接口、群控作弊属于机器作弊,行为序列呈现团伙相似性、序列周期性 / 密集性。真人众包主要通过线下软件分发任务真人账号执行,行为链路具有比较固定模式以上作弊方式在行为序列上具有显著性,所以在风控业务上序列模型有很好的落地能力。
大规模实时分位数计算——Quantile Sketches 简史
这篇文章从 Sketch 结构的定义和特性出发,解释了 Sketch 结构如何解决大数据计算场景中海量数据计算痛点,明确了 Quantile 问题的定义。其次,结合大数据开发中常用组件,讨论了如何将 Quantile Sketch 算法带入工程实践中。本文着重介绍了 Quantile Sketches 算法原理,涵盖了算法发展的几个重要阶段和重要产物。笔者尝试用最简单的语言和逻辑讲解了每一个算法的核心思想、优点和缺陷,尝试将多种算法的发展串联起来,方便没有相关背景的人从零开始了解这个领域。
基于NLP的日志智能分析技术
动态监控 SDK 对于客户端上敏感权限 API (安卓端约79个,IOS端约50个)会进行调用的监控。对于不合规的调用会透过自定义异常将当下发生的端上信息记录成日志并回传 Slardar 落库。NvWa 平台致力于将这些报警日志以全自动化的方式做收集、处理、归因、消费。针对有合规疑虑的业务场景通知 POC、RD 整改,并记录其过程,达成完整的动态监控生产消费链,确保隐私合规安全。
动态监控的音视频业务场景下,端上往往因为各种原因导致监控异常引发日志报警,例如:API 只调用一次导致未关闭音视频实例、业务代码 bug、线程关闭异常...等等。传统归因方法通过正则匹配、人工插入日志等方法能够对一部分异常进行归因,但是难以发现公共特征,导致大量报警数据无法消费,形成潜在风险。
移动端渲染原理浅析
计算机或手机的渲染是一个非常复杂的过程,本文介绍了渲染相关的一些基础知识,并结合 iOS 和安卓的技术框架介绍了移动端渲染原理,最后详细的解析了 iOS 中的离屏渲染以及圆角优化的一些方法。
以一次 Data Catalog 架构升级为例聊业务系统的性能优化
字节的 DataCatalog 系统,在 2021 年进行过大规模重构,新版本的存储层基于 Apache Atlas 实现。迁移过程中,我们遇到了比较多的性能问题。本文以 Data Catalog 系统升级过程为例,与大家讨论业务系统性能优化方面的思考,也会介绍我们关于 Apache Atlas 相关的性能优化。
智能问答:基于 BERT 的语义模型
飞书智能问答应用于员工服务场景,致力于减少客服人力消耗的同时,以卡片的形式高效解决用户知识探索性需求。飞书智能问答整合了服务台、wiki 中的问答对,形成问答知识库,在综合搜索、服务台中以一问一答的方式将知识提供给用户。
作为企业级 SaaS 应用,飞书对数据安全和服务稳定性都有极高的要求,这就导致了训练数据存在严重的不足,且极大的依赖于公开数据而无法使用业务数据。在模型迭代过程中,依赖公开数据也导致模型训练数据存在与业务数据分布不一致的情况。通过和多个试点服务台的合作,在得到用户充分授权后,以不接触数据的方式进行训练。即模型可见数据,但人工无法以任何方式获取明文数据。
字节跳动使用 Flink State 的经验分享
本文主要分享字节跳动在使用 Flink State 上的实践经验,内容包括 Flink State 相关实践以及部分字节内部在引擎上的优化,希望可以给 Flink 用户的开发及调优提供一些借鉴意义。
抖音功耗优化实践
功耗优化是应用体验优化的一个重要课题,高功耗会引发用户的电量焦虑,也会导致糟糕的发热体验,从而降低了用户的使用意愿。而功耗又是涉及整机的长时间多场景的综合性复杂指标,影响因素很多。不论是功耗的量化拆解,还是异常问题的监控,以及主动的功耗优化对于开发人员来说都是很有挑战性的。
本文结合抖音的功耗优化实践中产出了一些实验结论,优化思路,从功耗的基础知识,功耗组成,功耗分析,功耗优化等几个方面,对 Android 应用的功耗优化做一个总结沉淀。
字节跳动一站式数据治理解决方案及平台架构
在字节跳动内部,数据平台数据治理团队致力于建立一站式、全链路的数据治理解决方案平台。本文是字节跳动数据平台开发套件团队王慧祥参与的“数智有为第二期”在线分享的部分摘录。
抖音 Android 包体积优化探索:基于 ReDex 的 DEX 优化落地实践
应用安装包的体积会显著影响应用的下载速度和安装速度,按照 Google 的经验数据,包体积每增加 1M 会造成 0.17%的新增折损。抖音的一些实验也证明了包体积会显著影响下载激活的转化率。
Android 的安装包是 APK 格式的,在抖音的安装包中 DEX 的体积占比达到了 40%以上,所以针对 DEX 的体积优化是一种行之有效的包体积优化手段。
DEX 本质上是由 Java/Kotlin 代码编译而成的字节码,因此,针对字节码进行业务无感的通用优化成为我们的一个探索方向。
基于 SPICE 协议的硬编推流整合方案在云游戏中的应用
随着虚拟化技术如模拟器,容器化等技术等发展,在安卓云游戏/云手机场景中,可以在服务宿主侧虚拟出更多更小颗粒度的 Android 实例。其中比较核心的技术是图形虚拟化技术,如何最大限度利用宿主侧的 GPU 资源进行渲染和编码,不考虑软编等利用 CPU 资源进行渲染编码是因为效率带来的延迟问题。
字节跳动数据库的过去、现状与未来
数据库技术一直是信息技术中极其重要的一环,在步入云原生时代后,云基础设施和数据库进一步整合,弥补了传统数据库的痛点,带来了高可扩展性、全面自动化、快速部署、节约成本、管理便捷等优势。
从 2018 到 2021 年,伴随业务和数据的迅猛增长,字节跳动的分布式数据库系统取得了令人振奋的发展。如下图所示,在这 4 年间,公司应用侧容器数量从 5 万个增长到了 750 万个,截至目前已经突破 1000 万。这 1000 万个容器筑成了字节跳动坚实的云原生基础设施,支撑着整个业务体系的发展。