EMR Serverless Spark 基于 MinHash-LSH 实现 PB 级文本语义去重 4 倍加速
大模型训练数据是燃料质量是引擎。在语料准备的整条链路中文本去重是最基础也最绕不开的环节。重复语料不仅浪费算力还会导致模型过拟合直接影响生成质量。然而当数据规模达到PB 级别时去重任务本身就变成了一个计算密集型的性能黑洞——跑一整夜还跑不完数据倾斜一出现整个任务就卡死这些都是数据工程师再熟悉不过的场景。某企业此前在原有云平台上使用开源 Spark 集群进行大规模文本去重。迁移至阿里云 EMR Serverless Spark 后借助 MinHash-LSH 内置函数与 Fusion Engine 向量化加速去重性能提升 4 倍数据准备周期从天级降至小时级。本文拆解这一迁移实践背后的技术方案与关键优化点。文本去重大模型语料清洗的关键一环在大型语言模型LLM的训练流程中语料数据的质量直接决定模型的最终效果。训练数据中的重复内容会导致三个核心问题计算资源浪费重复文本被反复处理消耗额外的 GPU/CPU 算力模型过拟合风险模型对重复内容产生记忆效应降低泛化能力评估失真测试集与训练集存在重复时评估指标虚高文本去重的本质是相似度检测——在海量文本中找出内容相同或高度相似的文档只保留代表性副本。当数据规模较小时精确比较尚可应对但当文档数量达到亿级别两两比较的 O(n²) 复杂度便成为不可承受之重这就需要更高效的算法方案。原有架构的瓶颈开源 Spark 去重之困该企业此前在原有云平台上构建了数据处理平台使用开源 Spark 集群运行 MinHash-LSH 去重算法。随着数据规模持续增长三个瓶颈逐渐显现。2.1 计算效率瓶颈开源 Spark 的执行引擎基于 JVM 采用行式row-based迭代模型逐行处理数据。在大规模 n-gram 分词和多组哈希这类计算密集型操作上逐行执行带来大量虚函数调用和对象封装/拆箱开销CPU cache 利用率低存在天然的性能瓶颈。更关键的是原方案的哈希逻辑以 Python UDF 实现数据需在 JVM 与 Python 进程之间跨进程传输、序列化与反序列化进一步放大了计算开销导致 CPU 算力无法充分释放。2.2 Shuffle 稳定性问题MinHash-LSH 算法中的 LSH 分桶和图连通分量计算阶段涉及大量 Shuffle 操作。在开源 Spark 环境下 Shuffle 稳定性问题经常发生——尤其在数据倾斜场景下容易出现任务超时甚至失败需要人工介入调优。2.3 运维成本高昂维护自管 Spark 集群意味着持续投入人力进行版本升级、资源调度和故障排查。随着业务规模扩大运维成本占比逐年攀升团队希望将精力聚焦于业务逻辑而非基础设施管理。痛点维度原有架构表现计算效率开源 Spark 无向量化加速Python UDF 跨进程开销大Shuffle 稳定性Shuffle 超时/失败运维成本自管集群需持续投入人力维护扩展弹性需手动扩缩容响应滞后技术方案MinHash-LSH 内置函数 Fusion Engine迁移至阿里云 EMR Serverless Spark 后该企业采用了一套全新的文本去重技术方案。核心由两大能力支撑将 MinHash-LSH 算法深度集成到 Spark Dataframe/SQL 引擎的内置函数以及提供向量化加速和Shuffle稳定性的 Fusion Engine。3.1 MinHash-LSH给每篇文档生成指纹身份证MinHash-LSH 是一种经典的近似相似性检测算法组合广泛应用于大规模集合相似度计算如 Jaccard 相似度。其核心分为两步第一步MinHash——生成签名向量将文本转换为 n-gram 集合后通过多组哈希函数生成紧凑的签名向量Signature。可以理解为给每篇文档发一张指纹身份证——原始文本可能数 KB但签名向量固定长度如 256 位保留了集合间的相似性特征后续比较只需对比签名而非全文。第二步LSH——分诊台快速分流将签名向量划分为多个band每个 band 单独哈希。高相似度的文档更可能落入同一哈希桶中只有落入同一桶的文档对才需要进一步比较。这相当于在医院分诊台快速将相似症状的患者分流到同一科室将 O(n²) 的全量比较降为近线性复杂度。Serverless Spark 通过两个内置函数实现这一能力minhash_lsh函数将输入文本分词后生成 MinHash 签名并按 bands 划分生成对应的哈希值列表。minhash_lsh(tokens: ARRAYSTRING,-- 分词后的词元数组perms_a: ARRAYBIGINT,-- MinHash 哈希函数组的乘数参数perms_b: ARRAYBIGINT,-- MinHash 哈希函数组的加数参数hash_ranges: ARRAYINT,-- Band 划分边界 [0, R, 2R, ..., B*R]ngram_size:INT,-- n-gram 大小长文本建议 5-9min_length:INT-- 输入 tokens 最小长度)-- 返回 ARRAYSTRING每个元素为对应 band 的十六进制哈希值build_lsh_edges函数对落入同一 LSH 桶的文档 ID基于最小节点连接策略生成边集用于后续图连通分量分析以聚类重复文档。build_lsh_edges(doc_ids: ARRAYBIGINT)-- 返回 ARRAYSTRUCTsrc: LONG, dst: LONG-- 示例桶内 ID 为 [1003, 1001, 1005] → 取最小 1001-- 生成边 (1001,1003) 和 (1001,1005)两个函数将算法逻辑下沉到引擎层开发者无需自行实现复杂的哈希逻辑代码量减少约 40%。minhash_lsh 和 build_lsh_edges 只是 Serverless Spark 内置函数生态的一部分。平台还内置了 ai_queryLLM 调用、ai_embedding_multimodal多模态 Embedding等 AI 函数可在同一 Spark SQL 会话、Spark任务中直接调用无需额外搭建推理服务。3.2 Fusion EngineSpark 原生向量化计算加速Serverless Spark 内置 Fusion EngineSpark Native Engine这是阿里云优化的向量化执行引擎相对开源版本性能提升 300%。在文本去重场景中Fusion Engine 带来三个关键优势向量化哈希计算MinHash 签名生成的大规模哈希运算在列式内存上按批向量化执行摊薄逐行处理的固定开销单条文档处理耗时显著降低消除 Python UDF 跨进程开销哈希逻辑以 C 内置函数在引擎内直接执行不再经 JVM 与 Python 进程间传输数据彻底省去跨进程序列化/反序列化成本Shuffle 稳定性优化针对存算分离架构进行了专门的 Shuffle 优化有效解决数据倾斜场景下的性能瓶颈在该客户的实际业务场景中取得了 4 倍性能提升的实测结果。迁移实践三步完成平滑迁移该企业的迁移过程分三个阶段稳步推进整体迁移成本可控。4.1 数据迁移将原始文本数据从原有云存储迁移至阿里云 OSS。Serverless Spark 原生支持 OSS-HDFS 协议完全兼容 HDFS 的云上存储确保数据访问的透明性与一致性。迁移过程中通过 checksum 校验确保数据完整性。4.2 代码迁移得益于 Spark API 的完全兼容性原有 PySpark 去重脚本迁移成本极低。核心改动仅需将数据读写路径替换为 OSS并引入minhash_lsh和build_lsh_edges内置函数替代原有自行实现的哈希逻辑。以下是关键代码片段# 1. 读取数据并生成 MinHash 签名hash_dfdf \.select(index_column,sf.split(sf.lower(text_column),patternSPLIT_PATTERN.pattern).alias(tokens))\.select(index_column,sf.minhash_lsh(tokens,a.tolist(),b.tolist(),HASH_RANGES_SLICE,ngram_size,min_length).alias(hashes))\.select(index_column,sf.posexplode(hashes).alias(band_idx,band_hash))# 2. 对同一 LSH 桶的文档生成边集edges_dfhash_df.groupBy(band_idx,band_hash)\.agg(sf.count(index_column).alias(cnt),sf.collect_list(index_column).alias(doc_ids))\.filter(sf.col(cnt)1)\.select(sf.build_lsh_edges(doc_ids).alias(edges))\.select(sf.explode(edges).alias(edge))\.selectExpr(edge.src as src,edge.dst as dst)# 3. 图连通分量分析聚类重复文档assignmentGraphFrame(vertices_df,edges_df).connectedComponents()# 4. 保留每个连通分量中 ID 最小的代表文档dfdf.join(assignment.select(sf.col(id).alias(index_column),sf.col(component).alias(__component__)),onindex_column,howleft)\.filter(sf.col(__component__).isNull()|(sf.col(__component__)sf.col(index_column)))\.drop(__component__)4.3 资源配置迁移至 Serverless 架构后无需再维护固定大小的集群。按需配置 executor 资源建议 4 CPU : 16 GB 内存比例系统自动完成资源的弹性分配与回收。配置项推荐设置说明spark.sql.shuffle.partitions10001TB 以下每增加 1TB 加 1000防止单 task 数据倾斜或 OOMspark.sql.files.maxPartitionBytes256MB控制读取阶段分片大小spark.rdd.ensureConfigConsistencytrue必填项确保 RDD 配置一致性spark.executor.cores / memory4 核 / 14GB 2GB overhead建议 4:16 的 CPU 与内存比例效果验证4 倍性能提升的业务价值迁移完成后该企业对同一批文本数据进行了去重性能对比测试。测试使用相同的 MinHash-LSH 算法参数num_perm256, threshold0.8, ngram_size5。指标原有架构Serverless Spark 新架构提升幅度去重任务总耗时1-2天数小时4-5 倍提升Shuffle 失败率频繁失败零失败稳定性大幅改善运维投入需专职团队近零运维Serverless 免运维以阿里云官方文档中的 fineweb-edu 数据集为例进行验证使用 sample/10BT 子集2.15GB727,000 条文档在 Serverless Spark 上运行 MinHash-LSH 去重最终去除 2,191 条重复项保留 724,809 条文档去重过程高效且准确。业务价值加速模型迭代语料清洗耗时缩短 75%数据准备周期从天级降至小时级降低计算成本Serverless 按量计费模式避免了闲置资源浪费释放团队精力无需关注集群运维团队聚焦数据质量优化与模型效果提升弹性应对峰值Serverless 架构可秒级弹性扩容无需提前规划容量FAQQ1MinHash-LSH 内置函数支持哪些引擎版本支持 esr-4.xesr-4.1.1 及之后、esr-3.xesr-3.1.1 及之后、esr-2.xesr-2.5.1 及之后版本。建议使用最新版本以获得最佳性能。Q2从原有云平台迁移到 Serverless Spark 的代码改动量大吗改动量很小。Spark API 完全兼容主要改动集中在数据读写路径替换和引入内置函数替代自行实现的哈希逻辑。根据该客户实践代码量减少约 40%。Q3Serverless Spark 适合多大规模的文本去重任务Serverless Spark 采用弹性伸缩架构可从 GB 级到 PB 级灵活适配。1TB 以下数据建议配置 1000 个 shuffle 分区每增加 1TB 增加 1000 个分区。Q4MinHash-LSH 去重的精度如何控制通过 num_perm签名长度、threshold相似度阈值和 LSH 的 B/R 参数组合控制。num_perm256 threshold0.8 是推荐的平衡配置可在召回率和精度之间取得良好平衡。Q5除了文本去重Serverless Spark 还能用于哪些大模型数据预处理场景Serverless Spark 面向 DataAI 场景设计还支持数据清洗、特征工程、向量计算、多模态数据处理等场景。内置 AI Function 能力允许在 Spark 作业中直接调用大模型实现端到端的数据处理流水线。总结文本去重是大模型语料清洗的核心环节也是数据质量保障的基础。该企业从原有云平台迁移至阿里云 EMR Serverless Spark 的实践表明通过 MinHash-LSH 内置函数与 Fusion Engine 向量化加速的深度协同文本去重性能可获得 4 倍提升同时彻底释放运维负担。核心优势概括如下少写代码— MinHash-LSH 算法逻辑封装为内置函数开发者无需自行实现哈希与图分析逻辑代码量减少 40%少调集群— Serverless 架构免运维无需关注版本升级、资源调度和故障排查跑得更快— Fusion Engine 向量化加速 Shuffle 稳定性优化实测性能提升 4 倍用得更稳— 零 Shuffle 失败弹性扩缩容应对数据峰值阿里云 EMR Serverless Spark 作为面向 DataAI 的高性能 Lakehouse 产品在 TPC-DS 100TB 基准测试中表现优异。无论是大模型语料清洗、数据湖分析还是 AI 数据预处理Serverless Spark 都是值得考虑的方案。了解更多产品文档https://help.aliyun.com/zh/emr/emr-serverless-spark/MinHash-LSH 去重方案https://help.aliyun.com/zh/emr/emr-serverless-spark/use-cases/minhash-lsh-based-large-scale-text-duplication-scheme

