一文搞懂RAG分块技术:提升大模型准确性的关键(建议收藏)

2023华为OD机试真题B卷 Python 实现【最长的元音子串长度】 定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成的子序列称为该字符串的子串 阅读详情

文本分块(Chunking)是决定 RAG(检索增强生成)系统成败的核心技术之一,却常常在幕后默默发挥作用。简单来说,分块就是把长文档切分成更小、结构化的片段,让 AI 系统能够真正检索和推理。

分块可以:

  • • 降低数据检索中的噪声
  • • 减少 AI 幻觉(即生成错误或误导性结果)
  • • 缓解上下文丢失问题

上下文丢失,指模型要么收到文本过多、要么过少,无法判断哪些信息属于同一主题,也记不住句子、话题、章节之间的关联。简言之,因为检索到的数据杂乱无章,模型根本无法理解用户在问什么。 只要采用合适的分块策略,RAG 应用就能成为高度可靠的知识系统,返回简洁、上下文相关的答案。

分块不只是一个预处理技巧,而是 RAG 的基石,它让系统能够快速、规模化地稳定运行,并输出准确、上下文感知的响应。下图展示了信息在 RAG 系统中的流转过程。


RAG 架构中的文本分块

分块在数据入库之后、向量化之前执行,是决定信息如何存储、检索并最终被大模型使用的最关键一步。

我们不会把整篇文档直接喂给模型,而是通过分块,将其切分成语义上有意义的上下文窗口。 在数据入库阶段,系统会收集 PDF、规章制度、手册、网页、对话记录、内部知识库等原始文档,并将其转为纯文本。这些提取出的文本通常过长、格式混乱、噪声多,不适合直接向量化或检索。在向量化之前,内容必须被结构化和规范化——这就是分块的核心价值。

分块将大文本切分成语义或结构上有意义的单元。 这一点之所以重要,是因为:

  • • 向量嵌入模型有上下文长度限制,超长输入效果极差
  • • 检索引擎在上下文过大、包含无关数据时表现糟糕

分块通过把数据整理成兼顾语义完整性与嵌入效率的均衡单元,解决了这些问题。

上图展示了不同分块大小对 RAG 准确率的影响。 分块边界决定了嵌入的粒度,进而影响向量检索精度——因为相似度检索(如余弦相似度、距离度量)依赖每个分块的语义指纹质量。 在 RAG 架构中,分块是一项核心结构决策,直接决定整条 pipeline 的性能。


主流 RAG 文本分块策略

实际应用中有多种分块策略,各有优劣,以下是几种关键方案:

固定大小分块(Fixed-Size Chunking)

最直接的分块方式,按 Token 数量切分。例如每 300 个 Token 切一块。

  • • 优点:嵌入大小可预测,实现简单
  • • 缺点:可能在句子中间切断,造成检索噪声
  • • 适用:日志、邮件等结构规整、模式重复的文本
from langchain.text_splitter import RecursiveCharacterTextSplittertext_splitter = RecursiveCharacterTextSplitter(    chunk_size=300,    chunk_overlap=0)

语义分块(Semantic Chunking)

不按固定长度切分,而是基于语义与含义切分,可通过 NLP 或 LLM 实现:

  • • NLP 方式:依赖句子边界、段落分隔、章节标题,成本低、速度快,但更僵化
  • • LLM 方式:深度分析内容,识别话题切换,自动决定边界,对格式差的文本更友好

下面是基于 LangChain 的语义分块示例: SemanticChunker 根据语义相似度而非固定 Token 数划分边界,需要嵌入模型计算相邻文本的相似度,以检测话题切换。

from langchain_experimental.text_splitter import SemanticChunkerfrom langchain_openai.embeddings import OpenAIEmbeddingsembed_model = OpenAIEmbeddings()semantic_chunker = SemanticChunker(    embed_model,    breakpoint_threshold_type="percentile")

滑动窗口分块(Sliding Window Chunking)

混合方案,用来解决固定分块切断重要上下文的问题。 通过创建重叠分块避免信息丢失,例如 400 Token 的分块,设置 20%–30% 重叠。 这样,靠近边界的概念至少会出现在两个分块中,提升连贯性。

from langchain_text_splitters import TokenTextSplittertext_splitter = TokenTextSplitter(    chunk_size=400,    chunk_overlap=100)

反向分块(Reverse Chunking)

