百行代码实现 Kafka 运行在 S3 之上

企业级数据湖设计:分层契约、云原生架构与嵌入式治理 数据湖不是简单的海量存储,而是面向可发现、可理解、可信任、可审计、可服务五大能力的企业级数据供应链重构。其核心原理在于分层契约制——原始层保真、清洗层定义业务语义、整合层实现即插即用,配合Iceberg等现代表格式提供的ACID事务与时间旅行能力,解决传统Hadoop生态中存储计算耦合、元数据割裂与弹性失能等顽疾。技术价值体现在加速BI取数、支撑实时特征供给、满足GDPR/等保合规审计。典型应用场景覆盖金融风控建模、制造IoT时序分析、医药多模态临床数据治理。本文聚焦Data Lakes落地中的分层契约设计 阅读详情

01

TL;DR

是的,你没有看错。AutoMQ[1] 当前已经支持完全构建于像 S3 这样的对象存储之上。你可以参考快速上手[3] 即刻开始体验。AutoMQ 在已有的流存储引擎之上仅仅通过对顶层 WAL 的抽象进行拓展实现少量代码即可做到一些友商引以为傲的的特性,即将流系统完全构建于像 S3 对象存储之上。值得一提的是,我们也已经将这部分源码完全公开,开发者可以利用 S3Stream[2] 流存储引擎轻松在自己的环境中拥有一个完全部署在对象存储之上的 Kafka 服务,具备极低的存储成本和运维复杂度。AutoMQ 核心的流存储引擎可以如此轻松的完成这项能力和其围绕 WAL 与 共享存储架构设计的优秀流存储顶层抽象是分不开的。也正是基于这套优秀的顶层抽象我们实现了极具创新的 S3Stream[2] 流存储引擎。在这篇文章中,我们将与你分享 AutoMQ 共享流存储引擎的设计细节、背后的思考以及演进的过程。看完前面的内容,你也会真正明白为什么我们说只需要百行代码即可实现将 Kafka 运行在 S3 之上。

02

从共享存储架构启航

在十几年前,Kafka 诞生于一个以 IDC(Internet Data Center)为主要场景的时代。当时的计算和存储资源通常是紧密耦合在一起的,形成了一种存算一体化的 Share-Nothing 架构。这种架构在当时的物理数据中心环境中非常有效,但随着公有云技术的成熟,这种架构的局限性也逐渐显现出来。存算一体的 Share-Nothing 架构由于计算存储强耦合,没有办法将存储层彻底解耦出来将持久性、高可用等能力卸载给云存储服务。这也意味着 Share-Nothing 架构无法发挥成熟的云存储服务规模化的技术和成本红利。此外,存算一体的架构也使得 Kafka 缺乏弹性、难以扩展。Kafka集群进行容量调整时,将涉及大量的数据复制。这会影响其容量调整的效率,并且在容量调整期间还将影响正常的读写请求。AutoMQ 致力于充分发挥云的优势,贯彻 Cloud-First 的理念,通过共享存储架构,AutoMQ 将数据的持久性解耦出来卸载给了像 S3、EBS 这样成熟的云存储服务,可以充分挖掘了这些云存储服务的潜力。Kafka 因为 Share-Nothing 架构带来的缺乏弹性、成本高昂、运维复杂等问题在 AutoMQ 全新的共享存储架构实现下都不再成为一个问题。

03

集成流存储顶层抽象:Shared WAL + Shared Object云的步骤

