首页 文章 精选 留言 我的

精选列表

搜索[LLM],共2533篇文章
优秀的个人博客,低调大师

SLS 脱敏函数实践:构建 LLM 应用数据输出的安全防线

作者:孙玉梅 注:本文数据都为模拟生成。 引言 过去两年,电商客服、工单、物流等环节的自动化正急速推进。一个智能助手可以同时处理上百条退款请求、物流查询、账单追踪;它不知疲倦地与用户对话,也在后台不停调用接口、记录日志、汇总报表。在这些自动化交互中,隐藏着大量敏感数据: 用户咨询里可能出现手机号、订单号、收货地址; 后端业务日志中常常包含银行卡号、接口 IP、账户 ID; 工单流转过程中甚至会附带内部 Token、用户名。 这些信息若在系统内未经处理地流转、存储或导出,不仅违反数据最小化原则,更可能在调试、共享或导出日志时意外泄露。然而,现实场景中我们又无法简单地"少打日志"或"去掉字段"。日志是运维排障的工具,是运营分析的基础,也是安全审计的依据。 本文将以一个电商 Copilot Demo 为例,展示如何借助阿里云日志服务(SLS)的脱敏函数,在不改变业务逻辑的前提下,确保系统中的敏感数据隐私安全。 方案全景:智能化与数据安全的融合 整体设计 系统的上层编排由 Dify 平台完成,Dify 负责协调用户输入、意图识别、调用后端服务以及生成回复,是整个 Copilot 系统的中枢。 但在实践中发现一个关键问题,Dify 自身的数据链路观测并不细粒度,主要体现在: 平台主要提供节点级执行日志; 但对下游 API 调用、异常堆栈、耗时分布的观测有限; 出现故障时,Dify 内置日志往往不足以支撑排障与审计。 因此,选择在 Dify 服务部署侧通过 LoongCollector 采集服务日志,通过 LoongCollector 将日志统一推送到 SLS LogStore。 数据流: 采集来源统一,同时采集 Dify 编排日志、后端服务日志、系统标准输出,并以固定的日志格式输出,完整的数据流转时序图如下: 写入脱敏: 通过写入处理器配置 SPL 脱敏(mask)函数,确保敏感字段在入库时已被打码。 使用层: 不管是运维、运营或者安全同学,都可以基于脱敏的 Logstore 数据做可以做相关业务分析。 日志链路 数据采集 LoongCollector [ 1] 作为一款轻量级日志采集工具,支持采集主机文本日志、Kubernetes 集群容器日志、HTTP 数据等不同的数据源,当前 Copilot Demo 日志以 JSON 格式打印在主机日志目录中,此处接入单行文本日志即可: 配置日志所在的文件路径: 写入脱敏 SLS 提供的 mask(脱敏)函数,支持内置和关键字匹配两种模式,能高效、精准地识别并脱敏日志中的敏感信息: 内置匹配(buildin): mask 函数开箱即用,内置了对常见 6 种敏感信息(如手机号、身份证、邮箱、IP 地址、座机电话、银行卡号)的识别能力。 关键字匹配(keyword): 智能识别任意文本中符合 "key":"value"、'key':'value' 或 key=value 等常见 KV 对格式的敏感信息。 针对文中电商 copilot 日志,在对应的 project 中新建数据处理器(配置下图 SPL 配置),即可智能识别并对 IP 地址、邮箱等敏感内容进行脱敏。其中手机号、身份证号、信用卡号、姓名以及地址信息,定制化地保留前后缀。详细配置介绍可参见《无需复杂正则:SLS 新脱敏函数让隐私保护更简单高效》。 配置写入处理器使任务生效:选择待应用的 logstore,在写入处理器 tab 中应用上面新建的处理任务。 脱敏前后日志对比 对比脱敏前的数据可以看到: 按需保留,安全与可用性兼顾: 针对不同敏感字段,可定制化保留前后缀字符。手机号保留前三后四位,既保护了用户隐私,又方便运维人员进行问题排查和用户身份核验,在保障安全的同时兼顾了数据可用性。 配置极简,无需正则: 关键字匹配模式下,即使数据嵌套多层 JSON 结构,也只需配置最内层的 Key 即可精准匹配 Value 进行脱敏,同时无需编写复杂的正则表达式来兼容各种 key:value 对格式,大大降低了配置难度。 中文精准脱敏: 姓名与地址精确按照配置的规则进行打码,避免因编码问题导致脱敏失效。 此外,mask 函数相较于使用正则表达式进行脱敏,在性能上具有显著优势,可有效降低日志处理延迟,提升整体性能。尤其是在复杂或者数据量巨大的场景下,性能优势更为明显。 使用层日志分析 数据脱敏让同一份日志呈现出三种"视角": 运维看到调用链与性能瓶颈,却看不到隐私; 运营看到趋势、效率与体验,却看不到个体; 安全看到策略执行与留痕证据,却无需担心遗漏。 在这套体系中,数据不再是一座孤岛,而是一套有边界的智能资产,数据合规、分析、排障三者可以并行。 运维工程师:定位 对于运维团队来说,以往排障往往依赖包含用户手机号、地址、账户号的明文日志,这在合规上存在高风险。现在,脱敏后的日志让这一过程从源头安全化,在问题定位场景中通过 trace_id 检索即可复原整个调用链: 从 Copilot 的意图识别开始; 到订单服务 → 退款服务 → 第三方支付网关; 再到返回结果与耗时。 需要核对用户身份时,日志里只保留了脱敏后的银行卡号、手机号等信息,足以和业务侧"同一用户"比对,而不会暴露原值。即便是跨团队协查,也能直接在脱敏日志上定位问题,避免泄露风险。 运营团队:分析 报表的价值在于发现整体趋势,而非窥探个人信息。在脱敏运营报表中,用户信息已匿名化处理,仅保留关键业务指标,助力团队从数据中挖掘洞察。 从这份报表中,运营团队可以快速了解: 整体概况:UV、PV 等关键指标,Copilot 交互次数,以及咨询总量,快速掌握运营概况。 咨询分类:退款、商品、物流咨询占比,清晰了解用户关注点。 问题分类:掌握用户提问的侧重点,如功能、价格、规格等。 重复咨询率:衡量服务质量,快速定位需要优化的环节。 用户行为:咨询后购买转化漏斗,以及热门咨询关键词,助力优化产品和营销策略。 重点用户:Top 10 咨询用户,虽然用户信息脱敏,但可通过 VIP 等级和咨询次数,制定差异化服务策略。 此外,报表中所有用户信息都经过脱敏处理,电话号码、姓名等个人信息均被掩码,确保无法反推到具体用户,充分保障用户隐私。 安全与合规团队:审计 对安全与合规团队而言,日志的最大风险在于"存量明文"。本文中的脱敏方案将脱敏前置:数据在写入前已被处理,这从根本上消除了敏感数据脱敏覆盖不全与导出明文数据的可能。此外,SLS 还提供完善的合规支撑能力: 数据存储:支持自定义日志存储时间,对网络审计相关日志设置>180 天的存储天数,满足安全审计要求。 数据操作审计:日志使用过程中会存在用户级操作行为,这些不管是管控层面的控制台操作、OpenAPI 调用,或者数据面的业务日志使用,任何人查看、分析、导出日志,都只在授权范围内看到应当看到的内容。同时 CloudLens for SLS [ 2] 还提供 Project、Logstore 的资产使用监控。 小结 当 LoongCollector 的日志采集与 LogStore 的数据脱敏连成闭环,日志在落库同时完成安全转化。运维能定位,运营能分析,安全能审计。这不是一次性的加固,而是一条可复用的路径:写入侧脱敏 + 默认脱敏落库 + 角色化访问。以此为基线,企业能放心扩展 Copilot 的业务覆盖,让"效率红利"与"合规确定性"并行存在。 相关链接: [1] LoongCollector https://help.aliyun.com/zh/sls/what-is-sls-loongcollector [2] CloudLens for SLS https://help.aliyun.com/zh/sls/cloudlens-for-sls/

