2022年美团技术年货 合辑879 工程效能 CI/CD 之流水线引擎的建设实践 912 美团外卖搜索基于 Elasticsearch 的优化实践 933 美团图灵机器学习平台性能起飞的秘密(一) 953 提升资源利用率与保障服务质量,鱼与熊掌不可兼得? 971 标准化思想及组装式架构在后端 BFF 中的实践 992 外卖广告大规模深度学习模型工程实践 | 美团外卖广告工程实践专题连载 1013 数据库全量 的利用率只有 95%,还有压 榨空间,而 16 核 CPU 利用率已经超过了 1500%,几乎满负荷运转。我们推测整个 线上服务的“瓶颈”可能在 CPU,而图片预处理会使用大量 CPU 资源。 表 9 服务器资源配置 算法 < 33 3.2.1 DALI 预处理 为了解决 CPU 预处理带来的“瓶颈”,我们采用了 NVIDIA 的 DALI 库,将预处理 直接放到 GPU 中运算。该库可以在 预处理后,T4 GPU 利用率达到了 100%,而 16 核 CPU 的利 用率则下降到了 1100% 左右,部分 CPU 资源得到了“解放”。另外,我们也测试 FP16 + DALI 的吞吐,反而有略微的下降。我们推测是 DALI 抢占了部分 GPU 计 算资源,而 FP16 服务的瓶颈在 GPU,所以对整体性能产生了负面影响。 34 > 2022年美团技术年货 图 13 使用 DALI0 码力 | 1356 页 | 45.90 MB | 1 年前3
2020美团技术年货 算法篇树模型,再到近两年的深度神经网络、BERT、DQN 等,并在实践中也取得了良好 的效果与产出。 本文将与大家探讨美团搜索与 NLP 部使用的统一在线预估框架 Augur 的设计思路、 效果、优势与不足,希望对大家有所帮助或者启发。 搜索优化问题,是个典型的 AI 应用问题,而 AI 应用问题首先是个系统问题。经历 近 10 年的技术积累和沉淀,美团搜索系统架构从传统检索引擎升级转变为 AI 搜索引 核心预估框架,以及产品级别 的业务管理系统。为了能够真正地提升预估能力和业务迭代的效率,平台需要回答以 下几个问题: ● 如何解决特征和模型的高效迭代? ● 如何解决批量预估的性能和资源问题? ● 如何实现能力的快速复用并能够保障业务的安全? 下面,我们将逐一给出答案。 8 > 美团 2020 技术年货 4.1 构建预估内核:高效的特征和模型迭代 4.1.1 Operator 征名(name)做了区分。 这样的话,就可以只在外部编写一次表达式,注册一个公用特征,却能通过在模型的 结构体中配置不同 Transfomer 创造出多个不同的模型预估特征。这种做法相对节约 资源,因为公用特征只需抽取计算一次即可。 12 > 美团 2020 技术年货 此外,这一套配置文件也是离线样本生产时使用的特征配置文件,结合统一的 OP&Transformer 代码逻辑,进一步保证了离线0 码力 | 317 页 | 16.57 MB | 1 年前3
3.云原生边云协同AI框架实践Sedna:边云协同AI框架 02 Sedna-GM:K8S Operator 03 实践案例 04 Edge AI现状与趋势 第一部分 Why Edge AI? • Cloud中心化的AI计算范式不足以应对端上AI 应用对实时性、准确性和强交互性的需求 Edge: geographically distributed Cloud: Centralized Client devices 数据在边缘产生 边侧逐步具备AI能力 分布式协同AI 核心驱动力 分布式协同AI核心驱动力 • 随着边侧算力逐步强化,边缘AI持续演变至分布式协同AI 分布式协同AI技术挑战 1. 边缘资源碎片化 2. 边缘数据孤岛 3. 边缘样本少 4. 边缘数据异构 分布式协同AI 技术挑战 边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供 Shallow Model Hard example mining Edge 3 App Shallow Model Hard example mining 边云协同推理: 边侧资源受限条件下,提升整体推理性能 EdgeNode 2 Sedna LC Cloud Edge Sedna GM EdgeNode 1 Feature Extraction Sedna0 码力 | 37 页 | 2.36 MB | 1 年前3
Java 应用与开发 - Java 内存模型与分配机制不及时的现象,从而降低内存的使用效率。而当程序庞大的 时候,这种现象更为明显。 ▶ 垃圾回收工作本身需要消耗资源,同样会产生内存浪费。 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 人为的内存管理是必要的 Java 需要内存管理 ▶ 虽然 JVM 已经代替开发者完成了对内存的管理,但是硬件 本身的资源是有限的。 ▶ 如果 Java 的开发人员不注意内存的使用依然会造成较高的 程序内存运行分析 Java 内存管理建议 JVM 内存溢出和参数调优 当遇到 OutOfMemoryError 时该如何做? ▶ 常见的 OOM(Out Of Memory)内存溢出异常,就是堆内 存空间不足以存放新对象实例时导致。 ▶ 永久区内存溢出相对少见,一般是由于需要加载海量的 Class 数据,超过了非堆内存的容量导致。 ▶ 栈内存也会溢出,但是更加少见。 处理方法 调整 JVM 内存配置; 程序内存运行分析 Java 内存管理建议 JVM 内存溢出和参数调优 当遇到 OutOfMemoryError 时该如何做? ▶ 常见的 OOM(Out Of Memory)内存溢出异常,就是堆内 存空间不足以存放新对象实例时导致。 ▶ 永久区内存溢出相对少见,一般是由于需要加载海量的 Class 数据,超过了非堆内存的容量导致。 ▶ 栈内存也会溢出,但是更加少见。 处理方法 调整 JVM 内存配置;0 码力 | 44 页 | 818.30 KB | 1 年前3
2.游戏战中陪伴助手微服务架构设计与应用掉血10点 • 开枪3发 • 敌人方位 • …… • 我们要怎么做? • 我们的输出是什么? • 策略:语音 / 标记 • 娱乐:三杀收下! • 攻略:AKM 不适合新手 • 指导:我们去资源点搜刮吧 • 有理有据: • 去哪里 • 做什么 • 为什么 黑盒系统,输入输出 初始方案——Lua 脚本 符合直觉的第一个方案 初始方案——Lua 脚本 如何新增策略 初始方案——Lua 对用户价值: 提升玩家体验 / 吃鸡率的帮助有多大 推荐系统接入——系统架构 推荐系统: 向量化 方案探索——资源点推荐 针对具体场景开发 - 专利:《一种在游戏中离线挖掘、实时推荐资源点的方案》 - 大数据挖掘资源出现位置 - 左:配置文件 - 右:大数据挖掘 - 不足: - 太 bug 了,限制使用 方案探索——聚类统计 模仿大多数玩家的选择 - 实现方法: - 为玩家生成 - 通过特征向量匹配历史玩家 - 策略举例: - 关键帧内容:目标坐标、有资源、有敌人、无开火、无车 - 话术播报:“去小地图标注的地方搜刮,注意避开敌人” 方案探索——关键帧 / 路径推荐 针对具体场景开发 - 优势: - 战略级规划、序列化推荐 - 策略自动生成(除坐标外的特征穷举) - 主要不足: - 特征维度增加后,维度爆炸 - 启发: - 抽象:子状态(特征维度)0 码力 | 47 页 | 11.10 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐保证信息私密性和保密性 真实性(Authentication) 确保信息来自正确身份的对象 完整性(Integrity) 信息没有被篡改 接入控制(Access control) 避免资源滥用 可获性(Availability) 资源可以被使用 密码算法分类与应用 Categories and Applications of Cryptography Rust China Conf 2022 – 2023 2022 – 2023, Shanghai, China • SM1 是分组加密算法,实现对称加密,分组长度和密钥长度都为 128 位,对长消息进行加解密时, 若消息长度过长,需要进行分组,如果消息长度不足,则要进行填充。 • 保证数据机密性。 • 算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP 核的形式存在于芯片 中,调用该算法时,需要通过加密芯片的接口进行调用。 为无线局域网标准,是分组加密算法,实现对称加密,用于替代 DES/AES 等国际算法, SM4 算法与 AES 算法具有相同的密钥长度和分组长度,均为 128 位。对长消息进行加解密 时,若消息长度过长,需要进行分组,要消息长度不足,则要进行填充。 • 加密算法与密钥扩展算法都采用 32 轮非线性迭代结构,解密算法与加密算法的结构相同,只 是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。 SM7 Introduction0 码力 | 44 页 | 3.70 MB | 1 年前3
FISCO BCOS 1.3 中文文档,而块体主要存储交易数据。 对等网络: 与传统中心化网络不同,对等网络指的是参与者通过P2P协议组成网络,参与 者都是对等的。对等网络具有以下几个特征: 1. 非中心化:不需要一个中心服务器,资源和服务分散个各个节点上,所有 的数据传输和服务的实现都在节点之间进行。 2. 健壮性强:节点可以随意加入、退出网络,不会对服务造成任何影响。 3. 可扩展性强:支持扩展节点,从而扩展系统。譬如基于P2P协议的文件下 托权益证明(DPOS)以及可用拜占庭容错算法(PBFT)等,其中POW、 POS、DPOS主要适用于比特币等公有链,而PBFT是一种适用于传统分布式系 统的拜占庭容错算法,通过三轮广播通信完成共识算法。 2.2传统共识算法不足 POW通过算力竞争获得共识,造成大量能源消耗,而且这种算法会导致 出块时间不稳定; POS、DPOS需要通过代币数量来控制共识,容易造成代币集中化,使得 共识被少数人控制,少数人可以联合作恶破坏网络; 布式协作系统,而且 强调安全性、可用性、容错性、一致性、事务性,用较复杂的算法和繁琐的多 参与方协作来获得去信任化、数据不可篡改以及交易可追溯等特出的功能优 势,根据分布式的CAP原理,在同等的硬件资源投入的前提下,区块链的性能 往往低于中心化的系统,其表现就是并发数不高,交易时延较明显。 我们已 经在多个方面对系统运行的全流程进行细致的优化,包括加密解密计算,交易 处理流程,共识算法,存储优化等,使我们的区块链平台在单链架构时,运行0 码力 | 491 页 | 5.72 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化大多政务服务APP功能单一,仍以政务信息发布为主,缺乏实用的网上办事和便民服务。 仅有15%的政务APP提供办事服务,存在“信息有余、服务不足”的问题。 2、下载APP成为负担 政务APP盲目开发泛滥,用户为了办事需要下载多个APP,成为一种负担。 3、优化不足体验差 政务APP接入政务服务,没有结合移动端的访问特性进行移动化改造,用户体验差。 4、缺少持续运营: 政务APP运营维护乏力,版本迭代缓慢,存在大量僵尸应用。 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 4、一个特殊的移动政务应用项目 3 资源少:初期团队人员少、 业务推动阻力大 1 时间紧: 1月启动,5月上线 2 目标高:高频便民服务、 突出改革亮点,迎接大领 导视察 4 需求多:公积金、社 保、出入境、交管等, 服务很多,需要梳理 包括个人中心、服务、待办服务、证照服务、公共服务、外部能力、业务办理服务和运营管理服务模块 12、系统部署架构反复评审论证 一、部署架构 1、政务云电子政务外网 :数据库、应用服务 2、政务云互联网区:静态资源、网关 3、互联网区:小程序、云服务 二、安全防护 1、仅开放指定端口 80 443 2、域名须有HTTPS证书 3、白名单 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。0 码力 | 35 页 | 15.60 MB | 1 年前3
百度超级链 XuperChain 3.7 中文文档2.3. 合约上下文 3. XVM虚拟机 3.1. 背景 3.2. WASM简介 3.3. WASM字节码编译加载流程 3.4. 语言运行环境 3.5. XuperBridge对接 3.6. 资源消耗统计 4. 账号权限控制模型 4.1. 背景 4.2. 名词解释 4.3. 模型简介 4.4. 实现功能 4.5. 系统设计 5. 超级链p2p网络 5.1. p2p网络概述 5.2. 超级链p2p网络 称加密算法生成公 私钥、地址。匿名性 较好。支持可插拔,从而可以支持不同的业 务场景 智能合 约 自研并实现了一套智能合约虚拟机XVM,支持丰富的开发语言, 智能合约之间并发执行, 支持执行消耗资源,避免恶意攻击 提案 一种解决系统升级问题的机制。比如修改区块大小,升级共识算 法。提案整个过程涉及 到发起提案、参与投票、投票生效三个阶 段 账号与 权限 为了满足合约调用的权限控制,保证XuperChain网络的健康运转, 智能合约 自研并实现了一套智能合约虚拟机XVM。特点如下: 1. 合约状态数据与合约代码运行环境分离,从而能够支持多语言虚拟机且各 种合约虚拟机只需要做纯粹的无状态合约代码执行; 2. 支持执行消耗资源,避免恶意攻击; 3. 支持丰富的智能合约开发语言,比如go,Solitidy,C/C++,Java等; 4. 利用读写集确保普通合约调用支持并发执行,充分利用计算机多核特性; 5. 权限系统0 码力 | 270 页 | 24.86 MB | 1 年前3
Hello 算法 1.0.0b4 Java版强的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在挫折中步步退缩。通 读教材书籍也是一种常见做法,但对于面向求职的同学来说,毕业季、投递简历、准备笔试面试已经占据了 大部分精力,厚重的书籍往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书找到了你。本书是我对此问题的给出的答案,虽然不一定正确, 但至少是一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知 着我们需要在各种 机器上进行测试,而这是不现实的。 展开完整测试非常耗费资源。随着输入数据量的变化,算法会表现出不同的效率。例如,输入数据量较小时, 算法 A 的运行时间可能短于算法 B;而输入数据量较大时,测试结果可能相反。因此,为了得到有说服力的 结论,我们需要测试各种规模的输入数据,这样需要占用大量的计算资源。 理论估算 由于实际测试具有较大的局限性,我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称为 如果你对复杂度分析的概念仍感到困惑,无需担心,我们会在后续章节详细介绍。 2.1.3. 复杂度分析重要性 复杂度分析为我们提供了一把评估算法效率的“标尺”,告诉我们执行某个算法所需的时间和空间资源,并使 我们能够对比不同算法之间的效率。 复杂度是个数学概念,对于初学者可能比较抽象,学习难度相对较高。从这个角度看,复杂度分析可能不太 适合作为第一章的内容。然而,当我们讨论某个数据结构或算0 码力 | 342 页 | 27.39 MB | 1 年前3
共 388 条
- 1
- 2
- 3
- 4
- 5
- 6
- 39