AutoMQ 共享存储的核心架构是  Shared WAL 和 Shared Object。在这套共享存储架构抽象下我们可以有各种不同的实现。通过 Shared WAL 的抽象我们可以将这种 WAL 实现迁移到任何共享存储介质上,享受不同共享存储介质本身带来的优势。熟悉软件工程的读者一定知道,任何软件设计都有 trade-off,不同的共享存储介质随着他们的 trade-off 变化也会带来不同的优点和缺点。而 AutoMQ 基于 Shared WAL  的这种顶层抽象让我们以不变应万变。AutoMQ 可以将这种 Shared WAL  的实现自由迁移到任何共享存储服务之上,甚至还可以将他们组合在一起。Shared Object 则主要构建于云上成熟的对象存储服务,可以享有极低的存储成本,享受云对象存储服务规模化的技术成本红利。随着 S3 API 成为对象存储协议的事实标准,AutoMQ 也可以通过 Shared Object 去适配各种不同的对象存储服务,为用户提供多云存储的方案。Shared WAL 则可以适配像 EBS 、S3E1Z 这样的各种低延迟的存储介质,为用户提供低延迟的流服务。

云上最佳 Shared WAL  实现:EBS WAL

WAL 最早是应用在关系数据库中,为了实现数据原子性和一致性。随着像 S3、EBS 这样的云存储服务的成熟,将 WAL 结合低延迟存储再将数据异步写入到 S3 这样的低成本存储中则可以兼顾延迟和成本。而 AutoMQ 则是在流领域首个基于共享存储架构来这样使用 WAL 的玩家,将不同云存储的优势都一起彻底的发挥了出来。我们也认为,EBS WAL 这种实现是云上流存储引擎的最佳实现,因为其将 EBS 低延迟、高持久的优点和对象存储低成本的优点全部结合在了一起。并且通过巧妙的设计,规避了 EBS 昂贵的缺点。下图是 EBS WAL 的核心实现流程:

  1. Producer 通过 S3Stream 流存储引擎将数据写入 EBS WAL。落盘成功后立即返回客户端成功。充分利用了 EBS 低延迟、高持久的特征。

  2. 对于刚写入的数据消费者可以直接从缓存中读取

  3. 缓存中的数据在异步批量、并行地写入 S3 以后则会失效

  4. 消费者如果需要读取历史数据则直接从对象存储上进行读取

一种常见的误解在于将这种构建于 EBS 上的 Shared WAL 与 Kafka 的分层存储弄混。其实主要区别他们的方式很简单,即判断计算节点 Broker 是否为彻底的无状态。对于 Confluent、Aiven 实现的分层存储来说,他们的 Broker 仍然是有状态的。Kafka 的分层存储要求其分区的最后一个日志段必须在本地磁盘上,因此他们在本地存储上的数据是强耦合计算层的 Broker 的,而 AutoMQ 实现的 EBS WAL 则没有这种限制。当 Broker 节点崩溃后,其他健康的 Broker 节点可以通过 Multi Attach 的方式在毫秒时间内接管 EBS 卷,将其上固定大小(通常是 500MB)的少量 WAL 数据写入到 S3 然后删除卷既可。

云上最佳 Shared WAL  实现:EBS WAL

S3 WAL 是 Shared WAL 共享存储架构自然演进的结果。AutoMQ 当前支持将存储层完全构建于 S3 之上,则是 Shared WAL  的一种具体实现罢了。直接构建于 S3 的这种 WAL 实现我们称之为 S3 WAL。得益于 Shared WAL 的顶层抽象和 EBS WAL 的实现基础,S3 WAL 的核心流程与 EBS WAL 的实现相同,因此 AutoMQ 团队仅在几周内即可完成了 S3 WAL 实现的支持。实现 S3 WAL 一方面是 AutoMQ Shared WAL 架构自然演进的结果,另外一方面也可以帮助 AutoMQ 拓宽能力边界。当采用 S3 WAL 时,用户的所有数据都将全部写对象存储,因此相比 EBS WAL 则会带来一些延迟的上升。但是伴随着这种 trade-off,整个架构由于依赖的服务将会更少从而变得更加精简高效。而在像 AWS 这样不提供跨 AZ 可用区 EBS 的“特殊”云厂商之上,以及私有 IDC 场景使用 minio 这种自建对象存储服务的场景,S3 WAL 的架构也将为其提供更强的跨 AZ 可用性保证和灵活性。

04

S3WAL Benchmark

