自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 检索增强生成架构

本文系统分析了文档索引与检索优化的关键技术。在索引方面,对比了大片段与小片段切分的优劣,提出了滑动窗口+NLP、语义块切分、小到大策略等方法,并引入层次化索引和知识图谱增强语义理解。在检索前优化环节,详细阐述了查询扩展(多查询/子查询拆解)、验证链机制、查询改写等技术,重点解析了HyDE算法通过生成假设文档提升召回率的创新思路,以及反向HyDE的离线预处理优化策略。这些方法共同解决了信息检索中的语义关联、上下文缺失、查询匹配度等核心难题,为构建高效精准的检索系统提供了完整的技术框架。

2026-03-27 09:56:38 509

原创 Langchain原理综述

LangChain框架核心模块解析与应用指南 摘要:本文系统解析了LangChain框架的六大核心模块及其应用场景。模型输入/输出模块标准化LLM交互,数据连接模块实现RAG技术,链模块组合工作流,记忆模块管理上下文状态,智能体模块实现动态决策,回调模块提供监控功能。重点剖析了示例选择器策略(长度/语义/MMR/N-gram)、模型接口类型(LLMs/Chat Models)及Pydantic输出解析器的结构化处理能力。在数据连接部分,详细介绍了文档加载器的异构数据处理、递归字符文本分割器的智能切分策略,强

2026-03-25 14:05:58 490

原创 大模型Agent智能体

本文系统梳理了大模型智能体的核心架构与训练方法。首先从概念层面将智能体划分为单智能体、多智能体及人机交互三类范式。随后详细解析了智能体的四大功能模块:感知模块处理多模态输入,规划模块分无反馈和带反馈两种模式,记忆模块实现短期/长期记忆的读写与反思,工具使用模块支持示范、教程和探索三种学习方式。在训练方法方面,重点介绍了TL-Training技术,包括错误数据过滤层、关键词元加权机制和强化学习评分体系,通过数学优化确保智能体高效学习工具调用能力。这些创新方法显著提升了智能体的任务执行效能和决策可靠性。

2026-03-24 17:57:51 595

原创 SFT 指令微调 LoRA

本文介绍了高效模型微调技术和上下文窗口扩展方法。在微调方面,重点分析了LoRA及其变体AdaLoRA和QLoRA,通过低秩分解、动态预算分配和4位量化等技术实现参数高效优化。在上下文扩展方面,探讨了位置编码的演进,包括RoPE、ALiBi等具有外推能力的编码方式,以及通过插值法扩展预训练窗口的技术。这些方法在保持模型性能的同时,显著提升了训练效率和推理能力。

2026-03-19 14:15:01 373

原创 深度学习中的分布式并行策略和内存优化技术

本文介绍了深度学习中的分布式并行策略和内存优化技术。分布式并行包括数据并行、模型并行(含流水线并行和张量并行)以及混合并行策略。内存优化方面,重点分析了混合精度训练(FP16/BF16)、Adam优化器的内存占用(16Φ字节)及其数学原理(动量更新公式),以及ZeRO优化器通过分区方法减少内存消耗的技术。这些方法共同解决了大模型训练中的计算效率和内存瓶颈问题。

2026-03-19 13:47:26 527

原创 生成式预训练语言模型GPT

摘要:生成式预训练语言模型(GPT)采用两阶段训练范式:首先通过自监督预训练学习语言规律,然后在特定任务上进行微调。预训练阶段使用Transformer解码器架构,通过掩码自注意力实现自回归预测,最小化交叉熵损失。微调阶段结合任务特定目标和预训练目标,防止知识遗忘。常用解码策略包括贪婪搜索、Top-K采样和Top-p采样,以平衡生成质量和多样性。该架构通过复用词嵌入矩阵等设计优化参数效率,在保持语言理解能力的同时适配下游任务。

2026-03-12 14:03:07 306

原创 混合专家模型MoEs

