- 博客(88)
- 收藏
- 关注
原创 Neo4j中的APOC
摘要:本文分析了Neo4j在知识图谱(KG)查询中的路径爆炸问题,指出Cypher查询会枚举所有路径导致内存溢出(OOM)。通过引入APOC扩展库,将Neo4j从路径枚举器转变为可控的图遍历引擎,采用BFS、剪枝、limit等机制避免OOM。文章详细解析了APOC的核心原理、在KG中的实际应用场景、安装配置要点,并强调APOC使Neo4j成为图搜索引擎而非简单数据库,形成"LLM规划+APOC搜索+Python重排"的标准KG-QA架构。
2026-01-04 14:43:11
557
原创 知识点12.22
本文摘要: Milvus向量数据库详解:介绍了三种搜索模式(语义搜索、全文检索、混合搜索)的核心机制、实现方式和适用场景,对比了新旧API的参数差异,分析了HNSW和IVF索引的性能特点。Python开发实践:涵盖conda环境管理策略、文件编码处理、HTTP API调用最佳实践。FastAPI应用:讲解路由定义、ASGI服务器配置和无状态协议实现。PyTorch使用:说明版本管理和GPU计算策略。Git操作:解析换行符处理和提交规范。网络调试:介绍连接诊断工具和日志调试方法。架构设计:探讨微服务通信、配置
2025-12-22 13:27:20
412
原创 大模型与检索系统集成开发核心知识点总结
本文总结了异步编程、并发控制、FastAPI开发等多项关键技术要点。在异步编程方面,强调正确处理事件循环和资源管理;并发控制需关注线程安全和资源保护;数据类型处理要确保类型一致性和安全序列化。错误处理应分层实施并记录详细日志,FastAPI开发需重视生命周期管理和线程安全。LangChain工具开发要遵循单一职责原则,RAG系统需控制检索范围和结果结构化。性能优化建议采用请求节流和连接复用策略,调试时采用分步验证和日志追踪方法。这些实践要点覆盖了从基础编程到系统集成的关键环节。
2025-12-22 13:11:11
589
原创 初次使用git的心得
本文整理了Linux/Git操作常见问题解答,涵盖文件管理、版本控制和协作开发。主要内容包括:Linux下rm/cp命令使用技巧;Git基本工作流(add/commit/push)及常见错误处理;分支管理(创建/合并/推送);版本回退与文件恢复方法;Gitee仓库创建与协作设置规范。特别强调Windows/Linux路径差异处理、提交信息规范、私有仓库安全配置等实用技巧,提供从基础操作到团队协作的完整Git使用指南。
2025-12-04 15:13:36
947
1
原创 空间智能是人工智能的下一个前沿领域
From Words to Worlds: Spatial Intelligence is AI’s Next Frontier
2025-11-11 22:33:48
647
原创 MCP-stdio通信
MCP协议实践摘要:本文通过问答形式系统介绍了Model Context Protocol(MCP)的核心概念与使用方法。MCP作为AI领域的标准化协议,采用客户端-服务器架构实现Prompt(提示词)、Tool(工具)、Resource(资源)三大核心功能的动态调用。重点解析了常见开发困惑,包括:1)使用字符串名称而非直接函数调用的解耦设计;2)Session对象的客户端角色定位;3)动态发现(list_)与实际调用(call_)的分离机制。通过FastMCP框架示例展示了服务端装饰器(@mcp.tool
2025-11-11 17:05:44
1180
原创 初学agent的最大疑问是什么
文章摘要:探讨LLM在对话代理中智能程度对工具调用准确性的影响。通过一个天气查询案例,展示了模型在分阶段思考(Think→Action→Observation)时可能出现的幻觉问题,以及如何通过结构化提示(REACT_PROMPT)和工具调用机制来规范输出流程。实验表明,强制模型遵循"Question→Thought→Action→Observation"的严格格式,结合错误处理机制(如JSON解析容错),能有效减少幻觉导致的连锁错误,最终准确输出"北京今天15°C,明天18°
2025-11-08 18:11:03
355
原创 Rag基本流程
📝 RAG技术解析:结合检索与生成的AI问答系统 RAG(Retrieval-Augmented Generation)是一种融合信息检索和大语言模型生成的技术框架,通过以下流程提升问答准确性: 1️⃣ 文档加载:读取原始文本数据 2️⃣ 文本分块:将长文本切分为语义连贯的片段 3️⃣ 向量化:使用嵌入模型(如BGE)转换为高维向量 4️⃣ 向量存储:存入专业数据库(推荐FAISS/Chroma) 5️⃣ 语义检索:通过相似度搜索获取相关文本 6️⃣ 答案生成:将检索结果输入LLM生成最终回答 关键优势:
2025-11-08 10:47:25
960
原创 Milvus简介
Milvus是一款面向企业级应用的开源向量数据库,专为超大规模向量相似度搜索设计,支持亿级向量的毫秒级检索。与Chroma和FAISS相比,Milvus具备分布式架构、混合搜索(向量+元数据)、多种索引优化等核心优势,适用于高并发、大数据量的生产环境。其典型应用场景包括企业级RAG系统、推荐引擎和图像检索。部署方式灵活,从嵌入式测试到Kubernetes集群均可支持。建议根据项目规模选择工具:原型开发用Chroma,单机高性能用FAISS,生产环境推荐Milvus。对于需要高可用性和混合查询的企业级AI应用
2025-10-27 13:56:26
1042
原创 RAG性能提升:从查询优化到范式演进的系统性路径
本文系统阐述了检索增强生成(RAG)技术的三层优化体系:1)查询优化层通过查询重写、术语扩展等方法提升检索召回率;2)检索增强层采用多索引检索和检索后重排序等技术提高检索精度;3)范式升级层引入Self-RAG等新型范式,实现智能检索决策。文章指出RAG性能提升需要构建完整的闭环系统,未来发展方向是使RAG具备认知智能,成为可信的知识助手。
2025-10-23 15:37:35
352
原创 为什么 vLLM 更“吃”显存?
vLLM相比HuggingFace Transformers更吃显存的核心原因在于其设计理念差异:vLLM为高性能推理预分配资源(如固定长度的KVCache、PagedAttention元数据),支持批量并发但启动开销大;Transformers则动态分配,更节省初始显存但效率较低。关键差异包括KVCache管理方式、精度选择、分页机制等。要让vLLM在有限显存下运行,可调整内存利用率、减小序列长度、禁用chunked prefill或使用量化模型。二者适用于不同场景:Transformers适合低并发需求
2025-10-22 01:20:08
884
原创 使用bert-base-chinese中文预训练模型,使用 lansinuote/ChnSentiCorp 中文网购评价数据集进行情感分类微调和训练。
你可以自己写一个包装类,替换nn.Linear为LoraLinear,但这非常繁琐且容易出错。问题核心答案4bit加载后为何还要处理?为训练做准备(梯度、检查点、嵌入层等)计算用 bfloat16 是否反量化?是,每次前向/反向都动态反量化作用?批次填充时不干扰语义,兼容 CLM?启用梯度检查点、确保可训练性r和lora_alpha关系?缩放因子为alpha / r,控制 LoRA 影响力其他应用 LoRA 方法?有但不推荐,最佳分页 AdamW?防止显存碎片,提升训练稳定性。
2025-10-16 19:55:57
941
原创 基于bert-base-chinese的外卖评论情绪分类项目
本文介绍了一个基于BERT的中文文本分类实现。主要步骤包括:1) 从CSV读取数据构建Dataset;2) 使用random_split划分训练/测试集;3) 通过BERT Tokenizer进行文本编码;4) 构建DataLoader批量处理数据;5) 创建基于BERT的分类模型,冻结预训练参数只微调分类层;6) 定义训练和验证流程。关键点是利用BERT提取特征,并在其输出层添加线性分类器,通过交叉熵损失和Adam优化器进行训练。代码实现完整,包含数据加载、模型构建、训练验证等环节,适合作为BERT文本分
2025-10-15 19:12:03
409
原创 BERT 中文外卖评价情感分析项目
本项目基于BERT模型实现了中文外卖评价情感分析,准确率达91%。针对12,000条标注评论(正面4,000/负面8,000),采用冻结BERT参数+微调分类层的策略,在PyTorch框架下构建了包含数据预处理、模型训练和评估的完整流程。实验显示模型快速收敛且泛化良好,但存在轻微过拟合。项目验证了预训练模型在中文NLP任务中的有效性,未来可通过全参数微调、改进评估指标等进一步提升性能。该案例为理解BERT工作原理及实际应用提供了实践参考。
2025-10-14 22:38:49
982
2
原创 Transformers中从 logits 本质到问答系统中的字符定位机制
本文系统解析了问答系统中logits生成机制与字符定位原理。首先阐述了logits作为模型原始输出的本质,指出其维度由任务类型决定。在问答任务中,模型通过start_logits和end_logits分别预测答案起止位置。重点剖析了offset_mapping的核心作用:它将分词后的token位置映射回原始文本字符位置,即使遇到subword分词也能保持精确对齐。通过代码示例展示了如何利用offset_mapping从预测的token索引转换为字符位置,最终提取出格式正确的答案。这一机制架起了离散token
2025-10-14 15:52:18
827
原创 BERT相关知识自测
摘要: BERT通过MLM(掩码语言模型)和NSP(下一句预测)任务进行预训练,分别实现双向语义建模和句子关系学习。MLM损失计算覆盖全部15%的目标token(含替换/保留情况),通过ignore_index屏蔽其余token。BERT的Token、Segment、Position嵌入因同维度和线性可分性可直接相加。其优势在于双向编码和迁移能力,但存在NSP低效、生成能力弱等缺陷,衍生出RoBERTa、ALBERT等优化模型。BERT虽不擅长生成,但可通过编解码架构辅助生成任务。核心术语需区分“被选中预测
2025-10-11 16:19:51
458
原创 对注意力机制的直观理解
摘要:注意力机制是让模型动态关注输入关键部分的机制,分为普通注意力和自注意力。普通注意力(如Encoder-Decoder)中,Query来自目标序列,Key/Value来自源序列,实现跨序列信息选择;自注意力中Q、K、V均来自同一序列,用于建模序列内部的长距离依赖关系。在Transformer中,二者结合使用:Encoder用自注意力处理输入,Decoder用掩码自注意力关注已生成内容,并通过Encoder-Decoder注意力获取源序列信息。二者的核心区别在于信息交互范围(跨序列/序列内部)和来源差异。
2025-10-10 19:17:09
907
原创 Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask)
摘要: Transformer解码器的多头注意力采用上三角序列掩码,目的是防止模型在生成当前词时“偷看”未来词,确保自回归生成的因果性。掩码矩阵的行列代表序列位置关系(非词向量维度),上三角区域(i<j)设为-∞以屏蔽未来信息,保留过去和当前词作为合法依赖。序列顺序由输入时序和位置编码固定,掩码基于此预设顺序构建,而非动态排序。需区分序列掩码(防未来泄露)与填充掩码(处理变长输入),且仅解码器自注意力需此设计。核心逻辑:“行是现在,列是过去;上三角封住未来”,保障生成过程的严格左到右因果性。
2025-10-10 19:05:22
1042
原创 Unigram中的损失
Unigram算法通过负对数似然损失函数评估分词模型性能,核心流程包括:初始化词汇表→Viterbi动态规划找最优分词路径→计算总体损失→迭代移除对损失影响最小的子词。该损失函数衡量语料在现有模型下的拟合程度,通过不断优化词汇表和子词概率使损失最小化,最终构建高效紧凑的分词模型。整个过程体现了概率模型与分词路径的迭代优化机制。
2025-10-10 14:11:20
401
原创 BPE、BBPE、WordPiece、Unigram 和 SentencePiece 分词算法/工具与主流模型对应关系
当前主流大模型采用多种子词分词算法:BPE(字节对编码)及其字节级变种BBPE是GPT、Llama等前沿模型的核心选择,通过tiktoken或SentencePiece工具实现;WordPiece主导BERT生态,适用于中英文等语言处理;Unigram算法则驱动Google的T5系列,特别适合无空格语言。SentencePiece作为开源工具库,同时支持BBPE和Unigram两种算法实现,成为现代大模型分词技术的重要载体。不同算法各有侧重:BBPE强调通用性,WordPiece适配特定语言任务,Unigr
2025-10-10 14:05:32
558
原创 Subword-Based Tokenization策略之BPE与BBPE
摘要:BPE和BBPE是NLP中两种重要的子词分割算法。BPE通过合并高频字符对构建词表,适用于特定语言但存在OOV问题;BBPE在字节级别操作,利用UTF-8编码处理多语言文本,几乎消除OOV风险但词表较大。两者都通过迭代统计和合并高频单元来构建词表,其中BBPE能自动学习汉字等复杂字符的组成。BBPE通过字节组合层级关系(如"深度"由多个字节符号合并而成)实现更好的泛化能力,特别适合多语言处理场景。(150字)
2025-10-09 19:14:15
939
原创 NLP中的Tokenizer到底是什么?
本文介绍了NLP中的Tokenizer(切词器)及其实现方法。Tokenizer将文本拆分为有意义的标记(tokens),主要分为三种颗粒度:Word-based(词级)、Character-based(字符级)和Subword-based(子词级)。重点讲解了Subword算法,包括BPE(字节对编码)、BBPE(字节级BPE)、WordPiece(BERT采用)和Unigram(概率模型),以及SentencePiece(统一处理多语言)。这些方法各有特点,适用于不同场景,如BPE适合通用场景,Word
2025-10-02 16:27:40
714
原创 基于YOLOv8-OBB的SAR图像目标检测系统
摘要:本文介绍了一个基于YOLOv8-OBB的SAR图像旋转目标检测系统,采用Vue3+Flask前后端分离架构,实现检测管理、在线推理和结果分析功能。系统包含官方模型和自定义四尺度模型,在SAG_BLACK数据集上训练,针对SAR图像特点优化,具备处理旋转目标和小目标检测能力。后端提供RESTful API服务,前端实现交互式可视化界面。实验表明,系统在mAP@0.5等指标上表现良好,并通过模型压缩和系统优化提升了推理速度。系统支持军事和民用领域的SAR图像分析应用,为旋转目标检测提供了完整的工程化解决方
2025-10-02 16:11:05
1226
原创 np.linalg 函数一览
np.linalg是你进行矩阵运算的瑞士军刀线性方程求解矩阵分解范数与距离特征分析数值稳定性处理🔁 记住口诀:要求逆?用 linalg!要解方程?用 solve!要降维?用 svd!
2025-09-15 20:26:46
636
原创 YOLO基础概念(v1,v2)
YOLO目标检测核心概念解析:边界框(BoundingBox)由中心坐标(x,y)和宽高(w,h)构成,附带置信度和类别概率。前景(Foreground)指目标区域,背景(Background)需被抑制。YOLO通过网格划分替代传统ROI生成。GT-Box是真实标注框,P-Box是预测框,通过IoU评估重合度。置信度分为边界框置信度和类别置信度,用于训练和推理筛选。NMS用于消除重复检测框。YOLOv2引入Anchor机制提升检测性能,并通过特征融合增强小目标检测能力。相比YOLOv1,v2在精度和鲁棒性上
2025-09-15 19:56:00
634
原创 传统注意力机制
摘要:本文系统介绍了卷积注意力机制及其在神经网络中的应用。首先阐述了注意力机制的基本原理,包括通道注意力(SENet、SKNet)和空间注意力(Learn to Pay Attention、STN)的实现方法。然后详细分析了混合注意力机制(CBAM、BAM)的构建策略,展示了其在提升模型性能方面的优势。最后提供了各类注意力模块的代码实现,并演示了如何将其融入ResNet等经典网络架构。实验结果表明,合理使用注意力机制能显著增强模型的特征提取能力,在不同任务和数据集上均取得明显效果提升。
2025-09-12 16:23:31
995
原创 GoogleNet基础
本文介绍了1×1卷积的原理与应用,以及GoogleNet网络结构。1×1卷积源自《Network in Network》,具有通道特征融合、降维和参数压缩等功能,并通过代码示例演示了其在灰度转换中的应用。GoogleNet采用Inception模块实现多尺度特征提取,通过并行结构和辅助分类器提升性能,在2014年ImageNet竞赛中夺冠。其创新设计显著减少了参数量,同时保持了较高的分类精度。
2025-09-12 16:21:30
836
原创 ResNet基础
ResNet通过残差连接解决深层网络梯度消失问题,其核心在于引入shortcut分支将输入特征直接与卷积输出相加。网络提供两种残差结构:浅层网络(如ResNet-18/34)采用简单3x3卷积堆叠,深层网络(如ResNet-50/101/152)使用"1x1-3x3-1x1"的瓶颈结构处理维度变化。当主分支与shortcut维度不匹配时,通过1x1卷积调整步长和通道数实现特征对齐。实验表明,这种结构有效降低了深层网络的错误率,并针对不同特征尺度提出了补零、1x1卷积映射等维度变换策略。
2025-09-12 16:18:12
364
原创 判别模型 VS 生成模型
判别模型直接学习条件概率P(Y|X),用于分类回归等预测任务,如逻辑回归、SVM;生成模型学习联合概率P(X,Y),可生成新数据,如朴素贝叶斯、GAN。判别模型关注决策边界,生成模型学习数据分布。判别模型在分类任务中表现更好,生成模型适合数据生成和缺失数据场景。判断标准:能否生成新数据、是否显式建模数据分布。部分混合模型兼具两者特性,但通常按主要功能分类。
2025-09-10 20:56:14
836
原创 人工智能中的线性代数总结--简单篇
总结了在人工智能学习过程中一些简单的线性代数实现api,以及方法,包括协方差矩阵,对角矩阵,稀疏矩阵,正交投影,压缩列稀疏矩阵,预选相似度等
2025-09-08 20:32:06
404
原创 对于一个多层感知机,参数初始化的时候不是已经把权重的范围根据方差进行优化过了,为什么还要进行正则化惩罚过大权重
参数初始化和正则化是深度学习中两个互补但独立的技术。参数初始化(如Xavier/He初始化)通过合理设置初始权重范围,解决梯度消失/爆炸问题,确保训练顺利启动。而正则化(如L2)则在训练过程中动态约束权重增长,防止过拟合,提高模型泛化能力。二者处于不同阶段:初始化是训练前的预备工作,正则化是训练中的持续约束。即使初始化合理,模型仍可能在训练中学习过大权重,因此需要正则化来平衡拟合与泛化。两者共同保障深度网络的训练效果和泛化性能。
2025-08-31 18:35:08
264
原创 经典卷积神经网络CNN
摘要:本文系统介绍了卷积神经网络(CNN)的基本原理及其在计算机视觉中的应用。主要内容包括:1) CNN的核心组件:卷积层、池化层和全连接层的工作原理及数学实现;2) CNN相较于全连接网络的优势,如参数共享、局部连接等特性;3) 多种卷积变体(反卷积、空洞卷积、可分离卷积等)的原理与应用;4) 通过CIFAR10图像分类案例展示CNN模型的构建、训练与评估全过程;5) 数据增强、模型优化等实用技巧。文章结合代码示例详细阐释了CNN在特征提取、降维处理等方面的独特优势,为理解深度学习在计算机视觉中的应用提供
2025-08-31 18:17:32
1232
原创 批量标准化
批量标准化(Batch Normalization)是一种神经网络正则化技术,通过对每层输入进行标准化处理来加速训练并提高模型稳定性。其核心操作包括:计算批次数据的均值和方差、标准化处理、通过可训练参数γ和β进行缩放平移。在训练阶段使用当前批次统计量,测试阶段则使用全局统计量。BN能有效缓解梯度问题、加速训练并减少过拟合。PyTorch提供BatchNorm1d等实现模块,通过实验对比可见BN模型在训练损失和测试准确率上均优于非BN模型。
2025-08-30 11:03:05
961
原创 PyTorch中的激活函数
本文介绍了PyTorch中常用的激活函数及其应用。激活函数是神经网络的关键组件,通过引入非线性解决复杂问题。详细讲解了Sigmoid、Tanh、ReLU、LeakyReLU和Softmax等函数的特点、公式及PyTorch实现方式,并提供了可视化代码示例。最后给出了激活函数选择指南:隐藏层优先使用ReLU,输出层根据任务类型选择Sigmoid(二分类)或Softmax(多分类)。文章强调激活函数在解决梯度问题、提高模型收敛性方面的重要作用。
2025-08-27 20:12:21
876
原创 Python中的枚举
Python中的枚举主要有两种用法:1. enumerate()函数用于在循环中同时获取索引和值,支持自定义起始索引,适用于列表、文件等可迭代对象,是替代range(len())的更优雅方式;2. enum.Enum用于定义命名常量集合(如状态码),循环时遍历的是枚举成员而非索引。enumerate()典型场景包括带序号的遍历、字典条目编号、与zip结合处理多序列等,而枚举类型则用于提高代码可读性和约束取值范围。两者虽中文都称"枚举",但功能完全不同。
2025-08-27 19:50:02
823
原创 Torch自动微分
PyTorch自动微分机制详解 摘要:本文详细介绍了PyTorch中的自动微分模块torch.autograd,这是实现神经网络训练的核心组件。文章首先解释了计算图的概念,说明PyTorch如何通过动态计算图跟踪张量操作。重点讲解了requires_grad属性、叶子节点与非叶子节点的区别,以及detach()方法的使用。通过具体代码示例,演示了标量和向量梯度计算、梯度清零、梯度上下文控制等关键操作。文章还提供了两个实际应用案例:函数最小值求解和线性回归参数优化,展示了自动微分在机器学习中的实际应用。最后讨
2025-08-26 20:14:01
517
1
原创 Tensor常见操作
摘要:本文介绍了PyTorch中Tensor的常见操作,包括元素值获取与运算、阿达玛积、矩阵乘法、形状操作和广播机制。重点讲解了reshape/view变形、transpose/permute转置、squeeze/unsqueeze维度调整等方法,以及广播机制的自动扩展规则。通过代码示例展示了如何高效操作张量,并强调了内存连续性和维度合法性等注意事项。这些操作为深度学习中的数据处理和模型构建提供了基础支持。
2025-08-26 20:12:41
886
原创 Torch入门小知识点--总结性语言
本文介绍了PyTorch中张量的基本概念和操作。主要内容包括:1) torch.tensor()的数值类型限制,仅支持int、float、bool等数值类型,不支持字符串和复杂对象;2) torch.size()表示张量形状,通过示例解析标量、一维、二维和三维张量的形状表示;3) PyTorch支持的数据类型,包括整数、浮点数和布尔类型;4) 数据转换时的内存问题,强调使用.numpy().copy()确保数据独立性;5) 实际项目中的运用,展示如何创建张量、转换数据类型、生成随机张量以及进行基本数学运算。
2025-08-25 19:36:41
1053
1
原创 梯度下降(线性回归为例)
梯度下降是一种常用的优化算法,用于求解机器学习和深度学习中的最优参数。相比正规方程法,梯度下降能有效处理非凸函数和特征维度高的问题。其核心思想是沿损失函数梯度方向逐步调整参数,使损失最小化。算法步骤包括:随机初始化参数、计算梯度、按学习率更新参数、判断收敛条件。学习率的设置尤为关键,过大易震荡,过慢则收敛效率低。梯度下降适用于各类模型优化,通过迭代逼近最优解,是机器学习和深度学习的基础优化方法。
2025-08-23 23:51:23
1092
1
原创 岭回归算法拉索回归
本文介绍了两种常用的线性回归正则化方法:岭回归和拉索回归。岭回归通过L2正则化解决多重共线性问题,能减小模型方差并防止过拟合,适用于特征相关的场景。拉索回归则采用L1正则化实现特征选择,可将不重要的特征权重压缩为零,适用于高维数据。文章详细说明了两种算法的损失函数、API参数及使用示例,包括在波士顿房价和加州房价数据集上的应用,展示了模型训练、预测和评估过程,为处理线性回归问题提供了实用工具。
2025-08-22 18:37:55
1117
1
自定义模型yolov8obb模型
2025-10-02
基于RepViT的多任务年龄性别识别系统(内包含可展示视频)
2025-10-02
yolo11项目火灾检测
2025-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