AutoMQ 在实现 S3WAL 对其性能上做了很多优化,尤其是其延迟表现。在我们的测试场景中,S3 WAL Append 的平均延迟为 168ms,P99 296ms。

Kafka Produce 请求处理延迟平均 170ms,P99 346ms。

平均发送延迟 230ms,P99 489ms。

05

AutoMQ 是如何通过百行代码实现 S3 WAL 的

在 AutoMQ 的 Github 仓库中,你可以找到核心流存储库 S3Stream[2]。其中的类 com.automq.stream.s3.wal.WriteAheadLog 包含了 WAL 的顶层抽象,实现类 ObjectWALService 则包含了 S3 WAL 的 100 多行实现代码。从这个意义上来说我们确实通过了 100 多行实现类的代码配合已有 EBS WAL 的代码基础设施完成了将 AutoMQ 完全构建于 S3 之上。当然,几百行代码的实现并不意味着你真的只需要写 100 多行代码就能实现 Kafka 在 S3 之上的运行。这只是表象。关键在于我们能够充分理解 AutoMQ 这种基于 WAL 的共享存储架构理念。在这套体系之上,无论未来是实现完全基于 S3 的共享存储,还是在其他共享存储介质上实现,思路都是一致的。在 AutoMQ 的架构中,Shared WAL 是核心组件之一。通过对 Shared WAL 进行顶层抽象组织代码,我们可以将 Shared WAL  的实现方法迁移至其他任何共享存储介质。具体来说,当你在 AutoMQ 上实现一个共享存储 WAL 时,真正的工作量和复杂度已经被底层架构所消化。你只需要关注如何高效地将 WAL 写入和读取到目标存储介质上。正因为 AutoMQ 的流存储引擎已经为你铺好了道路,当你充分理解 Shared WAL 的理念和 S3Stream 流存储引擎时候,实现一个完全基于的 S3 的 S3WAL 这项工作也就像写 100 行代码那么简单了。

06

总结

本文通过介绍 AutoMQ 存储架构背后的思考和演进为大家揭示了其最核心的基于 Shared WAL  的共享存储架构理念。而未来,AutoMQ 也将持续优化基于这套抽象的流存储引擎底座的能力,在其上为大家构建更加强大的 Kafka 流服务。不久的将来,S3E1Z WAL 也将正式和大家见面,请大家对我们保持关注。

参考资料

[1] AutoMQ: https://github.com/AutoMQ/automq
[2] S3Stream:https://github.com/AutoMQ/automq/tree/main/s3stream
[3] Direct S3 Cluster 部署:  https://docs.automq.com/zh/automq/getting-started/deploy-direct-s3-cluster

关于我们

我们是来自 Apache RocketMQ 和 Linux LVS 项目的核心团队,曾经见证并应对过消息队列基础设施在大型互联网公司和云计算公司的挑战。现在我们基于对象存储优先、存算分离、多云原生等技术理念,重新设计并实现了 Apache Kafka 和 Apache RocketMQ,带来高达 10 倍的成本优势和百倍的弹性效率提升。

🌟 GitHub 地址:https://github.com/AutoMQ/automq
💻 官网:https://www.automq.com\?utm\_source=wechat  👀 B站:AutoMQ官方账号
🔍 视频号:AutoMQ

MuleSoft+LLM企业级AI编排:打通数据、语义与执行闭环 大语言模型(LLM)在企业落地的核心瓶颈,从来不是生成能力,而是如何安全、可靠、可控地接入真实业务系统。这涉及三大基础能力:数据可及性——跨ERP、CRM、核心银行等异构系统的实时聚合;语义可理解性——将‘恶意拖欠’‘风险等级’等业务概念映射为多系统间一致的数据表达;执行可管控性——确保LLM输出能转化为符合合规要求的可审计操作。MuleSoft凭借元数据驱动的API治理、DataWeave语义转换引擎与策略即代码(Policy-as-Code)能力,成为填补LLM与企业IT基础设施之间关键断点的中枢平台。 阅读详情

相关推荐