混合专家模型(MoE)主要包括三种类型:稀疏MoE仅激活部分专家实现高效计算,通过门控网络和噪声注入防止路由崩溃;稠密MoE激活所有专家;软MoE采用先融合后计算策略大幅降低计算量。其中稀疏MoE通过Top-K机制选择专家,引入噪声实现负载均衡;软MoE相比传统方法能减少约90%计算量。此外,LoRAMoE创新性地将专家替换为轻量级LoRA模块,在冻结基础模型参数的同时实现高效微调。这些方法通过不同策略在模型性能和计算效率之间取得平衡。

2026-03-12 14:01:48 604

原创 大语言模型结构(Transformer的优化)

本文介绍了Transformer模型中的几种关键技术改进:1)RMSNorm归一化函数,通过均方根和可学习参数优化特征缩放;2)swiGLU激活函数,结合Sigmoid和Swish函数实现高效门控机制;3)RoPE位置编码,采用旋转矩阵注入位置信息;4)注意力机制优化,包括Star-Transformer、Longformer等稀疏注意力结构;5)FlashAttention通过内存优化提升计算效率;6)多查询注意力(MQA)和多头潜在注意力(MLA)等改进的注意力头设计,通过参数共享或压缩降低计算开销。这

2026-03-12 11:05:42 524

原创 逻辑回归Logistic Regression

逻辑回归核心原理与推导 逻辑回归是处理二分类问题的经典模型,基于伯努利分布假设。其核心是通过Sigmoid函数将线性组合θᵀx映射到(0,1)概率空间,得到预测概率hθ(x)=1/(1+e^(-θᵀx))。模型采用最大似然估计,通过优化对数似然函数推导出交叉熵损失函数J(θ)=-1/mΣ[yⁱloghθ(xⁱ)+(1-yⁱ)log(1-hθ(xⁱ))]。关键推导在于利用Sigmoid函数的导数特性h'θ(x)=hθ(x)(1-hθ(x))xⱼ,最终得到梯度∂J/∂θⱼ=1/mΣ(hθ(xⁱ)-yⁱ)xⱼⁱ,

2026-03-11 09:47:48 553

原创 交叉熵-最大似然估计

摘要: 信息论与统计学在机器学习中殊途同归。信息熵($H(p)$)定义了真实分布的理论编码极限,而交叉熵($H(p,q)$)衡量了用预测分布$q$逼近真实分布$p$的实际代价,其超出理论极限的部分即KL散度($D_{KL}$),三者满足$H(p,q)=H(p)+D_{KL}$。由于$H(p)$是常数,最小化交叉熵等价于最小化KL散度。统计学中,最大似然估计(MLE)通过最大化观测数据的联合概率优化模型,取对数后转化为最小化负对数似然(NLL)。最终,对于分类任务,MLE ≡ 最小化NLL ≡ 最小化交叉熵

2026-03-10 13:40:56 499

原创 Transfromer结构

本文介绍了Transformer模型中的关键组件。位置编码使用正弦/余弦函数表示绝对位置信息,通过点积操作可转化为相对位置编码。自注意力机制通过QKV矩阵计算特征间关联性,多头注意力并行处理不同特征子空间。前馈网络采用两层全连接结构实现非线性变换。残差连接防止梯度消失,层归一化对特征进行标准化处理。这些模块共同构成了Transformer的核心架构,使其能有效处理序列数据并捕获长距离依赖关系。

2026-03-06 18:23:02 515

原创 线性回归原理深度分析

线性回归是一种统计分析方法,用于确定变量间的定量关系。其数学表达式为y=wᵀx+e,其中w为回归系数。主要分为一元和多元线性回归。模型通过最小化均方误差(MSE)来优化参数,目标函数为min(w,b)∑(yᵢ-(wᵀxᵢ+b))²/n。参数估计可采用最小二乘法(解析解W=(XᵀX)⁻¹XᵀY)或梯度下降法(迭代优化wₜ₊₁=wₜ-α∇J(wₜ))。特征标准化可改善梯度下降效率,且MSE的凸性保证了全局最优解的存在。

