- 博客(206)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 LLM Prompt工程指南
摘要: 本文系统介绍了Prompt工程的核心技术与优化方法。首先分析了Prompt工程的重要性,指出精心设计的提示能显著提升大语言模型的输出质量。随后详细解析了模型参数(温度、Top-K/P)对输出的影响机制,并给出配置建议。接着阐述了基础提示技术(零样本/少样本)的原理与应用场景。最后探讨了引导技术的三大方法:系统提示(定义行为准则)、角色提示(赋予专业身份)和上下文提示(提供任务背景)。文章强调Prompt工程需要结合模型特性进行参数调优,并针对不同任务采用相应技术组合,才能充分发挥模型潜力。
2025-07-28 17:35:44
1019
原创 机器学习详解(28):LightGBM原理
LightGBM通过四大核心技术创新大幅提升了梯度提升决策树的性能:GOSS梯度采样优先保留大梯度样本,减少30%-50%计算量;EFB特征绑定将互斥稀疏特征压缩,降低内存占用;直方图算法将连续特征离散化,加速分裂点搜索;Leaf-wise生长策略每次选择增益最大的节点分裂,构建更高效的树结构。这些优化使LightGBM在Bing搜索引擎等大规模应用中实现3-5倍加速,内存减少50%以上,同时保持模型精度,成为结构化数据机器学习的主流框架。
2025-07-25 14:09:43
1275
原创 机器学习详解(27):XGBoost理论基础与实际应用
XGBoost:统治表格数据的机器学习利器 XGBoost作为梯度提升决策树的优化版本,凭借其卓越性能和工程友好性,已成为Kaggle竞赛和工业界应用的核心算法。本文首先介绍了XGBoost相较于传统GBDT的三大关键改进:正则化学习目标、后剪枝策略和二阶优化方法,这些创新使其在防止过拟合和收敛速度方面表现更优。随后详细解析了XGBoost的核心参数体系,包括树结构控制、学习过程控制、正则化控制和采样控制四大类参数,并提供了针对不同场景的参数调优建议。XGBoost通过引入正则化项、二阶导数信息和工程优化,
2025-07-25 08:00:00
1265
原创 机器学习详解(26):梯度提升决策树(GBDT)原理
梯度提升是一种强大的机器学习方法,通过迭代构建决策树来优化预测性能。本文介绍了梯度提升的工作原理,包括初始预测、残差计算和模型更新过程。通过示例数据展示了如何逐步优化预测结果。此外,文章还对比了三种主流变种算法(XGBoost、LightGBM和CatBoost)的特点和适用场景。最后提供了使用scikit-learn实现梯度提升的代码框架,帮助读者理解这一技术在回归和分类任务中的应用。梯度提升通过组合多个弱学习器,能够有效处理复杂数据关系,在各类机器学习问题中表现出色。
2025-07-25 07:00:00
1498
原创 构建RAG智能体(6):基于向量存储的对话式RAG系统实践
本文深入探讨了向量存储在检索增强生成(RAG)系统中的应用,重点介绍了三种核心工作流程:对话交流、单文档处理和多文档目录处理。以对话历史为例,详细展示了如何使用FAISS向量存储构建高效检索器,包括对话数据准备、向量存储构建和检索查询实现。文章通过具体代码示例,演示了如何利用LangChain框架将对话数据嵌入到FAISS向量存储中,并将其转换为可检索的文档索引系统,为构建智能聊天机器人提供了实用方案。
2025-07-23 09:00:00
742
原创 构建RAG智能体(5):语义护栏之过滤无用信息
本文介绍了如何利用语义护栏技术(Semantic Guardrailing)来优化聊天机器人的响应质量。语义护栏的核心思想是使用嵌入模型作为语言骨干,并训练分类器来过滤不适宜或有害的输入信息。相比传统的自回归引导过滤方法,这种方法具有更低的延迟和资源消耗优势。文章详细阐述了构建语义护栏的具体步骤:首先通过生成合成数据定义"好"和"差"的对话样本;然后使用嵌入模型处理这些示例;最后基于嵌入结果训练分类器来预测输入消息的适宜程度。文中还提供了相关的环境设置和代码示例,展示
2025-07-23 08:00:00
856
原创 构建RAG智能体(4):嵌入模型的概念和应用
本文介绍了嵌入模型(Embedding Models)的核心概念及其在NLP中的应用。主要内容包括:1)嵌入模型基础,解释词嵌入和文档嵌入作为文本的数值表示;2)区分解码器模型(用于生成任务)和编码器模型(用于预测任务)的不同架构;3)实战部分展示如何使用NVIDIA嵌入模型处理查询和文档,包括查询嵌入(embed_query)和文档嵌入(embed_documents)的应用场景和区别。文章通过理论结合实践的方式,帮助读者理解嵌入模型如何将文本转化为语义向量,以及如何应用这些模型增强文档处理能力。
2025-07-23 07:00:00
5114
原创 构建RAG智能体(3):处理大型文档
本文探讨了如何将大型文档(如PDF和YouTube视频)整合到大语言模型(LLM)的上下文中,以构建能有效与文档交互的系统。文章介绍了文档加载器和分块技术,解决上下文空间有限的挑战,并比较了LangChain和LlamaIndex两个框架在文档处理方面的优势。重点讨论了通过文档填充(document stuffing)方法将文档内容输入模型,以及处理长上下文时性能下降的问题。文章还演示了使用ArxivLoader加载研究论文的代码示例,展示了文档内容和元数据的提取方法。这些技术为自动化内容优化和智能文档交互
2025-07-22 18:11:37
1176
原创 构建RAG智能体(2):运行状态链
本文探讨了在AI聊天机器人开发中实现记忆和上下文理解的关键技术。通过分析传统无状态对话系统的局限性,作者展示了如何使用运行状态链(Runnable)构建复杂对话系统。文章详细介绍了如何利用RunnableLambda、RunnableAssign等工具管理状态流动,实现多轮对话中的变量传递和持续上下文跟踪。通过零样本分类和创意文本生成的示例代码,演示了如何将输入、主题和生成内容等变量在不同链中传递,最终实现上下文连贯的对话响应。这些技术为构建更智能、能处理复杂对话场景的AI系统提供了可行方案。
2025-07-22 17:13:08
708
原创 构建RAG智能体(1):现代RAG开发框架之LangChain LCEL
本文介绍了LangChain Expression Language(LCEL)如何简化企业级AI应用开发中的RAG系统构建。LCEL通过管道操作符|和Runnable概念,将复杂组件(如检索器、生成器)串联为可维护的流程。文章重点展示了LCEL的核心优势:1)统一接口设计实现无缝集成;2)字典管理简化数据流;3)通过示例演示了LLM链构建和零样本分类任务实现。LCEL的现代化设计显著提升了AI系统的开发效率和可维护性。
2025-07-22 15:53:59
750
原创 机器学习详解(25):批标准化、层标准化、组标准化和实例标准化
本文对比分析了深度学习中四种主要标准化方法:批标准化(BN)、层标准化(LN)、组标准化(GN)和实例标准化(IN)。BN通过mini-batch统计量标准化特征,但对batch size敏感;LN针对序列模型独立处理每个样本;GN将通道分组标准化,平衡BN和LN优势;IN则对每个通道单独标准化,适合风格迁移任务。文章通过图像分类案例详细说明了四种方法的具体计算过程,并提供了标准化方法的选择指南:BN适合大batch训练,LN适用于RNN/Transformer,GN在视觉任务中表现优异,IN则专精于风格迁
2025-07-22 07:00:00
880
原创 机器学习详解(24):超参数大小设置指南之Epoch、学习率、批大小与权重衰减
深度学习模型训练的关键超参数包括训练轮数(Epochs)、学习率(Learning Rate)和批大小(Batch Size)。这些参数对模型性能、收敛速度和稳定性有重要影响: Epochs:表示模型遍历整个训练集的次数。太少会导致欠拟合,太多可能过拟合。建议使用早停法(Early Stopping)和观察学习曲线来确定最佳轮数。 Learning Rate:控制参数更新的步长。过大会导致训练不稳定,过小则收敛缓慢。推荐使用学习率查找器和动态调整策略(如ReduceLROnPlateau)来优化学习率。
2025-07-21 07:00:00
1139
1
原创 机器学习详解(23):Huber Loss损失函数(解决离群值)
Huber回归通过结合平方损失和绝对值损失的优势,有效提升模型在离群值干扰下的鲁棒性。其损失函数以阈值δ控制误差处理方式:小误差时保持平方损失的高精度,大误差时切换为线性损失以降低离群点影响。实验对比显示,相较于传统线性回归,Huber回归在合成数据中更准确拟合真实趋势(如预测值806.72 vs 87.38)。实际应用中需平衡δ的选择,并可通过Scikit-learn快速实现。该方法的灵活性使其适用于NLP、时间序列预测等多领域,为噪声数据建模提供可靠解决方案。
2025-07-18 08:00:00
1030
原创 机器学习详解(22):Focal Loss损失函数(解决类别不平衡)
针对类别不平衡问题,Focal Loss通过引入调制因子γ和类别权重α改进传统交叉熵损失。γ降低易分类样本的损失权重,使模型聚焦困难样本;α调整不同类别的重要性。实验表明,Focal Loss能有效抑制大量简单负样本的干扰,提升模型对少数类和困难样本的学习能力,在目标检测等不平衡任务中表现优异。(144字)
2025-07-18 07:00:00
929
原创 基于Tranformer的NLP实战(7):BERT实战-实现命名实体识别
这篇文章我们基于 NeMo 框架实现了医学领域的命名实体识别系统,涵盖了从数据加载、模型训练到推理评估的完整流程,并对比了通用模型与医学领域模型在任务表现上的差异。实验显示,领域模型如 BioMegatron 在识别准确率上更具优势,特别适用于处理专业性强的医学文本。此外,当前模型仅识别疾病实体,未来可以扩展到多类别实体识别(如药物、症状、基因等),并结合上下游任务如关系抽取,构建更完整的医学知识抽取系统。
2025-07-17 07:00:00
604
原创 基于Tranformer的NLP实战(6):BERT实战-作者归属识别
本项目探索了利用 BERT 模型进行作者归属识别的可行性,验证了语言模型在识别写作风格差异方面的潜力。通过构建分类模型对《联邦党人文集》中的争议文章进行分析,展示了深度学习方法在文本风格识别任务中的实际应用能力。
2025-07-16 07:00:00
1054
原创 基于Tranformer的NLP实战(5):BERT实战-基于Pytorch Lightning的文本分类模型
通过本篇实践,我们不仅完成了一个医学文本分类器的搭建,还深入理解了 NeMo 与 PyTorch Lightning 的协作关系。NeMo 的封装加速了模型落地,而 Lightning 的模块化设计则为进一步定制打下基础。未来你可以基于该框架轻松扩展至多分类、多语言模型或其他医学 NLP 任务,构建更具实际价值的 AI 应用。
2025-07-15 07:00:00
784
原创 基于Tranformer的NLP实战(4):BERT实战-文本分类与命名实体识别的数据结构
这篇文章主要探索了用于文本分类和命名实体识别任务的两个数据集结构。文本分类任务中,每条文本会被标注为某一类疾病(癌症、神经系统疾病或其他)NER 任务中,每个词都被标注为 I、O或B,以识别医学文献中的疾病实体。掌握了数据结构,就为后续构建 BERT 模型打下了坚实基础。下一篇文章,我们将正式进入模型构建部分,并了解如何使用 NVIDIA NeMo 工具包。
2025-07-03 07:00:00
1359
原创 基于Tranformer的NLP实战(3):预训练BERT语言模型
在这篇文章中,我们学习了如何训练一个 BERT 分词器,并利用 NVIDIA NeMo 框架在大规模无标签文本数据上预训练一个 BERT 语言模型。尽管预训练阶段不依赖带标签数据,但它需要大量的计算资源和时间,一般要一周甚至更多的时间。相比之下,微调BERT模型的计算开销较小,但需配合带标签的数据集。
2025-07-02 07:00:00
1372
原创 基于Tranformer的NLP实战(2):BERT原理与可视化
BERT),是基于 Transformer 模型编码器部分的模型。BERT 将输入文本映射到训练好的、带上下文的表示。具体来说,BERT 模型将两个句子作为输入,用特殊符号[SEP]掩码语言模型预测(下一句预测(为了将原始文本转换为数值表示,BERT 使用了一种名为WordPiece的子词分词算法(稍后介绍)。BERT 通常作为语言模型编码器使用。如下图所示,其预训练检查点可通过附加任务特定的层进行扩展。然后在下游任务上进行微调,如令牌分类(命名实体识别)、文本分类、问答等。
2025-06-26 07:00:00
990
原创 基于Tranformer的NLP实战(1):Transformer架构详解
Transformer架构支撑着无数现代自然语言处理、计算机视觉、自动语音识别、时间序列建模及其他应用。在这篇文章中,我们将从整体上了解Transformer架构,以便在本课程后续部分讨论BERT和GPT架构的实现细节。在2017年末,大量的序列到序列(seq2seq)问题,包括翻译,都是通过卷积神经网络或循环神经网络解决的。当时所有模型的共同点是,它们都大量利用了注意力机制,以便处理长序列。Transformer架构在。
2025-06-25 07:00:00
826
原创 基于Transformer架构的脑瘤MRI图像分类实现
这里我们基于自定义一个架构,我们要同时考虑局部特征提取能力与全局建模能力,并在计算效率、参数规模与泛化能力之间取得平衡。这里我们设计了一种融合CNN与Transformer架构优势的自定义模型。CNN计算成本低,擅长提取局部空间特征,但在处理大规模数据时存在性能上限;而Transformer则擅长捕捉全局上下文信息,但计算成本较高。因此,我们对Transformer架构进行了优化,以降低资源消耗的同时保留其建模能力,并利用CNN的归纳偏差加快模型收敛速度。引入CNN作为前置模块。
2025-05-28 07:00:00
1186
原创 深度学习模型部署(4):使用已部署的模型
本节内容展示了如何通过使用问答模型进行实时推理。我们首先介绍了Triton的API接口结构,并通过Python客户端完成了从问题构造、文本预处理、构造模型输入、发送请求到服务器、接收输出结果,再到解析logits并获取最终答案的完整推理流程。通过这一实践,我们掌握了如何将一个深度学习模型以服务形式部署并进行实时调用。
2025-05-22 07:00:00
833
原创 深度学习模型部署(3):服务器性能
本文通过实测与分析,系统评估了Triton推理服务器的三项关键优化技术:并发执行、动态批处理与TensorRT加速。我们对比了启用与未启用优化功能的模型性能差异,发现优化后的模型在吞吐量和延迟上均有显著提升。随后,我们介绍了推理服务在生产环境中的部署架构,以及如何利用Kubernetes和Prometheus实现服务的自动扩缩容与性能监控。下一篇文章,我们将学习如何构建利用 Triton 功能的自定义应用…
2025-05-21 07:00:00
950
原创 深度学习模型部署(2):提升GPU利用率—并发执行、调度与批处理
本文系统介绍了如何通过并发模型执行、调度策略和动态批处理来优化的推理性能。在实验中,我们观察了 GPU 利用率的变化,理解了单实例与多实例、静态批处理与动态批处理之间的差异和优势。高并发 + 小批量请求在单实例下可能导致资源瓶颈,而增加实例数量可以提升吞吐;动态批处理能有效整合多个小请求,进一步提升性能,同时减少内存开销;针对不同模型结构(有状态/无状态、单模型/集成模型),选择合适的调度方式是优化的关键。
2025-05-20 07:00:00
1454
原创 深度学习模型部署(1):模型导出
通过本节实验,你已经成功将一个 NLP 模型(BERT)以格式部署到,并进一步探索了通过ONNX和TensorRT格式实现的部署优化。在下一篇文章中,我们将学习如何对模型本身进行优化,并以更高效的方式进行部署…
2025-05-19 07:00:00
1135
原创 CANopen和CAN学习(4):CANopen规范之EDS、DCF和SDO访问对象字典
EDS()和DCF()文件格式在 CANopen 中用于描述特定节点中实现的对象字典。为了向CANopen分析软件(上位机)提供一种识别 CANopen 节点中可用对象字典条目的方法,需要一种电子可读的文件格式。CANopen 规范了这种格式,称为电子数据表 (EDS)。EDS 是对象字典规范的电子可读版本。接着我们将探讨一下SDO访问对象字典的相关知识和注意事项。
2025-02-27 07:00:00
1893
原创 CANopen和CAN学习(3):CANopen规范之对象字典详解
定义对象字典就像表格,包含所有网络可访问的数据。每个CANopen节点都必须实现自己的对象字典对象字典描述了节点的CANopen配置和功能,可以被其他CANopen节点读取和写入用途对象字典不仅存储节点的应用特定信息,还可以被网络上的其他节点使用通过向节点的对象字典条目写入数据(有时通过读取数据),可以指示节点执行某种操作例如采样当前温度,并将采样数据存储在对象字典中以供其他节点读取信息获取通过读取节点的对象字典条目,其他节点可以了解该节点的功能和操作方式。
2025-02-26 07:00:00
1777
1
原创 CANopen和CAN学习(2):CANopen基础之对象字典、设备配置文件、EDS、SDO、PDO和网络管理
上一节,我们了解了CANopen和CAN学习(1):嵌入式网络通用术语,本节,我们将介绍CANopen协议的主要功能,以及它如何满足嵌入式网络的要求。任何 CANopen 节点的核心是对象字典(,),它是一个由 位索引和 位子索引组成的查找表。这允许在每个索引下最多有 个子条目,每个条目可以包含一个任意类型和长度的变量。对象字典不仅提供了一种将变量与索引和子索引值关联的方法,还指定了数据类型定义表。从索引1开始的条目专门用于指定数据类型。下表显示了对象字典中定义的一些常用数据类型的前七个条目。通过这种
2025-02-25 07:00:00
2040
原创 CANopen和CAN学习(1):嵌入式网络通用术语
从本篇开始,我将深入学习CANopen和CAN相关知识。但在这之前,本篇文章先来了解一下嵌入式网络相关的通用术语。
2025-02-24 07:00:00
1135
原创 机器学习详解(16):迁移学习及代码实例
上一篇文章中,我们用预训练的 ImageNet 模型来识别所有的狗。然而,这次我们希望创建一个只允许特定狗进入的宠物门。以一只名为 Bo 的狗为例,我们有 Bo 的 30 张照片,但预训练模型并未专门训练过这只狗。如果直接用这 30 张照片从头训练模型,会导致过拟合。通过迁移学习,我们可以利用预训练模型中识别狗的能力,在小数据集上实现对 Bo 的识别。本篇文章的目标准备一个预训练模型以进行迁移学习。使用自己的小型数据集对预训练模型进行迁移学习。进一步微调模型以提升性能。
2025-02-13 07:00:00
793
原创 机器学习详解(15):使用预训练模型VGG16识别动物
使用 TorchVision 加载一个训练良好的预训练模型。预处理图像以符合预训练模型的输入要求。使用预训练模型对自己的图像进行准确的推理。我们将创建一个宠物门,只允许狗进入,但将猫等其他动物留在外面。如果通过手动训练模型实现该功能,需要一个包含多种动物的大型数据集。不过,我们可以直接使用已有的预训练模型实现,VGG 模型(如 VGG16 和 VGG19)最初是在 ImageNet 数据集上的 ILSVRC 挑战中提出,并使用该数据集进行了预训练。
2025-02-11 07:00:00
1293
原创 机器学习详解(14):模型的保存和部署实例
通过保存模型,可以将训练成果持久化,避免重复训练节省时间和计算资源。加载模型则使得我们能够方便地在不同环境中复用模型,如本地测试、云端部署或边缘设备运行。此外,保存和加载还便于团队协作和版本管理,确保模型的可追溯性和持续优化能力。这些优势使模型的应用更高效、更灵活。
2025-02-10 07:00:00
1167
原创 机器学习详解(13):CNN图像数据增强(解决过拟合问题)
flattened_img_size = 75 * 3 * 3 # 扁平化后图像的大小# 构建Sequential模型MyConvBlock(IMG_CHS, 25, 0), # 输入:1x28x28,输出:25x14x14MyConvBlock(25, 50, 0.2), # 输出:50x7x7MyConvBlock(50, 75, 0), # 输出:75x3x3nn.Flatten(), # 扁平化nn.Linear(flattened_img_size, 512), # 全连接层。
2024-12-31 07:00:00
1510
1
原创 机器学习详解(12):归一化和标准化
未知或非高斯分布当数据分布未知或不符合正态分布时(例如,房价分布通常有很高的偏态)。归一化可以让目标变量误差更均匀分布,提升模型性能。基于距离的算法在使用依赖距离的机器学习算法时(如 k-近邻算法),归一化能防止大尺度特征主导距离计算。归一化的目标正则化目标变量,使误差分布更加平滑;确保输入变量的不同尺度不会互相干扰,避免模型对大值特征的偏倚。通过正确应用归一化,特征缩放不仅能让模型训练更高效,还能使结果更具解释性。与归一化将特征缩放到特定范围不同,标准化通过将数据调整为均值为000。
2024-12-30 07:00:00
1064
原创 机器学习详解(11):分类任务的模型评估标准
过拟合和欠拟合是导致机器学习算法性能不佳的两个主要原因。过拟合:模型在训练数据上表现得非常好,但对新数据泛化能力很差。模型过于复杂,捕捉了数据中的噪声和无关信息,而非真正的规律。欠拟合:模型过于简单,未能从训练数据中学习到充分的模式和规律,导致训练集和测试集上的性能都很差。特性过拟合欠拟合模型复杂度过高过低训练集性能极好较差测试集性能较差较差原因学习了数据中的噪声和细节未能充分学习数据中的规律解决方法简化模型、正则化、增加数据量、早停。
2024-12-27 07:00:00
1628
原创 机器学习详解(10):优化器optimizer总结
优化器通过调整模型参数来最小化损失函数,从而提高模型的预测能力。它使用损失函数的梯度来确定参数更新的方向,并通过反向传播计算每个模型参数的梯度,进而更新模型的权重。优化算法通过迭代调整参数,直到损失函数达到最小值或达到允许的最大迭代次数为止。学习率的选择是关键,过低的学习率会导致收敛速度缓慢,而过高的学习率可能导致训练不稳定或无法收敛。方法适用场景梯度下降法小型数据集,目标函数平滑、凸优化问题。适用于批量更新参数的场景,计算梯度需要全数据集。随机梯度下降。
2024-12-26 07:00:00
2043
原创 机器学习详解(9):损失函数总结
损失函数使用场景公式特点适用场景特点均方误差(MSE)用于回归任务,衡量预测值与实际值之间的平方差,例如预测房价、温度等连续变量。对较大的误差赋予更高权重,因此对异常值敏感,适合需要精确预测的任务。当异常值较少时表现较好,优化时梯度平滑,适合基于梯度的优化算法。平均绝对误差(MAE)用于回归任务,与 MSE 类似,但更加关注绝对误差,例如用在受异常值影响较大的数据集上,如交通流量预测。对所有误差赋予相同权重,因此对异常值鲁棒,但绝对值函数在 0 点不可微,优化梯度不平滑。
2024-12-19 07:00:00
859
原创 机器学习详解(8):激活函数总结
激活函数是神经网络的核心部分,使其能够捕获数据中的非线性关系。从经典的Sigmoid和Tanh到现代变体如ReLU和Swish,每种激活函数在不同类型的神经网络中都有其特定的用途。理解它们的行为并根据模型需求选择合适的激活函数是关键。
2024-12-18 07:00:00
909
原创 机器学习详解(7):卷积神经网络CNN之手语识别代码详解
本文通过构建卷积神经网络(CNN)实现了对 ASL 手语字母的分类任务,从数据预处理到模型设计,再到训练和验证,完整地展示了深度学习在计算机视觉领域的强大能力。通过使用 Batch Normalization 和 Dropout 等技术,我们在一定程度上缓解了过拟合问题,同时采用了优化器和损失函数的合理搭配来提升模型性能。然而,训练出一个完美的模型需要不断的调参、对数据和结果的深入分析,以及丰富的实践经验。正如在最后的结果分析中,我们发现验证损失的波动需要进一步优化。
2024-12-17 07:00:00
987
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
2024-01-12
Avoiding Read While Write Errors When In-Software Flash
2023-11-27
AES加解密算法(Rijndael) C++代码
2023-09-03
cortex-m4f-lazy-stacking-and-context-switching.pdf
2022-12-02
Supplement to the Bluetooth Core Specification
2022-11-24
STM32 PWM的OCToggle模式输出频率和占空比动态调整的波形
2020-02-24
C语言 指针地址相减的问题
2018-12-20
OpenCV提取HSV颜色范围问题
2021-06-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