相关新闻

多无人机协同作业算法在农业植保中的优化与应用

多无人机协同作业算法在农业植保中的优化与应用

1. 项目背景与核心价值多无人机系统在农业植保领域的应用已经成为精准农业的重要技术支撑。2022年发表在BE SCI二区Top期刊的这项研究,针对作物保护场景中的无人机协同作业问题,提出了创新的任务分配算法。我在实际农业无人机项目中发现,传统…

2026/8/1 11:22:02 阅读更多 →
半迭代探索:平衡确定性与灵活性的工程实践

半迭代探索:平衡确定性与灵活性的工程实践

1. 项目概述:什么是半迭代探索半迭代探索(Semi-Iterative Exploration)是一种介于完全随机探索和系统化探索之间的实验方法。在我的工程实践中,这种技术特别适用于资源有限但需要快速验证假设的场景。与传统的瀑布式开发或纯敏捷开…

2026/8/1 11:22:02 阅读更多 →
3分钟学会使用Balena Etcher:安全烧录SD卡和USB驱动器的终极指南

3分钟学会使用Balena Etcher:安全烧录SD卡和USB驱动器的终极指南

3分钟学会使用Balena Etcher:安全烧录SD卡和USB驱动器的终极指南 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 你是否曾经因为烧录系统镜像而丢失重…

