您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[美团]:2022年美团技术年货合辑 - 发现报告
当前位置:首页/其他报告/报告详情/

2022年美团技术年货合辑

2023-01-31-美团石***
2022年美团技术年货合辑

新春将至,一年一度的美团技术年货也如约到来!时间煮雨,岁月缝花,花开无声,花谢无语。2022这一年,我们一起经 历了无数的悲喜,也留下了满满的回忆。也许生活就是这样,只有历尽波澜,才能欣赏茫茫大海的辽阔和无边, 才能感受到漫天星辰的光芒和温暖。在2023年春节到来之际,我们从去年美团技术团队公众号上精选了60多篇技术文章,整理制作成一本1300多页的电子书,作为新年礼物赠送给大家。这本电子书内容覆盖算法、前端、后端、数据、安全等多个技术领域, 希望能对同学们的工作和学习有所帮助。也欢迎大家转给更多有相同兴趣、积极上进的同事和朋友们,一起切磋,共同成长。祝愿2023年,大家诸事顺遂,健康平安。序 算法 1YOLOv6:又快又准的目标检测框架开源啦 1目标检测开源框架 YOLOv6 全面升级,更快更准的 2.0 版本来啦 13通用目标检测开源框架 YOLOv6 在美团的量化部署实战 177 次 KDD Cup&Kaggle 冠军的经验分享:从多领域优化到 AutoML 框架 37图神经网络训练框架的实践和探索 66图技术在美团外卖下的场景化应用及探索 83大规模异构图召回在美团到店推荐广告的应用 102美团搜索粗排优化的探索与实践 116美团外卖推荐情境化智能流量分发的实践与探索 129大众点评搜索相关性技术探索与实践 152美团 SemEval2022 结构化情感分析跨语言赛道冠军方法总结 174检索式对话系统在美团客服场景的探索与实践 188端智能在大众点评搜索重排序的应用实践 216对话摘要技术在美团的探索(SIGIR) 238异构广告混排在美团到店业务的探索与实践 258短视频内容理解与生成技术在美团的创新实践 271美团搜索中查询改写技术的探索与实践 297美团内部讲座 | 清华大学崔鹏:因果启发的学习、推断和决策 325NeurIPS 2021 | Twins:重新思考高效的视觉注意力模型设计 339目录 iv > 2022年美团技术年货美团获得小样本学习榜单 FewCLUE 第一! Prompt Learning+ 自训练实战 353DSTC10 开放领域对话评估比赛冠军方法总结 368KDD 2022 | 美团技术团队精选论文解读 382ACM SIGIR 2022 | 美团技术团队精选论文解读 391CVPR 2022 | 美团技术团队精选论文解读 404ACM MM & ECCV 2022 | 美团视觉 8 篇论文揭秘内容领域的智能科技 413前端 427知识图谱可视化技术在美团的实践与探索 427终端新玩法:技术栈无关的剧本式引导 459自动化测试在美团外卖的实践与落地 483深入理解函数式编程(上) 512深入理解函数式编程(下) 541Android 对 so 体积优化的探索与实践 568从 0 到 1:美团端侧 CDN 容灾解决方案 589美团高性能终端实时日志系统建设实践 608后端 622可视化全链路日志追踪 622设计模式二三事 647基于代价的慢查询优化建议 670Java 系列 | 远程热部署在美团的落地实践 692日志导致线程 Block 的这些坑,你不得不防 713基于 AI 算法的数据库异常监测系统的设计与实现 775 目录 < vReplication(上):常见复制模型 & 分布式系统挑战 792Replication(下):事务,一致性与共识 818TensorFlow 在美团外卖推荐场景的 GPU 训练优化实践 855CompletableFuture 原理与实践 - 外卖商家端 API 的异步化 879工程效能 CI/CD 之流水线引擎的建设实践 912美团外卖搜索基于 Elasticsearch 的优化实践 933美团图灵机器学习平台性能起飞的秘密(一) 953提升资源利用率与保障服务质量,鱼与熊掌不可兼得? 971标准化思想及组装式架构在后端 BFF 中的实践 992外卖广告大规模深度学习模型工程实践 | 美团外卖广告工程实践专题连载 1013数据库全量 SQL 分析与审计系统性能优化之旅 1048数据库异常智能分析与诊断 1059美团外卖广告智能算力的探索与实践(二) 1079Linux 下跨语言调用 C++ 实践 1101GPU 在外卖场景精排模型预估中的应用实践 1130美团集群调度系统的云原生实践 1149广告平台化的探索与实践 | 美团外卖广告工程实践专题连载 1161数据 1193Kafka 在美团数据平台的实践 1193美团综合业务推荐系统的质量模型及实践 1218业务数据治理体系化思考与实践 1233数据治理一体化实践之体系化建模 1263 vi > 2022年美团技术年货运维 / 安全 1277数字化新业态下数据安全创新——Token 化 1277Linux 中基于 eBPF 的恶意利用与检测机制 1293如何应对开源组件风险?软件成分安全分析(SCA)能力的建设与演进 1328 算法 < 1YOLOv6:又快又准的目标检测框架开源啦作者:楚怡 凯衡 等1. 概述YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。本框架同时专注于检测的精度和推理效率,在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可达 35.0% AP,在 T4 上推理速度可达 1242 FPS;YOLOv6-s 在 COCO 上精度可达 43.1% AP,在 T4 上推理速度可达 520 FPS。在部署方面,YOLOv6 支 持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平台的部署,极大地简化工程部署时的适配工作。目前,项目已开源至 Github,传送门:YOLOv6。欢迎有需要的小伙伴们 Star 收藏,随时取用。精度与速度远超 YOLOv5 和 YOLOX 的新框架目标检测作为计算机视觉领域的一项基础性技术,在工业界得到了广泛的应用,其中 YOLO 系列算法因其较好的综合性能,逐渐成为大多数工业应用时的首选框架。至今,业界已衍生出许多 YOLO 检测框架,其中以 YOLOv5[1]、YOLOX[2] 和 PP-YOLOE[3] 最具代表性,但在实际使用中,我们发现上述框架在速度和精度方面仍有很大的提升的空间。基于此,我们通过研究并借鉴了业界已有的先进技术,开发了一套新的目标检测框架——YOLOv6。该框架支持模型训练、推理及多平台部署等全链条的工业应用需求,并在网络结构、训练策略等算法层面进行了多项改进和优化,在 COCO 数据集上,YOLOv6 在精度和速度方面均超越其他同体量算法,相关结果如下图 1 所示:算法 2 > 2022年美团技术年货图 1-1 YOLOv6 各尺寸模型与其他模型性能对比图 1-2 YOLOv6 与其他模型在不同分辨率下性能对比 算法 < 3图 1-1 展示了不同尺寸网络下各检测算法的性能对比,曲线上的点分别表示该检测算法在不同尺寸网络下(s/tiny/nano)的模型性能,从图中可以看到,YOLOv6 在精度和速度方面均超越其他 YOLO 系列同体量算法。图 1-2 展示了输入分辨率变化时各检测网络模型的性能对比,曲线上的点从左往右分别表示图像分辨率依次增大时(384/448/512/576/640)该模型的性能,从图中可以看到,YOLOv6 在不同分辨率下,仍然保持较大的性能优势。2. YOLOv6 关键技术介绍YOLOv6 主要在 BackBone、Neck、Head 以及训练策略等方面进行了诸多的改进: ●我们统一设计了更高效的 Backbone 和 Neck :受到硬件感知神经网络设计思想的启发,基于 RepVGG style[4] 设计了可重参数化、更高效的骨干网络 EfficientRep Backbone 和 Rep-PAN Neck。 ●优化设计了更简洁有效的 Efficient Decoupled Head,在维持精度的同时,进一步降低了一般解耦头带来的额外延时开销。 ●在训练策略上,我们采用 Anchor-free 无锚范式,同时辅以 SimOTA[2] 标签分配策略以及 SIoU[9] 边界框回归损失来进一步提高检测精度。2.1 Hardware-friendly 的骨干网络设计YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet[5] 搭建,采用了多分支的方式和残差结构。对于 GPU 等硬件来说,这种结构会一定程度上增加延时,同时减小内存带宽利用率。下图 2 为计算机体系结构领域中的 Roofline Model[8] 介绍图,显示了硬件中计算能力和内存带宽之间的关联关系。 4 > 2022年美团技术年货图2 Roofline Model 介绍图于是,我们基于硬件感知神经网络设计的思想,对 Backbone 和 Neck 进行了重新设计和优化。该思想基于硬件的特性、推理框架 / 编译框架的特点,以硬件和编译友好的结构作为设计原则,在网络构建时,综合考虑硬件计算能力、内存带宽、编译优化特性、网络表征能力等,进而获得又快又好的网络结构。对上述重新设计的两个检测部件,我们在 YOLOv6 中分别称为 EfficientRep Backbone 和 Rep-PAN Neck,其主要贡献点在于: ●引入了 RepVGG[4] style 结构。 ●基于硬件感知思想重新设计了 Backbone 和 Neck。RepVGG[4] Style 结构是一种在训练时具有多分支拓扑,而在实际部署时可以等效融合为单个 3x3 卷积的一种可重参数化的结构(融合过程如下图 3 所示)。通过融合成的 3x3 卷积结构,可以有效利用计算密集型硬件计算能力(比如 GPU),同时也可获得 GPU/CPU 上已经高度优化的 NVIDIA cuDNN 和 Intel MKL 编译框架的帮助。 算法 < 5实验表明,通过上述策略,YOLOv6 减少了在硬件上的延时,并显著提升了算法的精度,让检测网络更快更强。以 nano 尺寸模型为例,对比 YOLOv5-nano 采用的网络结构,本方法在速度上提升了 21%,同时精度提升 3.6% AP。图3 Rep 算子的融合过程[4]EfficientRep Backbone:在 Backbone 设计方面,我们基于以上 Rep 算子设计了一个高效的 Backbone。相比于 YOLOv5 采用的 CSP-Backbone,该 Backbone 能够高效利用硬件(如 GPU)算力的同时,还具有较强的表征能力。下图 4 为 EfficientRep Backbone 具体设计结构图,我们将 Backbone 中 stride=2 的普通 Conv 层替换成了 stride=2 的 RepConv 层。同时,将原始的 CSP-Block 6 > 2022年美团技术年货都重新设计为 RepBlock,其中 RepBlock 的第一个 RepConv 会做 channel 维度的变换和对齐。另外,我们还将原始的 SPPF 优化设计为更加高效的 SimSPPF。图4 EfficientRep Backbone 结构图Rep-PAN:在 Neck 设计方面,为了让其在硬件上推理更加高效,以达到更好的精度与速度的平衡,我们基于硬件感知神经网络设计思想,为 YOLOv6 设计了一个更有效的特征融合网络结构。Rep-PAN 基于 PAN[6] 拓扑方式,用 RepBlock 替换了 YOLOv5 中使用的 CSP-Block,同时对整体 Neck 中的算子进行了调整,目的是在硬件上达到高效推理的同时,保持较好的多尺度特征融合能力(Rep-PAN 结构图如下图 5 所示)。 算法 < 7图 5 Rep-PAN 结构图2.2 更简洁高效的 Decoupled Head在 YOLOv6 中,我们采用了解耦检测头(Decoupled Head)结构,并对其进行了精简设计。原始 YOLOv5 的检测