生产级机器学习:从模型交付到决策系统工程

机器学习在真实业务场景中落地,本质是构建可信赖、可审计、可演进的决策系统,而非单纯提升算法指标。其核心在于理解数据供给的不确定性、服务链路的弹性契约、特征与模型的时间一致性,以及治理要求向技术契约的转化。尤其在金融风控等高约束领域,模型必须与身份核验、规则引擎、支付网关等异构系统协同工作,同时满足低延迟(<100ms)、高可用、强可追溯等硬性要求。本文聚焦生产ML中的特征漂移检测、SLA分级降级、数据契约校验、决策健康图谱等关键实践,揭示如何将合规性、可观测性与鲁棒性深度融入模型生命周期。

weixin_30800987的博客 480

Apache Kafka 基于 S3 的数据导出、导入、备份、还原、迁移方案

在系统升级或迁移时,用户常常需要将一个 Kafka 集群中的数据导出(备份),然后在新集群或另一个集群中再将数据导入(还原)。通常,Kafka集群间的数据复制和同步多采用 Kafka MirrorMaker,但是,在某些场景中,受环境限制,两个于 Kafka 集群之间的网络可能无法连通,亦或是需要将 Kafka 的数据沉淀为文件存储以备他用。此时,基于 Kafka Connect S3 Source / Sink Connector 的方案会是一种较为合适的选择,本文就将介绍一下这一方案的具体实现。

Laurence的技术博客 2798

机器学习生产化:从Notebook到高可用ML系统的工程实践

机器学习模型上线并非简单部署,而是将数学对象移交至由Kubernetes、Kafka、监控与合规流程构成的复杂生产系统。其核心挑战在于保障服务稳定性、低延迟响应、特征时效性与业务语义一致性。真实场景中,集成失败、数据漂移、降级失控和审计不可追溯,远比模型精度问题更常引发P2级以上故障。因此,面向生产的ML系统必须以可观测性、韧性设计、版本契约和决策溯源为基石,在金融等强监管领域尤其需兼顾性能优化与合规就绪。本文聚焦ML工程化落地中的关键实践,涵盖特征时效治理、延迟分层优化、漂移动态基线检测及审计就绪包构建。

weixin_30338497的博客 383

【亲测免费】 推荐开源项目:Kafka Connect Connector for S3 - 数据传输的理想桥梁

推荐开源项目:Kafka Connect Connector for S3 - 数据传输的理想桥梁 在大数据处理的复杂世界中,数据流动的安全与效率至关重要。Kafka Connect Connector for S3 是一个强大的工具,由Confluent开发,它提供了一个无缝的数据流接口,将Apache Kafka中的数据高效地存入Amazon Simple Storage Service(S3...

gitblog_00039的博客 709

AI编排实战:MuleSoft+LangChain构建企业级AI集成流水线

AI编排(AI Orchestration)是连接大模型能力与企业核心系统的关键范式,其本质是在保障数据安全、权限治理和可审计性的前提下,对多源异构系统调用、提示链执行与LLM推理进行工程化协同调度。它既不是简单封装API,也不是纯算法优化,而是融合企业集成中间件的严谨性与AI框架的灵活性,解决真实产线中‘能跑通但不敢上线’的典型问题。本文聚焦AI编排在销售智能场景的落地实践,以MuleSoft作为企业级管道引擎实现系统连接、动态脱敏与流量治理,以LangChain作为AI逻辑中枢完成多步推理、上下文精炼与

weixin_33901926的博客 395

大数据建模中的函数即服务(FaaS):无服务器架构下的数据处理

随着大数据规模的爆炸式增长,传统数据处理架构面临资源利用率低、扩展性不足、实时性差等痛点。函数即服务(FaaS)作为无服务器架构的核心组件,以"按需执行、事件驱动、无状态"的特性,为大数据建模提供了全新的处理范式。本文从第一性原理出发,系统分析FaaS在大数据建模中的理论基础、架构设计、实现机制与实际应用,结合数学形式化推导、可视化架构图与生产级代码示例,揭示其在数据预处理、特征工程、模型推理、实时监控等关键环节的价值。

小程序开发 1148

技术干货|深度剖析将 Kafka 构建在 S3 上的技术挑战与最佳实践

摘要: AutoMQ作为开源的云原生Kafka替代方案,通过重构存储层将数据卸载至S3对象存储,显著降低了云上部署成本。文章剖析了三大技术挑战:1)延迟问题通过WAL预写日志实现毫秒级响应;2)IOPS成本采用数据批处理与压缩策略减少S3请求;3)缓存管理优化读取性能。相比传统Kafka,AutoMQ实现计算存储解耦,避免跨可用区数据复制,为云原生场景提供了高性价比的流处理解决方案。

