- 博客(29)
- 收藏
- 关注
原创 [Advanced RAG] 第一篇:数据提取与索引
确保输入数据的质量,删除无关内容、不准识别内容、如特殊字符、停用词等,并纠正错误、以提高语义表示的质量、确认重复准确性、更新过时信息等。
2025-10-15 17:00:00
1055
原创 RAG父子分块策略解析
本文介绍了检索增强生成(RAG)系统中父子分块策略的关键作用。传统分块方法面临两难:小分块检索精准但缺乏上下文,大分块上下文完整但检索困难。父子分块通过建立两个层级化解这一矛盾:子块作为精干的侦察兵,负责精准检索;父块作为强大的后勤总部,提供完整上下文。文章以清华大学学生手册为例,解析了父子分块的工作流程和优势,并通过产品文档的实例演示了该系统如何准确回答用户提问。该策略有效平衡了检索精度和生成质量,是RAG系统的重要优化方案。
2025-10-15 10:06:56
833
原创 Naive RAG
当前,RAG技术已发展出三种主要类型:Naive RAG(朴素RAG)、Advanced RAG(高级RAG)和Modular RAG(模块化RAG)。尽管RAG在成本效益上优于原生大语言模型(LLM),但它仍存在若干局限性。这也让人感到:RAG 虽然入门容易,但要想做好却颇具挑战。为了克服Naive RAG中的不足,Advanced RAG与Modular RAG应运而生,代表了RAG技术进一步演进的重要方向。
2025-10-14 19:41:48
924
原创 模型微调训练中超长文本训练存在的问题
自定义内容添加到vocab中token.add_tokens(new_tokens=["阳光"])print("阳光" in vocab)现在重新编码,发现阳光就能被编码到一起了。除了添加一般的内容,我们也可以添加特殊的词,但一般不需要加。添加普通文本或特殊词后,就会跟config.json配置文件冲突,导致没法用。
2025-08-26 10:47:24
337
原创 为什么NLP任务中的数据不直接处理成矩阵,而是直接返回文本形式?
如果我们在数据加载时就把固定的位置向量加到了词向量上,那么这些位置参数就无法被训练了。如果用的是可学习的位置编码,那它根本就无法在数据加载时被定义。在数据加载时,我们可能还不知道一个批次中最长的序列长度是多少(通常需要在一个批次内进行Padding才能统一长度)。位置编码也不会在这里做。①目前使用的transformers模型的特殊性导致我们没有办法在做数据集的时候就直接把数据转为词向量。但真正的词向量操作是发生在模型内部的,是在embeddings阶段。位置编码发生在取100条数据的时候进行编码操作的。
2025-08-25 17:09:13
252
原创 RAG所存在的问题和解决方案
本文探讨了RAG系统中的关键技术和挑战。主要问题包括:文档解析准确性、文本分块策略、查询优化、检索质量、结果排序和回答评估。对于RAG出现的问题提出优化方案。
2025-08-11 16:19:09
788
原创 向量检索算法综述:KNN、近似KNN与主流ANN索引算法(PQ、NSW、HNSW)
本文系统介绍了向量索引技术及其在高效检索中的应用。首先解释了向量索引作为高维向量快速查找目录的核心功能,然后详细分析了RAG流程中的召回与排序两阶段:召回阶段追求高召回率,排序阶段则结合业务逻辑进行个性化重排序。文章重点剖析了多种ANN技术:倒排索引(IVF)的文本检索原理、KNN搜索及其时间复杂度问题、近似KNN的空间分块优化、Product Quantization(PQ)的向量压缩编码方法,以及NSW和HNSW图结构的高效搜索机制。
2025-08-06 14:49:37
1099
原创 Prompt Engineering
提示工程(Prompt Engineering)是指导AI模型生成所需输出的技术,被称为AGI时代的”编程语言“。它包含角色定义、任务描述、上下文信息等关键要素,通过结构化指令实现精准控制。文章以流量套餐客服系统为例,展示了如何构建包含语义理解(NLU)功能的prompt模板,强调具体、明确、少歧义的设计原则。随着AI发展,提示工程将从专业领域演变为大众基础技能,其核心价值在于将人类意图高效转化为机器可执行的指令。
2025-08-04 19:00:00
820
原创 FastAPI入门:快速构建高性能Python API
FastAPI是一个高性能的Python Web框架,基于ASGI标准构建,支持异步请求处理。它具有开发效率高、性能优异、自动生成文档等特点,代码简洁且类型安全,能显著减少人为错误。框架提供自动交互式文档,支持OpenAPI标准,并兼容多种ASGI服务器如Uvicorn和Hypercorn。安装简单,只需pip install fastapi并搭配ASGI服务器即可运行。典型应用包括创建API接口,未来可能向智能化、灵活性和安全性方向发展,适合电商、社交等现代Web应用开发。
2025-08-04 13:39:37
1082
原创 OS学习笔记
这篇文章摘要总结了计算机操作系统的基本知识点,主要包括: 计算机基础概念:包括2的幂次方表、常用ASCII码、存储器层次结构的速度差异等硬件基础知识。 操作系统核心概念:定义了操作系统作为系统资源管理者的角色,介绍了其四大功能(处理机管理、内存管理、文件系统和输入输出管理)和三大目标(安全、高效、易用)。 运行机制:详细说明了CPU的内核态和用户态两种工作状态,以及系统调用作为用户程序访问内核的唯一方式。 进程管理:对比了进程与程序、进程与线程的区别,并描述了进程的多种状态(就绪、运行、阻塞等)及其转换关系
2025-07-08 20:42:30
430
原创 [解决]在Arduino IDE 打开 ino 类型文件处于read only editor模式
发现只读被勾上,取消打勾并点击最下方的确认。解决方法:右键点击ino类型文件(你打开的那个)进入属性栏。今天打开一个ino类型文件发现这个问题,无法编辑……
2024-10-24 12:54:05
1199
原创 [数字图像处理]基础知识整理(部分,持续更新)
程序中描述一副图像,已知其横向纵向的像素个数即可(×)灰度直方图能反映一副图像各个灰度级像素占图像的面积比(√)从程序编写的角度看,描述一副图像的基本属性通常包括其分辨率,即图像的宽度和高度,用像素单位表示。图像灰度直方图反映了灰度分布一般来说,量化级别越高,图像数据量越大;反之亦然(√)图像灰度直方图除以图像总像素数,得到的是归一化直方图(√)从图像的累计归一直方图,可以求出其对应的归一化直方图图像对灰度直方图的关系是多对一,图像到灰度直方图是一一对应的。
2024-07-12 00:43:21
1350
原创 Linux知识整理(持续更新)
Linux的目录结构是一个树型结构Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。(全部更新完会取消VIP)
2024-03-23 12:32:43
1211
1
原创 数据的表示、运算方法和运算部件
12位浮点数,阶码4位,包含1位阶符,尾数8位,包含1位数符,阶码、尾数都用补码表示,阶码在前,尾数(包括数符)在后,已知: X=(-0.1001011)×2001,Y=0.1100101×2-010,求Z=X+Y。某字长为8位的计算机中,已知整型变量x,y的机器数分别为[X]补=11110100,[y]补=10110000,若整型变量z=2*x+y/2,则z的机器数为。E为阶码,为纯整数,用。6.在补码一位乘法中,A补是累加和,X补是被乘数,Y补是乘数,当判断YnYn+1=01时,执行的运算时。
2024-02-28 20:35:45
2050
原创 输入输出系统
输入输出系统概述I/O接口不同配置和不同用途的输入输出系统,其接口功能不尽相同,但一般都具有功能:实现数据缓冲、执行CPU的命令、返回外设的状态、设备选择、实现数据格式\数据类型的转换、实现信号的转换、中断管理。CPU与外设之间必须通过一个接口电路,以协调CPU与外设交换信息的工作。输入输出操作的最终目的是实现CPU与外设之间的数据传输.计算机系统的输入输出接口是主机与外围设备之间的交接界面。计算机系统的输入/输出接口是CPU与外设之间的交接界面。输入输出设备的编址与管理。
2024-02-28 20:35:30
1562
原创 计算机指令系统
概述计算机指令是指挥CPU进行操作的命令,指令通常由操作码和地址码组成。指令系统是计算机的硬件语言系统,它既为硬件设计者提供最基本的硬件功能设计依据,又为软件设计者提供最底层的程序设计语言。是指能被计算机硬件识别并执行的0、1代码串。是一台计算机中所有机器指令的集合,它体现了计算机的性能。兼容机之间的指令系统是相同的,但硬件的实现方法可以不同。(√)机器中的寄存器和存储单元是统一编址的(×)机器中的寄存器和存储单元不是统一编址的。程序计数器PC用来指示从内存中取指令。(√)
2024-01-24 18:53:26
1582
1
原创 计算机系统概述
当CPU向存储器送送入或从存储器取出信息时,不能存取单个的“位”,而用 B(字节) 和 W(字)等较大的信息单位来工作。的基本任务是按照程序所排的指令序列,从存储器取出指令操作码到控制器中,对指令操作码译码分析,执行指令操作;的功能是对当前指令所需完成的操作进行译码分析,产生各种控制信号,控制计算机自动、协调地工作。是介于硬件层和指令集体系结构层之间的一层,负责将指令集体系结构层中的指令翻译成硬件层可以执行的微指令。半导体集成电路的发展,使CPU和主存的造价降低,而外部设备在硬件系统中的价格比重却在增加。
2024-01-14 16:56:59
1134
1
原创 结构体知识点
语句 printf("%s,%d,%d,%d",x[0].name, x[1].birthday.year);t[1].sec++)中++的是加t[1]中成员sec的值,同理++t[1].hour中++的是t[1]中成员hour的++。x[1].name (x+1)->name (*(x+1)).name表述也相同。设STU 是某个结构体类型的别名,STU a[20], *b, x, y;并已知函数原型是 STU fun(STU a[], STU *b, int c);
2023-06-16 10:33:41
434
1
原创 C语言知识点一
本题中ch为字符'H',所以case'H'条件中的语句将被执行,由于没有break语句,所以case'G'后的语句也被执行,由于同样没有break语句,所以default后的语句也被执行了。是一个用单引号括起来的单个字符(转义字符自带\开头,带两个或多个字符,但它只代表一个字符,\后跟八进制数据,比如'\101'表示字符A,一般\后最多三位),在C语言中一个字符常量代表ASCII字符集中的一个字符,字符常量在内存中占4个字节,存放的是字符的ASCII码(整型数据)。'1'和1是不同概念。
2023-05-13 14:42:05
3342
原创 函数知识点
在程序中用到的所有函数,必须“先定义,后使用”。所有函数都是平行的,即在定义函数是是分别进行的,是互相独立的。一个函数并不从属于另一个函数,即函数不能嵌套定义。函数间可以互相调用,但不能调用maiin函数。main函数是被操作系统调用的。定义函数需包含以下几个内容①指定函数的名字,以便以后按名调用。②指定函数的类型,即函数返回值的类型。③指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。对无参函数不需要这一项。④指定函数应该完成什么操作,也就是函数时做什么的,即函数的功能。
2023-05-13 14:41:17
2536
Arduino实验 esp32的DHT11传感器数据通过wifi上传到阿里云物联网(灯光报警)
2025-01-21
【STM32CubeMX F1】GPIO寄存器编程点灯
2024-07-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