适用于关键信息出现在章节末尾、总结、脚注的数据集。 不从文档开头分块,而是从末尾向前分块,确保以总结为核心的文档,关键要点保留在同一块内,而不是散落在多个分块中。 这能让检索系统直接返回高信息密度内容,而不必使用过大的分块。

from langchain.text_splitter import RecursiveCharacterTextSplittertext_splitter = RecursiveCharacterTextSplitter(    chunk_size=300,    chunk_overlap=0)chunks = text_splitter.split_text(text)chunks = list(reversed(chunks))

Agentic 分块(Agentic Chunking)

一种新兴的智能分块机制:由 LLM Agent 根据预设指令、检索目标和评估反馈,动态决定分块边界。 Agent 会通读整篇文档,然后决定如何切分信息,以最大化特定场景的检索准确率。 到目前为止,这种方式最接近人类整理知识库时的分块逻辑。


如何选择合适的分块以实现最优检索

分块策略的选择,取决于多个因素:内容结构、查询类型、检索精度要求、成本与延迟、模型混淆风险。

内容结构

  • • 学术/研究类文本:概念层层递进,随意固定分块会破坏核心思想,优先语义分块
  • • 产品手册、API 文档:格式重复、结构规整,可接受固定大小分块

查询类型

  • • 高精度问题(审计推理、法律解释):必须保留语义边界,确保整段相关条款被完整检索
  • • 宽泛意图问题:更大的分块更有利于保留叙事逻辑

检索粒度

  • • 小块:检索更精准,但容易丢失上下文,模型需要拼接多段信息
  • • 大块:保留上下文,但会引入噪声,降低精度

是追求“手术刀式精准”还是“更丰富的上下文”,取决于具体场景。

成本与延迟

分块越多,嵌入计算与存储成本越高。 滑动窗口因为重叠分块,会进一步增加计算量与成本。 企业规模化落地 RAG 时,必须权衡:精度提升是否值得额外成本。

最小化模型混淆

  • • 分块太小:模型需要拼接大量碎片,幻觉增多、回答不连贯
  • • 分块太大:检索返回噪声内容,稀释精度

企业级 RAG 系统的真实应用场景与挑战

分块在企业场景中是安全与合规级别的关键环节,典型场景包括:

合规与风险检索

处理审计材料的企业,必须保证关键词与其上下文绑定,错误切分可能导致关键审计上下文被割裂。

客服自动化

银行、电信、酒店、航空、保险等行业用 RAG 提供故障排查、政策解读、高频问答。

医疗与保险

分块直接影响安全性与准确性。 临床笔记、诊断描述、保单规则必须保留在同一块内,否则检索可能合并不兼容上下文,或错误呈现关键信息。

企业常见挑战

  • • 原始文档存在 OCR 错误、异常空格、断句
  • • 不同部门数据噪声大、高度重叠
  • • 过度使用滑动窗口会抬高存储成本
  • • 过于粗糙的分块会直接导致检索失败

这些挑战都说明:分块是一项战略设计,直接决定 RAG 系统成败。


最后唠两句

为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选

很简单,这些岗位缺人且高薪

智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

1773917233288)

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

那0基础普通人如何学习大模型 ?

深耕科技一线十二载,亲历技术浪潮变迁。我见证那些率先拥抱AI的同行,如何建立起效率与薪资的代际优势。如今,我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理,分享于此,为你扫清学习困惑,共赴AI时代新程。

我整理出这套 AI 大模型突围资料包【允许白嫖】:

  • ✅从入门到精通的全套视频教程

  • ✅AI大模型学习路线图(0基础到项目实战仅需90天)

  • ✅大模型书籍与技术文档PDF

  • ✅各大厂大模型面试题目详解

  • ✅640套AI大模型报告合集

  • ✅大模型入门实战训练

这份完整版的大模型 AI 学习和面试资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

①从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

在这里插入图片描述

② AI大模型学习路线图(0基础到项目实战仅需90天)

全过程AI大模型学习路线

在这里插入图片描述

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

在这里插入图片描述

④各大厂大模型面试题目详解

在这里插入图片描述

⑤640套AI大模型报告合集

在这里插入图片描述

⑥大模型入门实战训练

在这里插入图片描述

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理 本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。 阅读详情

相关推荐

别再乱点U盘里的.exe了!手把手教你彻底清除那个伪装成Usb Disk的蠕虫病毒