AutoMQ的博客 963

streamx:kafka-connect-s3:从Kafka到对象存储(s3)提取数据

基于安全问题,已计划此REPO SEC故障单#SEC-2988 StreamX:Kafka Connect for S3 从很棒的 StreamX是基于kafka连接的连接器,用于将数据从Kafka复制到对象存储,例如Amazon s3,Google Cloud Storage和Azure Blob存储。 它专注于可靠和可扩展的数据复制。 它可以以不同的格式(如镶木地板)写出数据,以便分析工具可以轻松使用它,也可以满足不同的分区要求。 ##产品特点 : StreamX从kafka-connect-hdfs继承了丰富的功能集。 支持以Avro和Parquet格式写入数据。 提供Hive集成,其中连接器创建分区的Hive表,并在向S3写入新分区后定期添加分区 可插分区器: 默认分区程序:每个Kafka分区将其数据复制到特定于分区的目录下 基于时间的分区器:能够按小时写入数据 基于字段的分区程序:能够将记录中的字段用作自定义分区程序 除了这些,我们还对以下内容进行了更改,以使其能够与s3一起有效地工作 使用WAL一次保证 支持将Hive表存储在Qubole的Hive Metast

G-Helper:免费轻量华硕笔记本调校工具,从零上手的完整指南

Armoury Crate 改一条风扇曲线,要先等后台同步,常驻进程还常占几百 MB 内存。G-Helper 是免费、开源、单 exe 的华硕笔记本调校工具,关掉即退出,不留后台。读完本文,性能档位、风扇曲线、显卡切换这些开关就都在你手里了。 ## 动手前确认:30 秒适用性检查 **它怎么工作**:G-Helper 不是驱动,也不实时控制硬件。它调用华硕官方的系统控制接口(Asus Syst

gitblog_01081的博客 261

NeurIPS‘25新研究!PINN+GNN强强联手,模型精度飙升50%!

物理图神经网络研究取得重大进展!UCLA团队提出的PhysGNN架构在NeurIPS'2025上引发关注,该模型成功融合PINN的物理约束优势与GNN的图结构处理能力,解决了工程仿真中的关键瓶颈。研究显示,PhysGNN在城市热网预测中误差降低42%,电网负荷模拟的物理规则违反率下降68%。同步解析的SyncTREE模型则创新性地将RC树物理特性融入GNN,实现毫秒级IC时序分析;HSPGNN模型通过嵌入偏微分方程,显著提升多变量时间序列填补精度。

m0_73122726的博客 1022

用Verilog搭出RISC-V架构单周期CPU

这是笔者学校暑期学期的必修课,难度并不高(仅追求及格的话),但相当耗时,对于在硬件设计方面完全不感冒的同学更是一场避不开的折磨,所以笔者想通过自己的成果和被折磨经验来帮助有此方面需求的同学,或是对于CPU设计有浓厚兴趣的人。

paticita的博客 1万+

Python日志监控系统:轻量级实现与生产实践

