- 博客(1172)
- 收藏
- 关注
原创 多模态AI实战:CLIP模型原理与代码深度剖析
本文详细介绍了OpenAI发布的CLIP多模态模型及其核心功能。CLIP通过对比学习将图像和文本映射到统一的512维特征空间,实现了跨模态语义对齐。文章从四个维度展开:1)零样本图像分类,将分类转化为图文匹配问题;2)以文搜图,通过文本检索相关图像;3)以图搜文,通过图像检索匹配文本;4)特征空间探索,分析跨模态语义对齐机制。实验结果显示CLIP在未针对特定任务训练的情况下,仍能准确完成跨模态检索任务。
2026-03-13 23:00:51
627
原创 从零构建RAG系统:基础实现与原理剖析
本文介绍了一个基于TF-IDF和余弦相似度的简化版RAG(检索增强生成)系统实现。RAG技术通过结合外部知识检索和文本生成,有效解决大语言模型的知识局限和幻觉问题。系统核心包括:文档处理模块(分块、预处理和TF-IDF向量化)、检索模块(计算查询与文档的相似度)和生成模块(基于检索结果生成回答)。虽然该实现使用简化方法(如固定模板生成),但完整展示了RAG的工作流程。文章还分析了当前局限性和改进方向,如升级嵌入模型、接入大语言模型等,为开发实用RAG系统提供了基础参考。
2026-03-11 00:51:13
451
原创 构建简化版批量OCR处理器:代码原理深度剖析
本文介绍了一个基于Python的多引擎批量OCR处理系统,整合了Tesseract和OpenCV引擎的优势。系统具备以下特点:1)支持自动批量处理常见图片格式;2)采用灰度化、高斯模糊、自适应阈值等预处理提升识别率;3)Tesseract实现多语言识别并择优选取结果;4)OpenCV作为备选方案提供文本区域检测;5)自动生成JSON、文本报告和可视化结果。通过多引擎互补机制,系统在单一引擎失效时仍能提供基础功能,显著提升了鲁棒性。
2026-03-10 00:15:12
412
原创 使用LoRA微调BERT进行中文命名实体识别:原理与代码深度剖析
本文详细介绍了使用LoRA(低秩适应)方法微调BERT模型进行中文命名实体识别(NER)的全过程。LoRA通过仅训练少量新增参数(约占总参数的0.28%),显著降低了计算资源消耗,同时保持了模型性能。文章包含完整代码实现,涵盖数据预处理(分词与标签对齐)、评估指标(seqeval)、LoRA配置原理(以注意力机制的query和value层为目标)等关键环节,并演示了如何保存轻量级适配器(仅几MB)及进行推理。
2026-03-08 21:50:08
430
原创 提示工程实战:用代码解锁大模型的推理潜能
本文通过Python代码示例,系统对比了四种提示工程策略在数学推理任务中的应用效果。使用Qwen1.5-1.8B-Chat模型测试一道分数应用题,结果显示:零样本提示效果最不稳定;少样本思维链提示通过提供范例显著提升推理准确性;引导式逆向推理将解题步骤分解填空,进一步降低错误率;教学式提示直接给出正确答案要求复述,确保100%正确输出。文章还详细介绍了环境配置优化和模型加载技巧,包括镜像加速、警告抑制和半精度加载等实用方法。
2026-03-08 00:00:41
428
原创 从零实现指令微调:剖析 Qwen 模型 SFT 训练代码背后的原理
本文详细解析了指令微调(SFT)的实现过程,以Qwen2.5-0.5B-Instruct模型为例,介绍了完整的Python代码实现。主要内容包括:1) SFT的核心原理是通过"指令-回答"对有监督训练,使模型学会遵循人类指令;2) 数据预处理关键点,包括对话模板使用、损失掩码设置(-100标记)和动态填充策略;3) 训练流程设计,涵盖数据加载、梯度计算和参数更新;4) 推理生成实现,包括温度采样和输出解码。
2026-03-07 23:05:45
594
原创 DPO 极简教学 Demo 代码解析:从原理到实现
本文介绍了直接偏好优化(DPO)方法及其Python实现。DPO通过对比策略模型和参考模型对"优选回答"与"拒绝回答"的对数概率差,简化了语言模型对齐人类偏好的过程。文章详细解析了一个基于HuggingFace Transformers的极简Demo,涵盖数据准备、损失计算和训练流程。该Demo使用Qwen模型,通过自定义损失函数实现偏好优化,相比传统强化学习方法更简洁高效。代码展示了从模型加载、数据封装到训练推理的全过程,并提供了可调整的超参数。虽然演示数据量较小,
2026-02-27 22:03:12
1092
原创 理解SFT损失掩码:从原理到代码实现
本文解析了一个基于PyTorch和Transformers库的监督微调(SFT)损失掩码教学代码。该代码使用Qwen模型在小规模数据集上实现SFT训练,核心创新在于通过损失掩码技术,使模型仅关注答案区域的损失计算,忽略指令部分。文章详细介绍了样本构建、数据集封装、训练流程和推理演示等关键模块,重点阐述了损失掩码的实现原理及其在提升训练效率和模型性能中的作用。代码展示了从数据准备到模型微调的完整流程,并提供了推理示例验证训练效果。
2026-02-22 23:23:46
797
原创 使用LSTM进行情感分类:原理与实现剖析
本文介绍了一个基于PyTorch实现的LSTM情感分类模型。该模型通过词嵌入层将单词转换为稠密向量,利用LSTM的门控机制捕捉句子语义,最终通过全连接层输出情感概率。文章详细解析了数据预处理(词汇表构建、序列填充)、模型架构(嵌入层、LSTM层、输出层)和训练过程(损失函数、优化器选择)。实验在小型电影评论数据集上进行,展示了从原始文本到情感预测的完整流程,并探讨了模型改进方向(如使用预训练词向量、双向LSTM等)。该实现为理解更复杂的NLP系统奠定了基础。
2026-02-08 23:08:37
1111
原创 基于BERT的中文命名实体识别实战解析
本文详细解析了基于BERT的中文命名实体识别实战。文章阐述了如何利用Hugging Face Transformers库,通过处理标签与WordPiece分词的对齐、加载预训练模型、配置训练流程等步骤,完成序列标注任务。重点剖析了标签对齐这一核心技术,解决了子词分词与词级标注不匹配的挑战。全文系统介绍了从数据准备、模型微调到评估预测的完整流程,并分析了BERT在上下文理解和语义表征上的优势,同时指出了当前示例的局限性及生产环境的优化方向。
2026-02-08 19:33:08
1042
原创 基于BiLSTM-CRF的命名实体识别模型:原理剖析与实现详解
本文详细剖析了基于BiLSTM-CRF的中文命名实体识别模型。模型通过双向LSTM层捕获上下文语义,CRF层确保标签序列全局最优。针对数据稀缺问题,采用模板化数据增强自动生成训练样本。文章深入解读了模型架构、数据准备、兼容性训练策略与早停机制,并提出了引入预训练词向量、调整超参数等关键调优方向,为序列标注任务提供了完整的技术实现参考。
2026-02-08 14:41:44
1218
原创 BERT模型教学演示:从原理到微调实战
本文介绍了BERT模型的核心原理与实践应用,重点展示了其中文处理能力。作为双向Transformer编码器,BERT通过掩码语言建模和下一句预测任务实现深度语义理解。文章详细解析了BERT中文模型的特点,并提供了模块化教学工具,涵盖分词处理、注意力机制、前向传播等核心功能。通过文本分类微调实战,演示了BERT迁移学习的完整流程,包括数据集构建、模型配置和训练优化。同时对比了BERT与GPT在架构、注意力机制和应用场景上的差异。
2026-02-05 00:15:51
1132
原创 使用PyTorch和Hugging Face Transformers构建GPT教学演示:从基础原理到实践应用
本文系统介绍了GPT模型的核心原理与应用实践。通过PyTorch和Transformers库实现,详细讲解了模型加载、分词处理、前向传播机制和文本生成策略(包括贪婪解码、随机采样等)。文章对比了GPT与BERT的差异,分析了自回归语言建模原理,并提供了模型微调实战案例。同时探讨了GPT技术演进历程和不同参数对生成效果的影响,给出了文本生成策略选择指南和性能优化建议。最后,文章展望了GPT技术的未来发展方向,包括多模态融合和推理能力增强等。
2026-02-02 22:59:17
796
原创 深入理解多头注意力机制:从原理到代码实现
本文深入解析了多头注意力机制在深度学习中的应用。该机制通过并行计算多个注意力头,模拟人类认知过程,使模型能够动态关注输入数据的关键部分。文章详细介绍了其数学原理、代码实现和可视化方法,包括QKV矩阵、缩放点积注意力等核心组件。多头注意力具有并行计算、特征多样性等技术优势,广泛应用于机器翻译、文本生成等领域。通过实际代码示例和注意力模式分析,展示了不同注意力头学习到的多样化关注模式。文章还提供了训练建议和优化技巧,并展望了稀疏注意力、动态头数等未来研究方向。
2026-01-29 22:06:06
1109
原创 从零构建字符级RNN:用PyTorch实现莎士比亚风格文本生成
本文介绍了使用PyTorch构建字符级RNN模型进行文本生成的技术方案。首先通过预处理将莎士比亚文本转换为字符序列,然后构建包含嵌入层、RNN层和全连接层的神经网络模型。重点阐述了温度采样技术如何控制生成文本的多样性与创造性,展示了不同温度参数下的生成效果。文章还探讨了LSTM、GRU等改进架构,并提出了创意写作、代码补全等实际应用场景。最后提供了完整代码实现,为开发文本生成系统提供了实践指南。该技术方案平衡了模型性能与实现复杂度,可作为自然语言处理领域的基础实践案例。
2026-01-25 20:16:03
714
原创 词向量的艺术:从Word2Vec到GloVe的完整实践指南
本文系统介绍了三种主流词向量技术(Word2Vec、FastText、GloVe)的原理与实践应用。词向量通过将词语表示为高维空间中的连续向量,能有效捕捉语义关系(如"国王-男人+女人≈王后")。文章详细展示了从模型训练(包括参数设置)、可视化(PCA与t-SNE降维对比)到实际应用(词类比测试)的全过程,并提供了完整代码示例。特别比较了不同模型的特点:Word2Vec适合通用场景,FastText擅长处理未登录词,GloVe基于全局统计信息。
2026-01-25 15:35:01
679
原创 从零实现循环神经网络:中文情感分析的完整实践指南
本文实现了一个基于循环神经网络(RNN)的中文情感分析模型。通过从零开始构建SimpleRNN类,详细阐述了RNN的前向传播、反向传播和权重更新过程。模型采用中文分词、序列化和one-hot编码进行文本预处理,在自建数据集上完成训练和评估。实验结果表明该RNN模型能够有效识别文本情感倾向。文章还分析了当前实现的局限性,并提出了使用LSTM/GRU、词嵌入技术和注意力机制等改进方向。完整代码展示了从数据处理到模型预测的全流程,为理解RNN在NLP任务中的应用提供了实践参考。
2026-01-25 11:37:40
1324
原创 构建多语言垃圾邮件分类系统:从预处理到预测的全流程实践
本文介绍了一个基于朴素贝叶斯的中英文垃圾邮件分类系统。系统首先通过jieba分词和TF-IDF进行文本预处理和特征提取,然后利用MultinomialNB分类器训练模型。实验采用包含中英文的模拟数据集,实现了垃圾邮件识别功能。文章详细阐述了从数据准备、预处理、特征工程到模型训练的全流程,并提供了优化建议和完整代码示例。该系统虽简单但完整,为实际垃圾邮件过滤项目提供了基础框架,未来可结合深度学习等技术进一步提升性能。
2026-01-25 10:45:09
679
原创 从词袋到TF-IDF:sklearn文本特征工程实战指南
本文介绍了自然语言处理中两种核心文本特征提取方法:词袋模型(CountVectorizer)和TF-IDF模型(TfidfVectorizer)。词袋模型通过统计词频将文本转换为数值向量,适合基础文本分析;TF-IDF则在词频基础上考虑词语重要性,适用于更精细的文本处理。文章详细讲解了两种方法的实现原理、参数配置、结果分析和适用场景,并提供了Python代码示例。最后,文章还指出了文本特征工程的进阶方向,包括词嵌入、上下文表示等深度学习方法,以及特征工程的最佳实践建议。
2026-01-25 00:22:02
832
原创 中文分词与文本分析实战指南
jieba是Python中最受欢迎的中文分词工具,提供精确模式、全模式和搜索引擎模式三种分词方式。精确模式适合文本分析,全模式适合搜索引擎索引,搜索引擎模式则平衡了准确性和召回率。jieba还支持自定义词典、停用词过滤以及TF-IDF和TextRank关键词提取等高级功能。通过添加专业术语和新词可提高分词准确性,停用词过滤能提升分析效率。实际应用中可根据任务需求选择合适模式,并配合词典优化和性能调整策略。jieba作为成熟的中文NLP工具,为文本处理提供了可靠基础支持。
2026-01-24 22:52:12
803
原创 CART算法简介
摘要: CART(分类与回归树)是一种经典的决策树算法,由Leo Breiman于1984年提出。它通过递归选择最佳特征和分割点构建二叉树,适用于分类(基尼指数/熵)和回归(方差最小化)任务。CART采用二叉树结构,可解释性强,支持混合数据类型,无需数据分布假设。算法通过预剪枝(如节点样本数、深度限制)和后剪枝(代价复杂度剪枝)防止过拟合。优点包括直观性、鲁棒性,但存在不稳定性和局部最优问题。CART是随机森林、梯度提升树等集成方法的基础,广泛应用于可解释AI和特征工程。
2026-01-04 23:29:40
1191
1
原创 机器学习入门
本文包含两个Python数据分析案例:1) Pandas基础操作,演示了如何创建DataFrame、读取CSV文件、数据筛选和统计分析;2) 线性回归模型,使用加州房价数据集进行特征分析、模型训练和评估。Pandas部分展示了数据创建、文件读取、条件筛选和统计计算等核心功能。线性回归部分详细介绍了数据准备、特征工程、模型训练过程,最终获得MSE为0.00和R²为1.00的完美评估结果,并对各特征的重要性进行了分析。两个案例都体现了Python在数据处理和机器学习中的强大应用能力。
2026-01-04 09:30:09
192
1
原创 Nest 与 TypeORM Cli 集成
本文介绍了使用TypeORM管理NestJS项目数据库配置的方法。主要内容包括:1)配置环境变量文件(.env)定义数据库连接参数;2)创建ormconfig.ts主配置文件,通过合并开发/生产环境配置获取数据库连接参数;3)在主模块AppModule中配置TypeORM模块,并添加环境变量验证。该方案支持多环境配置,实现了数据库连接参数的集中管理和类型安全验证,便于团队协作和项目维护。
2026-01-01 21:56:16
274
原创 Nest 中日志的使用
NestJS日志系统实现方案摘要: 本文介绍了NestJS项目中四种日志实现方案:1) 内置Logger模块,可自定义日志级别和名称;2) nestjs-pino方案,支持自动请求日志和文件滚动记录;3) nest-winston方案,提供更灵活的日志格式配置和每日日志文件分割;4) 自定义封装方案,通过LogModule实现可配置化的日志系统。各方案均展示了全局配置和业务模块中的使用方式,并提供了异常过滤器集成、日志级别控制、文件存储等实用功能。
2026-01-01 15:52:56
430
原创 从前端工程师到前端架构师:2025年我的架构思维演进之路
本文探讨了前端工程师向架构师的思维转变过程。作者通过大型项目实践,总结了构建前端架构的系统化方法:从工程化奠基(标准化工具链、Monorepo管理)、规范化与模块化设计(DDD思想),到自动化体系建设(CI/CD、低代码平台),再到应对复杂业务的微内核与微前端架构。文章强调架构思维的核心在于系统性思考能力,包括抽象、分层、演进和权衡思维,指出优秀架构的关键是弹性适应业务发展。最后展望AI时代前端架构的智能化趋势,提出架构思维是开发者持久的竞争力。
2025-12-27 16:57:18
1023
原创 Nest 项目中环变量配置详解
本文介绍了NestJS项目中环境变量的多种配置方式:1. 通过.env文件配置基础变量,并区分开发和生产环境;2. 使用YAML文件处理嵌套配置结构;3. 通过config库实现JSON格式的配置管理。文章详细说明了如何安装相关依赖、配置不同环境变量,并演示了在模块中注入和使用配置的方法。此外,还介绍了使用Joi对配置文件进行校验的实现方式,确保配置变量的有效性和安全性。这些方法可以帮助开发者灵活管理项目配置,适应不同环境需求。
2025-12-14 16:39:52
180
原创 Node项目中两个常用的环境变量配置工具
本文介绍了Node.js项目中三种常用的环境配置方法:1. 使用cross-env设置启动环境变量;2. 通过dotenv管理.env文件中的键值对配置;3. 利用config库处理复杂的JSON/YAML格式配置,支持多环境(development/production)配置合并。文章详细说明了每种方法的具体实现步骤,包括文件创建、变量定义和读取方式,并特别说明了config库支持多种文件格式及环境配置覆盖规则,为Node.js项目提供了灵活的环境配置解决方案。
2025-12-14 10:21:34
382
原创 React 源码解读(二)
本文深入解析React核心机制,重点剖析了三大系统:调度器(Scheduler)、协调器(Reconciler)和渲染器(Renderer)。主要内容包括: 核心对象解析:详细介绍了ReactElement、Fiber、Update等关键数据结构及其作用,阐述了React内部的状态管理机制。 执行流程分析:拆解React的创建和更新两大阶段,详解从容器创建到视图更新的完整链路,包括任务调度、Fiber树构建和提交变更等关键步骤。
2025-11-24 11:52:41
182
原创 React 中什么是可中断更新?
React的可中断渲染通过Fiber架构实现时间分片和优先级调度,能在处理长任务时暂停并优先响应高交互任务(如用户输入),随后恢复原渲染。这种机制提升了应用响应速度,避免因大量渲染导致的卡顿。示例中,当点击事件与耗时组件渲染冲突时,React会优先处理交互再继续渲染,保障流畅体验。该特性显著优化了复杂界面的用户体验。
2025-11-20 15:14:09
322
原创 React中Context 的作用及原理
React Context提供了一种在组件树中传递数据的有效方式,避免了props逐层传递的问题。它包含Provider和Consumer两部分,通过createContext创建上下文对象,Provider提供状态值,Consumer或useContext Hook用于消费这些值。Context特别适合管理用户认证、主题等全局状态,能提高代码可读性和维护性。使用时需注意性能优化,避免高频更新导致的性能问题,并尽量在最小组件树范围内使用Provider。
2025-11-20 14:55:38
512
原创 React 18 源码解读(一)
本文深入解析了React源码架构及核心实现原理。首先介绍了React采用Monorepo架构管理,详细拆解了react(基础包)、react-dom(Web渲染器)、react-reconciler(协调器)、scheduler(调度器)等核心包的职责分工。其次通过Babel示例分析了JSX编译过程,将JSX转换为React.createElement调用。然后重点剖析了React的双阶段工作流程:创建阶段完成容器初始化,更新阶段处理状态变更和视图更新。
2025-11-20 11:19:27
730
原创 React 中的 key的作用是什么 ?
摘要:React中的key属性用于唯一标识组件,帮助提升渲染性能和保持组件状态。在列表渲染中,key能优化Diff算法比较过程,通过react-reconciler/src/ReactChildFiber.new.js中的reconcileChildFibers等方法实现新旧节点匹配。源码通过比较key值决定是否复用组件实例,若key不同则创建新实例。示例展示如何用item.id作为列表项的key,使React能高效处理列表增删改操作,仅更新变化的DOM节点而非整个列表。
2025-11-18 22:55:31
305
原创 源码解析React中的setState到底是同步还是异步?
React18中的setState行为受并发模式影响,分为同步和异步两种情况。批量更新时setState是异步的,React会对事件处理器中的多个状态更新进行合并优化。新增的flushSync方法可强制同步更新。源码层面,setState通过enqueueSetState将更新加入队列,由调度器批量处理,batchedUpdates机制合并更新直到执行环境重置后才会渲染。这些改进提升了性能和响应性,使状态更新更加智能高效。
2025-11-18 14:51:18
513
原创 Vue 3.0 源码解读
摘要:本文深入解析Vue3框架的架构设计与核心实现原理。从工程架构角度详细阐述了compiler-core、compiler-dom、compiler-sfc等编译模块的分工协作,以及reactivity、runtime-core、runtime-dom等运行时模块的响应式原理和DOM操作机制。重点剖析了Vue3的diff算法优化策略,包括最长递增子序列算法在DOM更新中的应用,对比了简单diff、双端diff和快速diff三种算法的性能差异。最后通过手写简版Vue3实现,展示了响应式系统、依赖追踪、DOM
2025-11-18 00:02:34
1194
原创 Vue 3 函数式编程与Composition API
函数式编程强调纯函数、不可变性和高阶函数等特性。Vue3的Composition API与该范式高度契合:计算属性体现纯函数思想,响应式状态可模拟不可变性,自定义Hook实现了高阶函数和逻辑复用。文章重点展示了函数式编程中的compose函数实现,并演示了如何在Vue3中应用函数式思想,通过组合小函数构建复杂逻辑,如useCounter和useDoubleCounter等自定义Hook。这种编程方式提升了代码的可维护性和复用性,是Vue3的重要创新。
2025-11-13 14:24:09
520
原创 Vue 3与 Vue 2响应式的区别
Vue3和Vue2响应式原理对比:Vue3采用Proxy实现响应式,通过reactive和ref函数创建代理对象,支持动态属性检测,性能更优;Vue2依赖Object.defineProperty,需在data和computed中定义响应式数据,无法动态响应属性增减,存在性能局限。Proxy相比Object.defineProperty具有更好的灵活性和效率。
2025-11-13 11:36:41
459
原创 Tauri 开发桌面端简介
Tauri是一个轻量级桌面应用开发框架,支持多平台构建微小快速的二进制文件。它允许开发者使用任意前端框架构建界面,同时通过Rust、Swift等语言处理后端逻辑。相比Electron,Tauri具有更小的体积、更高的安全性以及更灵活的语言选择。项目结构清晰划分前后端代码,包含Rust入口文件、配置文件和资源目录等关键组件。Tauri2.x采用优化的架构设计,显著提升了性能和开发体验。
2025-11-12 00:55:08
669
原创 Electron 原理浅析
Electron应用架构解析:由主进程(Node.js环境)、渲染进程(Chromium环境)和IPC通信组成,采用事件驱动模型。提供上下文隔离、内容安全策略等安全机制,支持原生模块扩展(通过node-gyp)和增量更新(利用electron-builder比对版本差异生成更新包)。应用打包后可通过electron-updater实现版本检查、差异包下载和静默安装的完整更新流程。该框架结合了Web技术与原生能力,支持跨平台应用开发。
2025-11-12 00:02:09
1346
原创 Electron 快速入门手册
本文介绍了Electron跨平台桌面应用开发的主要技术方案和实践方法。首先对比了基于ElectronForge和Electron-Vite的两种项目初始化方式,详细说明了使用模板、自定义模板和启动应用的具体步骤。然后重点讲解了主进程与渲染进程之间的三种通信模式(单向、双向、主到渲染),并提供了完整代码示例。文章还列举了Electron常用API模块的功能及用法,包括app、BrowserWindow、ipc等核心模块。
2025-11-11 23:00:53
1398
原创 Electron 面试中最常见的两个问题
本文介绍了Electron框架中主进程和渲染进程的区别及通信方式,并提供了应用性能优化建议。主进程负责管理应用核心功能,渲染进程处理UI展示,两者通过IPC机制通信。性能优化策略包括:减少渲染进程负载、使用WebWorker处理耗时任务、懒加载资源、优化动画渲染、使用分析工具定位瓶颈、优化资源管理以及减少IPC通信频率。这些方法有助于提升Electron应用的响应速度和运行效率。
2025-11-06 10:13:12
458
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