本文详细介绍了如何识别、清除和预防伪装成Usb Disk的蠕虫病毒。从识别感染迹象到安全备份文件,再到深度清理病毒残留和构建防护策略,提供了一套完整的U盘病毒解决方案。特别提醒用户注意U盘病毒的风险,并养成良好的使用习惯。

weixin_30496999的博客 658

【建议收藏】RAG分块策略全攻略:提升大模型检索质量的关键技术

保证100%免费。

python12345_的博客 1164

Python实战:用SkillMetrics库5分钟搞定泰勒图绘制(附完整代码)

本文详细介绍了如何使用Python的SkillMetrics库快速绘制专业泰勒图,以直观对比多个模型的预测性能。通过整合相关系数、标准差和中心化均方根误差三个核心指标,该工具能帮助数据科学家和研究者高效完成模型评估与可视化,提升分析报告质量。文章提供了从环境配置、数据准备到高级定制与子图对比的完整代码示例。

7z8x2c4v6b9的博客 371

分块的艺术:提升 RAG 效果的关键

长话短说,检索增强生成(RAG)是一种巧妙的方法,它把检索机制和大型语言模型(LLM)结合在了一起。简单来说,就是让AI在生成回答之前,先“翻翻资料”——通过检索相关文档来增强自己的能力。这样一来,AI给出的回答不仅更准确,还能带上更多上下文信息,显得更有深度和针对性。总结一下,分块这招对优化RAG系统来说,绝对是个关键策略。它能让系统的回答更准、更贴合上下文,还能轻松应对大规模需求。说白了,把大段文本切成小块,不仅找东西更快更准,还能让AI应用的整体效率蹭蹭往上涨。

yanqianglifei的专栏 1367

mt7601 kernel 4.19内核集成版本,以及源码编译相关问题

/os/linux/Makefile.6文件: 添加 EXTRA_CFLAGS += -Wno-incompatible-pointer-types -Wno-date-time。看下iwpriv与iwconfig的源码区别,左侧为iwconfig ,没有用到ioctl,右侧为iwpriv。1、init_timer kernel 4.19内核版本API已经改变,使用timer_setup。使用iwpriv 提示如下,iwpriv工具无法使用了,而iwconfig可以使用。makefile的修改。

1590

SAP_SD模块路径及运输功能后台配置简介

后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义传输模式根据实际运输过程运输地理的类型:海运、公路运输、空运后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义发运类型根据实际运输过程运输方式:汽车、卡车、火车、轮船、飞机后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义运输连接点指在运输过程中需要中转的地区可以维护中转地区的停留的时间后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义路径和阶段。

我小时候很黑的博客 1394

小白必学!一文搞懂大模型关键技术RAG,建议收藏!

小白必学!一文搞懂大模型关键技术RAG,建议收藏!

ytt0523_com的博客 1031

LSTM 深度解析从原理推演到现代序列建模的演进

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的递归神经网络(RNN),它通过引入记忆单元(Cell State)来解决普通RNN在长序列数据处理中的梯度消失问题。LSTM可以在长时间的序列中捕捉依赖关系,是一种非常适合处理时间序列、自然语言处理、语音识别等任务的深度学习模型。在LSTM中,记忆单元(Cell State)是一个贯穿整个序列的数据通道,用于存储和传递关键信息。记忆单元在LSTM的时间步之间保持信息的持久性,可以看作是一个长期记忆的“容器”。

hello.reader 3万+

大模型RAG系统分块技术详解:从原理到实战(小白也能学会,建议收藏)

RAG技术通过检索与生成结合解决大模型在企业应用中的局限,分块策略是核心环节。文章分析RAG分块面临的准确性、召回率和复杂文档解析三大问题,详细介绍五种分块策略的原理、优缺点及适用场景,提供选择建议。针对知识关联缺失、多模态理解不足等挑战,提出混合检索、查询扩展等前沿解决方案,为构建高效可靠的RAG系统提供技术指导。

2401_85325726的博客 978

RH850从0搭建Autosar开发环境【2】- Davinci Configurator配置工程导入DBC与CDD文件

Davinci Configurator配置工程导入DBC与CDD文件,开始Autosar开发

weixin_42412049的博客 8146

基于 YOLOv26 的金属表面缺陷检测系统:智能视觉质检方案