优秀的个人博客,低调大师

LLM 分布式训练六大关键技术介绍

编者按: 本文聚焦于分布式去中心化神经网络训练技术,作者系统阐述了在大规模模型训练中提高硬件使用效率的创新方法。 文章重点阐述了六种关键的分布式训练技术: 数据并行训练:通过将数据 mini-batches 分散到多个 workers,实现并行梯度计算和高效训练。 Butterfly All-Reduce:通过创新的数据分割和汇总方法,有效降低通信成本。 Gossip-Based Averaging:去中心化的通信策略,提高系统的容错性和可扩展性。 Moshpit Gradient Descent:允许 workers 在小型独立组内进行梯度平均,增强训练的容错能力。 DiLoCo:创新的内外优化算法,结合局部和全局参数更新,平衡收敛速度和系统性能。 SWARM:引入动态任务分配和容错机制,优化异构硬件环境下的资源配置。 作者 | Robert Lange 编译 | 岳扬 随着人工智能技术的发展进步,训练大规模神经网络(包括大语言模型)变得越来越重要。这些模型的规模和复杂度不断提升,不仅增加了训练的成本和能耗,也迫切要求我们提高硬件使用效率。为了应对这些挑战,研究人员和工程师们正在探索分布式去中心化训练方法。本文将探讨多种分布式训练技术,例如数据并行训练方法和 Gossip-Based Averaging 方法,展示这些技术如何在满足该领域不断增长的需求的同时优化模型训练效率。 一幅以简约日式风格绘制的GPU集群图,图中加入了很多小型 GPU(由 OpenAI 的 Dallé-3 API 生成) 01 数据并行训练技术、全归约操作与节点同步 数据并行训练技术通过将数据的 mini-batches 分散到多个工作节点(workers)上,实现了高效的训练。这种方法不仅加快了训练进程,因为多个 workers 可以并行计算梯度,而且还使得我们可以处理比单个设备更大的 batch sizes。为了保持所有 workers 之间的模型更新同步,我们采用了全归约操作。该操作会将所有 workers 的梯度汇总并求平均值,然后统一更新模型,确保整个分布式系统中的模型保持一致。 以下是用 PyTorch 在 Python 中展示这一过程的一个简单示例: 全归约操作之外,还有一种方法是使用参数服务器(parameter server)。在这种架构中,中央服务器负责收集梯度信息并监控优化器的状态。虽然这样做可以简化同步过程,但同时也存在单点故障的风险,并有可能成为系统性能的瓶颈。 分布式训练中,Hogwild(Recht et al., 2011)[1]是另一项著名的技术。它采用异步更新模型参数的方法,无需所有计算节点同步即可进行。这种方法不仅适用于监督学习,也适用于强化学习(RL)场景,如异步演员-评论家算法(A3C, Mnih et al., 2016)[2]。在 A3C 中,多个智能体可以同时与环境互动,并基于各自的经验异步更新同一个模型。这样做不仅提高了资源的使用效率,还能通过多个智能体的不同经验加快收敛速度,从而提高在复杂环境中的性能。 除了数据并行训练方法,还有模型并行和管道并行等其他并行训练方法(详见 Llian Weng 的博客[3])。模型并行是将模型分割到多个计算设备上,使得模型的不同部分可以同时处理,这对于那些单个设备无法承载的超大型模型尤其有用。而管道并行则是将模型分为几个阶段,各个 mini-batches 数据依次通过这些阶段进行处理,这样做可以实现计算与通信的并行,从而提高训练的整体效率和吞吐量。这些技术互为补充,共同优化了大规模训练场景下的资源利用。 02 Butterfly All-Reduce Butterfly All-Reduce(Zhao和Canny,2013)技术有效地解决了传统全归约方法所面临的挑战。在这种技术中,每个参与的节点(共 N 个)都会将其本地数据分割成 N 份。然后,第 i 个节点会收集所有其他节点发来的第 i 份数据,进行汇总后,再平均分配回各个节点。 这种方法大幅降低了通信的负担,并提升了系统的可扩展性。 在分布式训练中,所谓的"world size"是指参与训练的总进程或设备数。这个参数对于决定如何在各个节点间聚合和同步数据起到了关键作用。 以下是对 Butterfly All-Reduce 技术的一个概念性实现示例: 这段代码展示了 butterfly all-reduce 技术如何在保持分布式系统同步的同时,有效利用并行处理的优势。 butterfly all-reduce 方法的优势在于,与传统的全归约技术相比,它能够显著降低通信成本,并且具有更好的可扩展性,因此非常适合用于大规模分布式系统。然而,这种方法也存在一些不足之处。例如,其实现过程较为复杂,性能可能会受到通信网络拓扑结构和网络状况的影响。另外,如果参与节点中的任何一个发生故障,可能会对整个系统的同步过程造成影响。 在某些特定的应用场景,尤其是联邦学习中,训练过程需要能够适应不稳定的网络带宽和不可靠的工作节点。联邦学习尤为复杂,因为它涉及多个持有敏感隐私数据的独立参与节点。这些情况要求我们必须采用稳健的策略,以确保模型训练的可靠性。接下来,我们将探讨一些方法,这些方法的目的是平衡收敛速度和系统的容错能力。 03 Gossip-Based Averaging gossip-based averaging(Boyd等人,2005年)是一种去中心化的通信策略,其中的参与节点构建了一个稀疏的通信网络。每个节点定期从邻近节点获取参数,并将其与自己的本地参数进行结合。这种方式减轻了参数服务器(parameter servers)带来的通信压力,但也意味着每个节点可能会使用不同的本地参数进行计算。 gossip-based averaging 的收敛特性深受通信网络结构的影响。以下是一个简单的 gossip-based averaging 实现示例: gossip-based averaging 具有以下优势: 减少通信瓶颈:由于不需要集中的参数服务器,gossip averaging 大幅降低了通信拥堵,使得参数更新更加高效。 可扩展性:这种方法的去中心化特点使得它在扩展性方面表现出色,能够轻松应对参与节点数量的增加,而不会产生过多的额外开销。 容错性:分布式的设计提升了系统的容错能力,即使有 worker 出现故障,也不会中断整个训练过程;其他 workers 仍可以继续通信和更新参数。 然而,我们也需要注意到这种方法可能带来的几个不足之处: 收敛速度降低:与集中式更新方法相比,gossip averaging 的收敛速度可能会较慢,因为参数的聚合并不频繁,每个 worker 可能需要基于不太新的数据进行计算。 参数更新存在分歧:由于每个节点使用的是不同的本地参数,这可能会导致参数更新存在分歧,进而影响收敛的稳定性和速度。 依赖通信图:gossip averaging 的效果在很大程度上受制于通信图的结构。如果图的连通性不佳或者结构不平衡,可能会影响到算法的整体性能。 综合来看,尽管 gossip-based averaging 这种去中心化的参数更新方法具有很大的潜力,但在实际应用中,我们需要根据具体的训练场景,权衡其利弊。 04 Moshpit Gradient Descent Moshpit Gradient Descent(Ryabinin et al., 2021)[4]方法进一步发展了去中心化训练的理念,它允许 workers 在小型且独立的组内进行梯度平均。这种设计意味着,即使某个参与节点出现问题,影响的也仅限于其所在的小组,从而提高了整个训练过程的容错性,避免了全局训练的中断。 这些小组的动态构建对于保证训练的有效性至关重要。通过优化小组结构,该方法大幅减少了达到收敛所需的步骤数,因为 workers 可以在较小的团队内更高效地交换和更新梯度信息。这种自适应的分组策略有助于更好地利用现有资源,并在不同的网络环境下实现更优的性能表现。 以下是一个实施 moshpit gradient descent 的概念性框架: moshpit gradient descent 的优势包括: 容错性:个别 worker 的故障只会影响其所在的小组,不会波及整个训练过程,其他小组可以继续正常训练。 资源利用效率:在较小的小组内进行更新,该方法能够灵活应对网络状况和 worker 可用性的变化,从而提升训练效率。 降低通信负担:由于通信仅限于小组内部,整体的通信量得以减少,这在带宽受限的情况下尤为有利。 然而,这一方法也存在一些不足之处: 收敛难题:小组结构的不断变化可能导致参数更新出现不一致,可能会使得训练的收敛和稳定性面临挑战。 管理复杂性增加:对小组进行动态管理和调整,无疑增加了训练流程的复杂性。为了找到最佳的小组配置,我们需要开发更复杂的机制。 可扩展性问题:较小的小组虽然有助于提高系统的容错性,但如果没有有效的管理,这种方法在大规模训练场景中的可扩展性可能会受限。 综合来看,moshpit gradient descent 作为一种去中心化训练的新方法,其潜力不容小觑。它在容错能力和资源利用效率上的优势,与面临的收敛难题和实施复杂性之间,实现了微妙的平衡。 05 DiLoCo: Inner-Outer Optimization DiLoCo(Douillard等人,2023年)[5]带来了一种创新的 inner-outer 优化算法,旨在提高去中心化训练的效率。在这种算法中,每个计算节点在内部优化阶段,会利用局部的 AdamW 优化器进行多次参数更新。这样的设计让节点能够基于局部数据独立优化参数,而不必实时与其他节点同步。当完成了一定量(通常是500次左右的)局部更新后,便进入外部优化阶段,此时会同步所有节点的伪梯度(这些梯度是局部更新结果的汇总)。 这种做法巧妙地结合了局部和全局更新的优势,有望加快收敛速度并提升训练表现。DiLoCo 通过让节点先在局部优化参数,再与全局模型同步,充分发挥了两种更新策略的长处。 以下是对 DiLoCo 更新过程的概念性描述: DiLoCo 最初由 Google DeepMind 实现,而现在一家新兴的初创公司 PrimeIntellect 也成功复现了这一方法。OpenDiLoCo(Jaghouar等人,2024年)[6]已在 GitHub[7] 上公开,借助 Hivemind 库[8]训练了一个 10 亿参数的模型。最近,PrimeIntellect 推出了自家研发的定制化基础设施[9],其中包含了诸多工程创新,如定制的 all-reduce 算法和通信协议。该公司目前正在训练一个名为 Intellect-1[10] 的 100 亿参数模型。我相信这项实验的结果将对我们突破现有模式产生深远影响。目前,大模型的训练还依赖于集中的计算资源。但未来,或许每个人都能为打造下一代领先的基础模型贡献力量。 06 SWARM: Fault Tolerance and Dynamic Task Assignment SWARM 算法(Ryabinin等,2023年)[11]引入了一种新颖的分布式训练方法,允许每个工作节点在训练过程的后续阶段将其输出发送给其他工作节点。这种灵活的任务分配方式,使得计算能力较强的设备能够承担更多任务,从而在多样化的硬件环境中实现资源的最优配置。这种策略在计算资源波动较大的场景下尤为有效,可实现更均衡的工作量,减少闲置时间。 面对工作节点的故障,SWARM 算法展现了其容错能力,能够迅速将故障节点的任务转交给其他正常运行的节点。这一机制对于维持训练流程的连贯性至关重要,它有效减少了意外中断的影响,并确保了处理能力的及时补充。工作节点间的通信路径是随机且动态调整的,这使得算法能够根据网络状况或节点状态的变动实时调整。 通过这种自适应的通信方式,不仅数据流转更加高效,训练过程的稳定性也得到了加强。下面是 SWARM 通信实现方式的简化示例: 在这个示例中,每个活跃的工作节点随机选取一个相邻节点作为信息传递的对象,这样的去中心化交流模式能够实时适应当前系统的状态。SWARM 算法以其动态任务分配和强大的容错能力,在大规模机器学习场景中显著提高了分布式训练的效率和可靠性。 07 Conclusion 分布式去中心化训练为高效训练大规模神经网络提供了一个强有力的支撑。借助数据并行训练方法、butterfly all-reduce、gossip-based averaging 等手段,从业人员能够在各种环境中应对模型训练的难题。对于任何想要优化大规模 AI 系统性能的人来说,掌握这些技术至关重要。随着该领域研究的不断深入,了解这些方法将是发挥分布式训练全部实力的关键。本文并非涵盖所有分布式训练方法和最新研究进展,而是提供一个粗略的概览------因此,还请读者自行探索更多技术细节🤗。 Thanks for reading! Hope you have enjoyed and learned new things from this blog! About the authors Robert Lange Deep Learning PhD @TU Berlin. Research Scientist @Sakana.AI. ✍️ 2x Google DeepMind Intern END 本期互动内容 🍻 ❓在分布式训练中,您认为最大的技术瓶颈是什么?是通信开销、收敛速度、还是系统的容错性,或是其他? 🔗文中链接🔗 [1]https://proceedings.neurips.cc/paper_files/paper/2011/file/218a0aefd1d1a4be65601cc6ddc1520e-Paper.pdf [2]https://arxiv.org/abs/1602.01783 [3]https://lilianweng.github.io/posts/2021-09-25-train-large/ [4]https://openreview.net/pdf?id=cwWfDHYpb1z [5]https://arxiv.org/abs/2311.08105 [6]https://arxiv.org/abs/2407.07852 [7]https://github.com/PrimeIntellect-ai/OpenDiLoCo [8]https://github.com/learning-at-home/hivemind [9]https://github.com/PrimeIntellect-ai/prime [10]https://www.primeintellect.ai/blog/intellect-1 [11]https://arxiv.org/abs/2301.11913 原文链接: https://towardsdatascience.com/distributed-decentralized-training-of-neural-networks-a-primer-21e5e961fce1 询问AI

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册