2026-03-03 10:07:46 719

原创 PPO算法

本文介绍了大语言模型(LLM)中强化学习的核心概念和PPO算法原理。在LLM语境下,Agent即训练的大模型,Environment是用户输入的Prompt和生成上下文,Action是模型输出的下一个Token。PPO训练需要四个模型协同工作:负责生成文本的Actor模型、监督偏离度的Reference模型、给出全局评分的Reward模型和提供实时反馈的Critic模型。PPO训练过程分为推理阶段(生成经验数据)和训练阶段(计算损失与参数更新),通过优势函数评估生成质量。核心损失函数采用PPO-Clip机制

2026-02-25 09:38:14 907

原创 Transformer梯度下降

本文详细推导了带有残差连接的双层神经网络的前向传播与反向传播过程。前向传播中,输入X经过线性变换、激活函数后与原始输入相加形成残差连接,再通过第二层输出。维度不匹配时采用投影矩阵调整。反向传播部分系统推导了梯度计算链式法则:先计算第二层误差项,通过权重转置回传梯度,残差连接使梯度直接传递,激活函数处进行逐元素相乘,最终利用输入转置计算权重梯度。整个推导严格遵循张量维度匹配原则,揭示了残差网络缓解梯度消失的数学本质。

2026-02-24 15:53:36 953

原创 java Garbage

较老的垃圾收集器(串行、并行、CMS)都将堆结构分为三个部分:年轻代、老年代和固定内存大小的永久代。

2025-09-30 16:02:24 834

原创 Spark核心Shuffle详解(二)ShuffleHandler

Spark Shuffle机制包含Writer和Reader两部分:Writer负责将Map任务输出排序写入磁盘,有SortShuffleWriter(默认)、BypassMergeSortShuffleWriter(分区≤200时避免排序)和UnsafeShuffleWriter(堆外内存)三种实现;Reader则通过BlockStoreShuffleReader读取和合并这些数据。SortShuffleWriter采用内存聚合→排序→溢写→合并的流程,使用PartitionedAppendOnlyMap

2025-09-28 18:46:01 1431

原创 Spark核心Shuffle详解(一)ShuffleManager

是Spark Shuffle的可插拔式入口点,负责协调Shuffle过程的各个方面。在SparkEnv初始化时,会根据配置(参数)创建相应的ShuffleManager实例,驱动Driver和Executor上的Shuffle操作。

2025-09-26 15:42:54 1271

原创 Spark核心Storage详解

它负责跟踪所有Slave节点的Block信息,维护整个应用程序的Block元数据,包括Block所在的位置、所占用的存储空间大小(内存、磁盘或Tachyon)以及副本位置等。

2025-09-23 17:16:36 1091

原创 Flink SlotSharingGroup 机制详解

JobManager将JobGraph转换为ExecutionGraph,这是一个并行化的执行计划,包含了所有执行顶点(ExecutionVertex)和边。:ResourceManager检查当前可用的TaskManager slot,如果资源足够,就将slot分配给JobManager。:客户端将JobGraph提交给JobManager,JobGraph包含了作业的逻辑数据流和算子信息。单独定义资源需求,Flink会根据这些需求动态申请匹配的slot资源。不同规格的slot,最大化资源利用效率。

2025-09-22 15:00:37 993

原创 Spark 核心 RDD详解