摘要: 基于YOLOv26的金属表面缺陷检测系统采用深度学习技术,实现对划痕、裂纹、腐蚀等8类常见缺陷的自动化检测。系统通过数据增强预处理和YOLOv26模型的高精度识别能力,具备多类别分类、实时推理和强鲁棒性特点,适用于不同金属材质与光照条件。架构包含数据采集、预处理、YOLOv26检测和后处理模块,代码实现采用PyTorch框架,支持训练数据增强与标准化处理,为工业质检提供高效智能解决方案。

一键难忘的博客 587

【必收藏】RAG分块技术全解析:5种企业级大模型应用落地方法

本文详细介绍了RAG架构中关键的文档分块技术,包括固定大小分块、语义分块、递归分块、基于文档结构分块和基于LLM分块五种方法。分析了每种技术的原理、优缺点及适用场景。语义分块在多数情况下效果最佳,但最终选择需根据内容性质、嵌入模型能力和计算资源等因素综合考量。正确选择分块技术对提高RAG系统检索准确性和生成回答质量至关重要。

优快云_224022的博客 1925

Go语言面试:面试中经常被问到的50个经典面试题(附参考答案)

Go语言核心知识点摘要 基础语法与数据结构 make和new区别:new分配零值内存返回指针,make初始化引用类型返回实例 Slice底层:包含指针、长度、容量的结构体,多个slice可共享底层数组 nil与空slice:nil指针为nil,空slice指针非nil但JSON编码不同 Map原理:哈希表实现,非线程安全,扩容策略影响性能 for range注意:循环变量是拷贝,map遍历无序 defer执行:LIFO顺序,函数返回前执行 Struct比较:仅当所有字段可比较时才可比较 参数传递:只有值传递

数据知道的博客 4717

掌握分块策略:用你的数据锚定大模型,提升RAG应用准确性与收藏价值

简单来说,分块是将大型文档分解为更小、更易于管理的片段(称为“块”或 chunks)的过程。这是准备数据以供大语言模型使用时的关键第一步。主要原因是 LLM 具有有限的上下文窗口(context window),这意味着它们一次只能处理一定量的文本。如果上下文窗口中的文本过多,重要的细节就会丢失,从而导致答案不完整或不准确。分块通过创建更小、更聚焦的内容片段来解决这个问题,使 LLM 能够利用这些片段回答用户的查询,而不会迷失在无关的信息中。每个块的大小、内容和语义边界。

m0_48891301的博客 781

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RAG效果提升指南:分块技术的应用

长话短说,检索增强生成(RAG)是一种巧妙的方法,它把检索机制和大型语言模型(LLM)结合在了一起。简单来说,就是让AI在生成回答之前,先“翻翻资料”——通过检索相关文档来增强自己的能力。这样一来,AI给出的回答不仅更准确,还能带上更多上下文信息,显得更有深度和针对性。

m0_65555479的博客 1102