2026/8/1 11:22:02 阅读更多 →

最新新闻

AI直播实时渲染引擎的架构选型与性能调优

AI直播实时渲染引擎的架构选型与性能调优

背景/问题AI数字人直播的实时渲染是整个推流链路中延迟最大的环节。很多商家在部署AI直播时遇到画面卡顿、唇形不同步、渲染掉帧等问题,根因往往不在网络,而在渲染引擎的选型和配置。本文从技术角度拆解AI直播渲染引擎的核心架构和调优思路。技术原理AI数…

2026/8/1 12:01:14 阅读更多 →
Jetson Xavier NX边缘AI开发实战:从硬件解析到TensorRT模型部署

Jetson Xavier NX边缘AI开发实战:从硬件解析到TensorRT模型部署

1. 项目概述:边缘AI的“全能战士”如果你正在寻找一款能塞进无人机、机器人或者智能摄像头里,又能流畅跑起复杂神经网络模型的“大脑”,那么Jetson Xavier NX这个名字,你大概率已经听过很多遍了。它不是什么新概念,但在…

2026/8/1 12:01:14 阅读更多 →
3秒极速登录:米哈游游戏扫码登录器终极指南

3秒极速登录:米哈游游戏扫码登录器终极指南

3秒极速登录:米哈游游戏扫码登录器终极指南 【免费下载链接】MHY_Scanner MHY扫码登录器,支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner 在米哈游游戏的日常登录中,你是否厌倦了繁琐的扫码流程&#x…