日志监控是运维体系的核心组件,通过实时采集和分析系统日志,能够快速识别异常模式并触发告警。相比传统的ELK等重型方案,基于Python的轻量级实现更适合中小规模场景,仅需百行代码即可构建高效监控系统。其核心技术原理包括文件变化监听(如watchdog的inotify机制)、正则解析、动态阈值告警等,在金融等行业实践中可将故障响应时间缩短80%以上。典型应用场景涵盖Nginx访问日志分析、Java异常堆栈跟踪、安全事件监测等,通过智能告警规则和性能优化方案(如缓冲队列、断点续传),能有效应对日志轮转、高并发等

weixin_33205735的博客 255

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2383

机器学习模型上线后的系统性风险与工程化治理

机器学习模型部署不是开发终点,而是进入真实业务环境的起点——它将面临数据漂移、特征管道断裂、跨服务依赖、毫秒级延迟约束等系统性挑战。其核心原理在于:模型必须在数据、服务、业务规则和合规要求交织的复杂系统中持续可靠决策。技术价值体现在保障决策稳定性、可解释性与审计就绪能力;典型应用场景覆盖金融风控、实时信贷审批、个性化推荐等高可靠性要求领域。本文聚焦模型生产化落地中的监控告警、熔断降级、漂移检测与治理实践,深入解析特征可用性、gRPC接口选型、延迟预算分配及决策工程师角色演进等关键工程命题。

weixin_30522095的博客 446

UNet改进(23):如何用SLCAM模块提升UNet的分割性能

本文提出一种改进的UNet架构,通过引入轻量化注意力模块(SLCAM)增强医学图像分割性能。SLCAM整合了通道和空间双重注意力机制:通道注意力采用全局池化和共享MLP学习通道权重,空间注意力通过7×7卷积捕捉上下文信息。网络在传统UNet基础上,在每个下采样和上采样块后加入SLCAM模块,并保持跳跃连接结构。实验表明,该方法能自适应聚焦重要特征,在不显著增加计算负担的情况下提升分割精度,特别适用于医学图像等需精确边界的场景。未来可探索三维注意力、动态参数调整等改进方向。

2501_91516851的博客 438

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景

WPF进阶 | 深入 WPF 依赖项属性:理解其强大功能与应用场景,在 Windows Presentation Foundation(WPF)开发中,依赖项属性是一个核心且强大的特性,它为构建灵活、可扩展的用户界面提供了关键支持。理解并熟练运用依赖项属性,对于开发高效、健壮的 WPF 应用程序至关重要。本文将深入探讨 WPF 依赖项属性,通过丰富的代码示例和对关键概念的详细解释,帮助读者全面掌握这一重要特性及其应用场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

CTO视角的AI编码助手落地决策框架:从能力分层到技术债管控

AI编码助手并非万能补全工具,而是嵌入开发流程的智能协作者。其本质是基于大语言模型的代码生成技术,能力呈现显著分层特征:在基础语法层表现优异,但在领域建模与系统治理层易产生幻觉与隐性技术债。真正决定落地成效的,不是模型参数大小,而是Prompt工程规范性、人机协同流程设计及可观测性体系建设。本文聚焦工程实践中的核心矛盾——如何在提升开发效率的同时,守住代码质量、架构一致性和工程师能力成长底线。通过风控规则引擎等真实场景验证,揭示AI提效的边界条件与安全收益红线,为技术负责人提供可量化、可审计、可演进的AI原

weixin_30896511的博客 476

如何提高电路的抗干扰能力

本内容详细介绍了电源传导干扰处理,包括滤波、Feedthrough电容器、磁环、磁珠、屏蔽的使用与选型,EMC电磁兼容测试项目简介与要求,单片机与电源抗干扰处理等。

让你爱上电路设计 8601

Timely Dataflow 流捕获与回放:capture_into 与 replay_into 原理解析与跨进程传输实战

本章为 timely-dataflow 数据流编程进阶系列(Advanced Timely Dataflow)的核心主题之一。文章以仓库中关联文档 [chapter_4_4.md](https://link.gitcode.com/i/581b54588ff725fd84916b71babe0a14) 为骨架,详细解析 `capture_into` 与 `replay_into` 这对算子如何把一

gitblog_01095的博客 200

JEDEC JESD51-14 瞬态双界面测试方法详解

(瞬态双界面测试方法,用于测量具有单路径热流的半导体器件的结到壳热阻 RθJC,包括结到壳顶部 RθJCT 和结到壳底部 RθJCB)。该标准于 2010 年发布(版本 JESD51-14.1),旨在提供一种准确、可重复的瞬态方法来测量功率半导体器件(如 MOSFET、IGBT)的结到壳热阻(RthJC),取代传统的稳态测量方法(如 MIL-STD-883E METHOD 1012.1)。方法,通过比较两种不同热界面材料(TIM)下的瞬态温度响应曲线,提取 RthJC,而无需直接测量壳温(Tc)。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 609

米哈游运维面试题及参考答案

Linux 系统运行级别是用于定义系统启动时所需要达到的功能状态。运行级别 0:表示系统停机状态,用于关闭系统,是系统的关机级别。当系统切换到这个级别时,会停止所有的服务和进程,然后关闭系统。运行级别 1:也称为单用户模式。在这个级别下,系统只启动基本的系统服务和必要的进程,仅允许 root 用户登录系统进行维护操作,常用于系统出现故障需要紧急修复的情况,比如修复文件系统错误、重置 root 密码等。运行级别 2:多用户模式,但不支持网络文件系统(NFS)。

大模型大数据攻城狮的专栏 746

银行客户行为分析:从静态标签到动态意图的大数据实践

客户行为分析是金融数据应用的核心基础能力,其本质在于将离散交易、点击、交互等原始信号,转化为可解释、可行动的客户认知。基于银行业务强监管、多系统、低容错的特性,传统RFM模型与互联网式实时计算难以直接套用;必须融合稳态与瞬态双轨引擎、构建业务语义层、实施合规嵌入式特征工程,并以场景闭环驱动技术选型。Banking Market的真实竞争压力倒逼客户分析升级为‘行为序列建模+意图预测’能力,支撑信用卡提额、流失预警、财富推荐等高价值场景落地。本文聚焦银行大数据项目中那些教科书不写、但决定成败的硬核细节。

weixin_30565327的博客 349

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

生产级机器学习:从Notebook到高可靠决策系统的四大支柱

机器学习模型部署不是开发终点,而是系统性工程的起点。在真实业务场景中,模型必须作为有状态、有时延、有依赖的组件嵌入流水线,其核心挑战已从算法准确率转向系统鲁棒性、延迟预算控制与特征新鲜度保障。技术价值体现在可预测的决策稳定性、分钟级漂移响应和明确的fallback机制;典型应用场景覆盖金融实时风控、保险智能核保、支付反欺诈等强SLA要求领域。本文聚焦latency budget与graceful degradation两大关键实践,拆解生产就绪(production-ready)所需的可观测性、契约化集成、

adiking520110的博客 672

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

机器学习模型生产就绪:从上线到高可用的系统性实践

机器学习模型部署不是开发终点,而是工程挑战的起点。在真实业务场景中,模型需应对数据漂移、特征延迟、系统故障与合规审计等多重压力,其稳定性远比离线指标更关键。模型服务必须具备输入熔断、特征超时兜底、版本路由、决策审计等韧性能力,并通过混沌测试、漂移监控和全链路可观测性保障毫秒级SLA。尤其在金融等强监管领域,“可解释性”“可追溯性”“可辩护性”已成硬性技术要求,而非附加功能。本文聚焦模型从Notebook走向生产环境的核心落地方案,涵盖集成契约设计、延迟治理、弹性扩展与自动化合规验证,直击MLOps落地中最易

weixin_34391445的博客 415
上一篇: 活动回顾 | AutoMQ 联合 GreptimeDB 共同探讨新能源汽车数据基础设施
下一篇: 就在今晚!亚马逊云科技数据开源软件-流式数据湖 Tech Talk等你来!
AutoMQ
博客等级 码龄3年 1206粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值