深度学习工具包 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'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('DeepLearnToolbox'));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('state',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'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',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 = 'sigm';%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, 'Too big error');```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('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';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)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';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, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% 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'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 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, 'Too big error');```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('state',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, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',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, 'Too big error');%% ex3 neural net with dropoutrand('state',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, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % 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, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % 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, 'Too big error');%% 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('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % 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, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RAG分块策略完全指南:解决大模型幻觉与信息检索难题,建议收藏学习

分块策略优点缺点适用场景固定大小分块实现简单,资源高效语义断裂,信息冗余快速处理非结构化文本语义分块语义完整,检索精准计算复杂,依赖阈值高精度问答、复杂文档递归分块灵活适应长文档,保留结构块大小不均,逻辑断裂风险长篇技术文档、企业报告基于结构的分块逻辑清晰,检索高效依赖格式标准化,预处理复杂结构化文档(论文、白皮书)基于LLM的分块高度智能,适应非结构化文本计算成本高,决策过程不可控非结构化内容、跨领域整合4、RAG分块策略选择建议。

AI大模型的博客 1162

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

揭秘大模型提升秘诀:RAG系统中的文本分块策略

LangChain 还预定义了其他编程语言(如 Go、C++、Java)等的分割符列表,方便用户快速定义新的文本切块类。如果需要处理未提供的文本格式,可以参照已有的类实现。自定义示例:创建一个用于切分 Java 代码的文本切块类。"\n\n", # 空行"\n", # 换行", # 语句结束" ", # 空格"" # 无分隔符text = "..." # 待处理的 Java 代码print(doc)通过自定义分割符列表和参数设置,可以灵活地适应不同格式文本的切分需求。

FrenzyTechAI的博客 3152

大模型RAG中的分块策略(一)什么是分块?分块技术及其策略

分块涉及将文本划分为可管理的单元或“块”,以实现高效处理。这种分割对于语义搜索、信息检索和生成式 AI 应用等任务至关重要。每个块都保留上下文和语义完整性,以确保结果连贯。

Androiddddd的博客 1861

收藏级干货!RAG五大分块策略全解析:从原理到落地,搞定大模型检索效率瓶颈

分块策略优点缺点适用场景固定大小分块实现简单,资源高效语义断裂,信息冗余快速处理非结构化文本语义分块语义完整,检索精准计算复杂,依赖阈值高精度问答、复杂文档递归分块灵活适应长文档,保留结构块大小不均,逻辑断裂风险长篇技术文档、企业报告基于结构的分块逻辑清晰,检索高效依赖格式标准化,预处理复杂结构化文档(论文、白皮书)基于LLM的分块高度智能,适应非结构化文本计算成本高,决策过程不可控非结构化内容、跨领域整合4、RAG分块策略选择建议。

weixin_59191169的博客 1099

大模型RAG:文档分块方案与RAG全流程

我们知道,大模型在预训练阶段获取的知识是有限的,一般需要数据增强模块引入外部知识库,通过知识检索的方式搜索于用户提问相关的知识,这也是RAG相关应用架构出现的原因。但这又引申出另一个问题,外部知识文档往往比较长,可能是包含几十页甚至数百页的内容,如果直接使用会存在以下问题:大模型在预训练过程都有上下文长度限制,如果超过长度限制大模型会将超出部分丢弃,从而影响回答的性能表现。

qingkahui24689的博客 2957

收藏备用!RAG技术5大分块策略全解析:从原理到落地,解决检索准确性与召回率难题

分块策略优点缺点适用场景固定大小分块实现简单,资源高效语义断裂,信息冗余快速处理非结构化文本语义分块语义完整,检索精准计算复杂,依赖阈值高精度问答、复杂文档递归分块灵活适应长文档,保留结构块大小不均,逻辑断裂风险长篇技术文档、企业报告基于结构的分块逻辑清晰,检索高效依赖格式标准化,预处理复杂结构化文档(论文、白皮书)基于LLM的分块高度智能,适应非结构化文本计算成本高,决策过程不可控非结构化内容、跨领域整合4、RAG分块策略选择建议。

优快云_430422的博客 1147

【RAG实战】一文搞懂RAG五大分块策略

本文深入探讨了RAG(检索增强生成)中的五大分块策略,强调分块是提升检索效果的关键环节。文章首先介绍了RAG基本流程和分块的重要性,指出分块需平衡长度限制与语义相关性。随后详细解析了五种分块方法:固定大小分块(按token数量切分)、语义分块(基于内容连贯性)、递归分块(结合分隔符与长度)、文档结构分块(利用文本层级)以及基于LLM的分块(效果优但成本高)。最后强调实践中需灵活组合策略,才能优化检索精度与生成质量。全文为理解RAG分块技术提供了清晰框架。

m0_66287144的博客 718

RAG—Chunking策略实战:RAG系统分块(chunking)技术全解析

在实际场景中,最常见的错误是按固定长度生硬切割,忽略文档的结构与语义:定义与信息被切开、表头与数据分离、步骤说明被截断、代码与注释脱节,结果就是召回命中却无法支撑结论,甚至诱发幻觉与错误引用。相反,高质量的分块应尽量贴合自然边界(标题、段落、列表、表格、代码块等),以适度重叠保持上下文连续,并保留必要的来源与章节元数据,确保可追溯与重排可用。以标题层级(H1–H6、编号标题)或语义块(段落、列表、表格、代码块)为此类型文档的天然边界,对过长的结构块再做二次细分,对过短的进行相邻合并。

HUANGXIN9898的博客 1075

收藏必备:大模型RAG应用中的文本分块技术:从原理到实践

收藏必备:大模型RAG应用中的文本分块技术:从原理到实践

大模型教程的博客 1342
上一篇: 收藏这篇!一文详解AI大模型从LLM到平台落地的9大核心概念,小白程序员必看指南
下一篇: 程序员必看!从零构建你的第一个AI Agent:超详细入门教程(建议收藏)
Agent学习路线
博客等级 码龄6年 1万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值