Spark核心RDD机制解析摘要 Spark的弹性分布式数据集(RDD)通过五大核心属性实现分布式计算:分区(并行基础)、计算函数(逻辑封装)、依赖关系(容错依据)、分区器(数据分布)、优先位置(数据本地性)。RDD不支持嵌套结构,通过隐式转换扩展功能。与DataFrame/Dataset相比,RDD支持任意对象但缺乏优化,后两者采用Tungsten引擎和Catalyst优化器提升性能。关键实现包括MapPartitionsRDD(窄依赖操作)、ShuffledRDD(宽依赖)等,通过内存布局优化(如位图n

2025-09-11 11:40:09 1145

原创 构建高性能网络应用

I/O多路复用技术对比分析:Java NIO、kqueue、epoll和io_uring在操作系统支持、设计哲学、核心机制和性能表现上各有特点。Proactor模式采用双环形队列实现异步I/O,而Reactor模式根据线程配置分为单线程、多线程和主从多线程三种变体。网络性能优化手段包括SO_REUSEPORT端口复用、sendfile/mmap文件传输、网卡特性调优(RSS/RPS/XPS)以及TCP参数优化(TFO、拥塞控制算法、缓冲区设置等)。这些技术共同构成了现代高性能网络编程的核心要素。

2025-09-10 14:39:17 1186

原创 Flowable 工作流引擎

Flowable工作流引擎的核心服务与API操作指南 摘要:本文介绍了Flowable工作流引擎的核心服务架构及其常用API操作。主要内容包括:7个核心服务接口及其功能(如RepositoryService管理流程定义、RuntimeService管理流程实例等);8种常用API操作示例,涵盖流程定义查询、流程实例启动、任务处理等场景;特别说明了JavaDelegate实现服务任务和TaskListener的应用方式,包括4种事件类型及其触发时机;最后简要介绍了四种网关类型的特性。这些内容为开发人员提供了F

2025-09-04 17:32:56 1117

原创 Scala协变、逆变、上界/下界、隐式参数、隐式转换

Scala 把“上下文能力”以隐式参数的方式传递;类型类是最常见的模式。Scala 2 和 Scala 3 语法不同,语义一致。隐式转换能把“不会”的对象变成“会”的对象,但滥用会制造幽灵行为。Scala 3 强化了约束,推荐首选扩展方法。这几个特性——协变、逆变、上界/下界、隐式参数、隐式转换——是 Scala 类型系统与抽象能力的“锋刃”。协变/逆变回答的是“类型参数随子类型关系如何变化”的问题。类型参数的“围栏”。上界收紧“最多到哪”,下界收紧“至少从哪”。逆变,不标注则不变(invariant)。

2025-09-01 11:15:03 1030

原创 Spark 运行流程核心组件(三)任务执行

Spark任务执行机制摘要 Spark任务执行包含两种启动模式:standalone模式中Driver直接与Worker通信启动Executor;YARN模式下通过ResourceManager分配资源,由ApplicationMaster协调Executor启动。Executor端核心组件包括任务执行引擎、通信端点、数据管理和Shuffle处理器。任务执行流程分为接收初始化、运行和Shuffle处理三阶段:Driver下发任务后,Executor反序列化任务并创建TaskRunner线程执行,期间管理内存

2025-08-18 14:11:16 1266

原创 Spark 运行流程核心组件(二)任务调度

本文介绍了Spark调度系统的核心设计与实现。主要内容包括:Spark支持FIFO和FAIR两种调度策略,FAIR策略支持权重分配和树形调度池结构;采用数据本地性优化策略,从PROCESS_LOCAL到ANY逐级降级以减少数据传输开销;核心组件包括Schedulable接口、TaskSetManager任务管理和TaskScheduler资源协调;通过调度树结构实现多级资源分配,支持FIFO和FAIR两种调度模式,并详细说明了二者的比较逻辑与资源分配算法。系统通过Executor注册、Pool排序和Task

2025-08-15 15:42:14 875

原创 Spark 运行流程核心组件(一)作业提交

1、Client触发 SparkContext初始化向 Master注册应用3、Master调度 Worker启动 Executor4、Worker进程启动 Executor将作业分解为Stage分配Task到Executor。

2025-08-12 11:42:28 594

原创 Spark Memory 内存设计的核心组件、对比Flink内存配置

Spark内存管理摘要 Spark内存分为Driver和Executor两部分,采用堆内和堆外内存结合的方式。Driver内存主要用于存储元数据和任务调度状态,Executor内存则负责任务执行和数据处理。内存配置通过参数如spark.driver.memory和spark.executor.memory控制,包含统一内存池、用户内存和系统开销内存。估算内存消耗可使用RDD缓存观察或SizeEstimator工具。Executor中每个Task由独立的TaskMemoryManager管理内存生命周期。关键

2025-08-07 16:46:48 1281

原创 Flink 可插拔的 shuffle 服务实现

分区服务工厂创建 ShuffleMaster(JM 侧)和 ShuffleEnvironment(TE 侧)。JM 进程会根据配置的工厂在每个集群中创建 ShuffleMaster,并负责其生命周期。:如果消费者任务失败或 TE 崩溃,JM 会尝试重用生产者的分区。如果分区对于消费是可用的,生产者任务可能不需要重新启动,这将缩小故障转移的区域,从而减少故障转移的成本。:当所有消费者任务都完成(处于 FINISHED 状态)时,生产者的分区可以手动从 ShuffleMaster 中注销以清理资源。

2025-08-04 17:16:38 958

原创 Flink Memory 内存设计的核心组件和源代码实现

本文摘要: 堆外内存对比:DirectByteBuffer由JVM自动管理,适用于NIO传输和缓存;Unsafe需手动管理,适合高频计算和自定义数据结构。 Flink内存架构:核心组件包括MemorySegment(基本内存单元)、MemoryManager(托管内存)和NetworkBufferPool(全局网络缓冲池)。内存分为框架堆/堆外内存、任务堆内存、托管内存和网络内存等区域。 内存管理流程:从NetworkBufferPool分配缓冲区,通过LocalBufferPool供任务使用,任务结束后回

2025-07-31 15:49:15 1022

原创 Flink 算子链设计和源代码实现

Flink的算子链机制通过ChainingStrategy确定算子连接方式,在JobGraph生成阶段构建ChainedDriver链表。执行时分为三层:JobManager生成JobGraph,ExecutionGraph拆解并行子任务,TaskManager运行物理执行计划。OperatorChain管理链式结构,通过StreamOperatorWrapper处理数据流转。链化策略包括ALWAYS(默认)、HEAD(仅下游)和NEVER(独立)。该机制通过合并算子减少线程和网络开销提升性能,但需平衡链长

2025-07-30 17:12:33 303

原创 Flink Table/SQL 执行流程解析

本文概述了Flink SQL从解析到执行的整体流程。首先通过Calcite解析SQL生成逻辑关系代数树(Logical RelNode),然后经过两阶段优化:基于规则的优化(RBO)重写计划,基于代价的优化(CBO)选择最优方案。最后转换为Flink物理算子(Transformation)并生成执行管道(Pipeline)。核心组件包括CatalogManager元数据管理、QueryOperationConverter转换器,以及Flink特有的优化规则和代价模型。流程涵盖SQL解析、逻辑优化、物理计划生

2025-07-29 16:22:19 672

原创 深入解析 Apache Flink FLIP-511:优化 Kafka Sink 事务处理,减轻 Broker 负载

摘要:Flink Kafka Sink在Exactly-Once模式下存在滞留事务问题,旧方案采用唯一事务ID导致Kafka Broker内存压力大且恢复时间长。FLIP-511提出新方案:1)采用池化ID机制复用有限数量事务ID;2)利用Kafka 3.0+的ListTransactions API精准查询和清理滞留事务。新方案显著减少Broker内存占用(从数万ID降至约3倍并行度),实现快速确定恢复,并通过配置选项支持策略切换。该方案需Kafka 3.0+支持,保持向后兼容性,为未来扩展预留接口。 (

2025-07-29 10:41:23 1829

原创 基于 YARN 的 Node Label 特性实现服务器资源隔离的配置指南

摘要: 本文介绍了YARN Node Label功能的配置与使用。首先在yarn-site.xml中启用标签功能并配置存储路径,通过yarn rmadmin命令添加集群标签(如spark、flink)并绑定到指定节点。然后在capacity-scheduler.xml中配置队列与标签的映射关系,限制特定队列只能访问对应标签节点。最后给出Spark和Flink应用的提交示例,通过参数指定任务使用的节点标签和队列,实现资源隔离与定向调度。该功能适用于需要特定硬件资源的任务场景。

2025-07-28 16:30:11 595

原创 Flink pushGateway监控

Flink监控配置与指标集成指南 本文介绍了Flink监控系统的配置方法和关键指标分类。首先通过修改flink-conf.yaml文件配置Pushgateway上报,添加相应依赖后即可实现指标采集。Flink监控指标分为四大类:作业级指标(如重启次数、检查点相关数据)、任务级指标(处理记录数、延迟)、操作符级指标(水位线、状态大小)以及系统资源指标(CPU/内存使用率)。这些指标通过Grafana仪表盘(如ID:14161)可视化,帮助开发者监控作业稳定性、吞吐量和资源使用情况,为性能优化和故障排查提供数据

2025-07-28 13:54:42 757

原创 Hadoop JMX 配置的完整文档

本文介绍了JMX在Hadoop监控中的应用,包括JMX基础概念及其在Hadoop组件(NameNode、DataNode、ResourceManager、NodeManager)中的关键指标查询方式。通过具体的HTTP JMX接口示例,展示了如何获取各组件运行时的性能数据,如文件系统状态、集群资源、节点活动等。这些接口可用于实时监控Hadoop集群健康状况和性能表现。

2025-07-28 13:40:45 581

原创 JDBC时间类型与Java类型、Flink SQL时间类型与Java类型的对应关系

摘要:本文介绍了JDBC与Flink SQL中时间类型与Java类型的对应关系。JDBC中,TIMESTAMP对应java.sql.Timestamp,DATE和TIME分别对应java.sql.Date和java.sql.Time。Flink SQL中,TIMESTAMP(3)映射为LocalDateTime,TIMESTAMP_LTZ(3)对应Instant,DATE和TIME(0)分别对应LocalDate和LocalTime,时间间隔则用Integer或Long表示。

2025-07-25 18:28:10 444

原创 Flink 流批一体Source架构设计

Flink 新 Source 架构解析 Flink 新 Source 架构采用两级协调机制,由 JobManager 和 TaskManager 协同工作。JobManager 中的 SourceCoordinator 管理 SplitEnumerator,负责数据分片发现和分配;TaskManager 运行 SourceOperator 实例,包含实际读取数据的 SourceReader。该架构支持三种分片处理模式:单分片顺序处理、多分片复用和多分片多线程处理,适用于文件、Kafka、Kinesis 等不

2025-07-23 14:40:59 488

原创 Flink StreamTask详解及单线程Mailbox事件模型

摘要:本文介绍了Flink流处理中的核心执行机制Mailbox模型。该模型借鉴了Actor架构思想,通过优先级队列管理任务执行,确保高优先级事件(如检查点)优先处理。核心组件包括TaskMailbox(事件队列)、MailboxProcessor(事件循环引擎)和MailboxExecutor(任务提交接口)。文章详细分析了该模型在异步状态执行和定时器触发等场景的应用,如通过yield机制实现反压控制,以及FLIP-424提出的异步状态API框架,该框架支持状态操作的并行执行,同时保持记录处理顺序。模型通过

2025-07-22 19:10:11 295

原创 Flink TaskManager之Task触发原理

本文介绍了Flink任务启动流程和数据交换机制。任务启动流程包括JobGraph提交、资源分配和任务部署,涉及JobMaster、ResourceManager等核心组件,以及ExecutionGraph、ExecutionVertex等数据结构。数据交换机制分为远程和本地两种方式,本地交换通过对象引用传递实现高效通信。文章还简要提及了BlobServer架构和Task的生命周期管理,为理解Flink任务执行提供了技术细节。

2025-07-22 14:37:59 758

原创 PaimonSchemaEvolution实现原理

Paimon Schema Evolution 在Flink下的实现机制

2025-07-19 15:22:38 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除