2026/8/1 12:01:14 阅读更多 →
STM32驱动2.4寸SPI屏:从ILI9341基础到DMA优化实战

STM32驱动2.4寸SPI屏:从ILI9341基础到DMA优化实战

1. 从一块2.4寸屏说起:嵌入式开发的“老朋友”与新挑战如果你玩过STM32、ESP32或者树莓派Pico这类微控制器,那么对2.4英寸的TFT LCD屏一定不会陌生。它几乎是嵌入式图形界面入门和中小型项目显示的“黄金尺寸”:足够显示几行菜单、一些传感器…

2026/8/1 12:01:14 阅读更多 →
从Arduino到STM32:SPI LCD驱动与DMA优化实战指南

从Arduino到STM32:SPI LCD驱动与DMA优化实战指南

1. 项目缘起:从“点灯”到“显示”的跨越如果你玩过Arduino或者STM32,第一个项目大概率是“点灯”——让一个LED闪烁。这确实是电子世界的“Hello World”,它验证了硬件连接、代码烧录和最基本的GPIO控制。但当你成功点亮第一个LED后&#xf…

2026/8/1 12:01:14 阅读更多 →
Backtrader-PyQt-FinPlot:开源量化回测平台的技术架构深度解析

Backtrader-PyQt-FinPlot:开源量化回测平台的技术架构深度解析

Backtrader-PyQt-FinPlot:开源量化回测平台的技术架构深度解析 【免费下载链接】backtrader-pyqt-ui 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader-pyqt-ui Backtrader-PyQt-FinPlot项目构建了一个基于PyQt5和FinPlot的专业级量化交易回测平台…

2026/8/1 12:00:14 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →