自定义嵌入模型对于有效的信息检索至关重要,尤其是在处理法律文本、病历或多轮客户对话等特定领域的数据时。通用、开放领域模型通常难以捕捉此类专业内容的细微差别和结构。
对话式 AI 产品分析平台 Coxwave Align 正在使用 NVIDIA NeMo Curator 构建特定领域的高质量数据集,以微调嵌入模型。这种定制改进了查询和文档之间的语义对齐,在检索准确性方面优于开源和闭源替代方案。
这些经过微调的嵌入被集成到 Coxwave 的 Retrieval-Augmented Generation (RAG) 工作流中,作为检索器组件的基础。增强型检索器会生成更相关的候选文档,然后在到达生成步骤之前将这些文档传递给重排序器进行更深入的评估。
与直观的“更多数据等于更好的性能”方法相反,Coxwave 发现严格的数据 curation 远比仅仅增加数据集大小更有效。与训练时间缩短 6 倍相比,在预处理和删除冗余模式方面投入的时间微乎其微,而生成的模型显示出更好的泛化,并减少了对类似对话结构的过拟合。
虽然微调带来了潜在的延迟和可扩展性权衡,但仔细的数据管护使 Coxwave 团队能够使用更小的优化模型。这缩短了推理时间,减少了需要重新排序的文档,使系统在生产中既准确又高效。
在这篇博客文章中,我们介绍了 NeMo Curator 功能,Coxwave 团队使用这些功能构建数据处理工作流并整理高质量数据。本文启发了其他企业和开发者思考各种决策,对嵌入模型进行微调,以提高多轮检索系统的整体准确性。
检索多轮对话
Coxwave Align 是一款适用于对话式 AI 应用的高级分析引擎。它可以帮助团队分析对话以确定用户何时感到满意或不满意,识别对话中可能带来新收入机会的模式,并了解一些用户进行更长对话的原因,以便通过数据驱动的见解改进产品。
与用于在静态文档中搜索的传统信息检索 (IR) 系统不同,其模型针对动态对话历史记录中的搜索进行了专门优化。这一领域的转变带来了独特的挑战:对话式数据的结构、语义和流与传统文档的结构、语义和流不同,而用户查询的格式往往反映了这种差异。因此,传统的 IR 技术在应用于对话数据时存在缺陷。
为了应对这些挑战,Coxwave 对其检索模型进行了微调,以便更好地理解对话语境、意图和回合制对话的细微差别。为此,他们使用 NVIDIA NeMo Curator 为这些对话式用例定制了一个高质量、特定领域的数据集。

他们的方法超越了获取最相关响应的简单检索方法。相反,他们的 embedding models 会从不同的对话周期和片段中检索前 K 个最相关的数据点。该系统可以分析和合成多个交互点的信息,为复杂查询创建更全面、更符合上下文的响应。
例如,假设用户请求产品支持聊天机器人:
“为什么我的账单没有显示上个月的折扣?”
然后,系统会识别并检索多个相关对话回合中的信息,即最初讨论折扣的回合、包含billing cycle policies的阶段以及确认资格的回合。通过合成这些对话片段中的知识,系统可以构建对跨多个交互点的复杂上下文相关查询的全面响应。
整理高质量数据以进行微调
如图 2 所示,Coxwave 的团队从大约 240 万个对话数据样本 (约 9.1 GB) 开始,其中包含开源对话数据和合成对话。该团队使用 NeMo Curator 功能 (例如精确重复数据删除、模糊重复数据删除、质量过滤和语义重复数据删除) ,通过分步过滤来系统地完善数据。最后,该团队整理并删除了约 76% 的数据,并整理了 605,000 个高质量对话样本。

“借助 NeMo Curator,我们能够高效处理数据,并针对嵌入模型定制量身打造高质量数据集,准确率提高了约 12%。训练数据大小的减少将我们的训练时间缩短了 6 倍 (从 32 小时缩短到仅 5 小时 6 分钟到 6 小时) ,显著提高了模型的收敛速度,并节省了 80% 的计算成本,”在 Coxwave 的 AI 研究团队负责人 Sangyeop Kim 说道。
让我们更详细地了解每个步骤:
精确和模糊的重复数据删除
NeMo Curator 重复数据删除模块在预处理 (清理) 大型对话式数据集方面发挥了至关重要的作用。其中,准确和模糊重复数据删除在识别细微变化的对话方面表现出色,这通常是由提示工程或 rephrasings 引起的。准确重复数据删除模块通过对每个文档进行哈希处理并在每个哈希中仅保留一个文件来高效识别和删除相同文档,而模糊重复数据删除模块通过计算 MinHash 签名和采用 locality sensitive hashing (LSH) 来检测具有高 Jaccard 相似性的文档,来识别和删除近乎重复的文档。
通过使用精确和模糊的重复数据删除,Coxwave 团队过滤掉了约 5% 的数据 (从 2.47 到 2.35 million 次对话)。
语义重复
・NeMo Curator 语义重复数据删除模块通过使用嵌入和聚类技术,识别和删除语义相似的文档 (即使它们并非完全匹配) ,从而提高数据集质量。NeMo Curator 使用 RAPIDS 库加速 GPU 上的精确、模糊和语义复制,显著缩短数据处理时间。
通过使用语义重复,Coxwave 团队删除了大约 57% 的过滤数据。
质量过滤
为了整理高质量数据,Coxwave 团队使用了 NeMo Curator Quality Classifier,这是一种文本分类模型,可将文档分类为“高”、“中”或“低”质量。通过质量过滤,数据进一步从 1.08 万次过滤到 610,000 次高质量对话
启发式过滤
最后,Coxwave 团队利用 heuristic filters 来消除包含过多标点符号、URL 和重复信息的对话,并删除 5,000 次对话,过滤了 605,000 次高质量对话。
合成数据构建
使用 605,000 左右的对话,该团队为每次对话生成了 5 个合成查询 (2 个正查询和 3 个硬负查询),从而创建了 3,000,000 个查询对话对。该团队通过检查每个查询与其对应对话之间的关系,专注于验证这些查询对的质量。通过此验证过程,他们将最初的 3,000,000 对筛选为 2,500,000 对高质量的查询对话对,并通过了对最终数据集的全面质量测试。
所使用的工作流 Coxwave 只是其中一个示例。企业可以通过选择最适合其目标和工作流程的 NeMo Curator 的各种功能来定制自己的功能。请注意,在许多企业中,可能没有足够的数据来评估和定制 RAG 系统。为了解决这一问题,NeMo Curator 团队提供了用于评估和微调 RAG 流程的合成数据生成流程。查看博文。
结果
通过使用包含 1500 个查询和 9100 个对话的测试集,Coxwave 团队评估了他们的微调模型,使用 NDCG@10 来衡量排名质量,并使用 Recall@10 来衡量检索到的相关结果的数量。然后,他们将结果与领先的开源和专有嵌入模型进行比较。结果令人印象深刻,微调后的模型的表现优于所有对比模型。
图 3 显示了一个条形图,其中比较了微调嵌入模型与跨各种阈值的其他模型的准确性。对于这两个指标,微调后的模型的性能比下一个最佳替代方案要高 15-16%。

由于精选数据较小,模型训练时间缩短了约 6 倍,从处理未处理数据的 32 小时缩短到 5 小时。训练损失也大大降低,振幅范围和间隔相对较小,从而实现了稳定的训练。

开始使用
总之,Coxwave 团队使用 NeMo Curator 来整理高质量对话式数据,以便自定义嵌入模型,与下一个最佳替代方案相比,准确率提高了 15%。NeMo Curator 还帮助减小了数据大小,进而将训练时间缩短了 6 倍。
如需详细了解 NeMo Curator 的数据处理功能以及如何在数据工作流中使用这些功能,请查看以下链接。
- 使用合成数据评估和增强 RAG Pipeline 性能
- NeMo Curator 开发者页面
- NeMo Curator GitHub – 别忘了添加资源库中的明星,以便接收更新、访问教程并贡献代码到 repo。