自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白的博客

努力进化

  • 博客(180)
  • 资源 (9)
  • 收藏
  • 关注

原创 大模型流式输出过滤敏感词

本文介绍一个支持跨 chunk 检测的流式敏感词过滤器,基于 Aho-Corasick 思想,通过维护缓冲区与尾部保留机制,确保敏感词无论是否被拆分都能准确拦截。过滤器在命中时输出安全前缀与拦截提示后终止流,支持归一化处理与真实 API 调用。附带 mock 流演示与 OpenAI 实际调用接口,实现高效、安全的实时内容过滤。

2026-10-05 09:08:12 239

原创 BLEU 和 ROUGE

BLEU与ROUGE是文本生成评估的两大核心指标,本质差异在于视角:BLEU侧重精确率(生成内容有多少在参考中),强调“说对了多少”;ROUGE侧重召回率(参考内容有多少被覆盖),关注“漏掉多少”。前者分母为生成文本长度,有长度惩罚,适合翻译等答案固定任务;后者分母为参考文本长度,无惩罚,适合摘要等需信息完备的任务。实际应用中,翻译看BLEU,摘要看ROUGE,对话生成常结合两者评估。

2026-09-29 10:17:54 418

原创 语言识别:WER和 CER

WER(词错误率)与CER(字符错误率)是评估自动语音识别(ASR)系统准确性的核心指标,均基于编辑距离计算。二者公式一致:(S+D+I)/N,数值越小越好。WER以词为单位,适用于英文等分词语言;CER以字符为单位,更适中文、日文等无空格语言。示例显示,替换、删除、插入错误均可影响结果。推荐使用jiwer库便捷计算,或手动实现动态规划算法。注意:CER可超100%,且不反映语义正确性,需结合其他指标综合评估。

2026-09-29 10:09:12 168

原创 soundfile的使用

soundfile 是基于 libsndfile 的高效 Python 音频 I/O 库,支持 WAV、FLAC、OGG 等多种格式,通过 NumPy 数组实现音频数据读写,专精于文件输入输出。其核心功能包括读写音频、查询文件信息、分块处理大文件及格式转换。使用 sf.read()、sf.write() 和 sf.blocks() 可灵活处理音频流,结合 SoundFile 类实现精细控制。注意:不支持旧版 MP3,且整数类型输出需确保数据范围正确。适用于与 librosa 等库配合进行信号处理的流水线任务

2026-09-26 16:01:16 156

原创 OpenAI 库实现 Function Calling 和 结构化输出

OpenAI 的 Function Calling 与结构化输出支持通过工具调用和 Pydantic 模型实现精准交互。Function Calling 流程为:定义工具 → 模型判断调用 → 执行函数 → 回传结果生成回复,可结合 tool_choice 控制行为。结构化输出推荐使用 beta.chat.completions.parse 配合 Pydantic,实现严格模式下的自动解析,确保输出格式准确无误,优于基础 JSON Mode。

2026-09-26 11:40:10 226

原创 PyTorch 中网络剪枝、梯度剪裁、梯度累积

本文介绍PyTorch中模型压缩与训练优化的三大技术:网络剪枝(非结构化/结构化剪枝,支持权重与通道级移除)、梯度剪裁(按范数或值限制,防止梯度爆炸,兼容混合精度训练)以及梯度累积(显存受限时模拟大批次训练)。通过实例展示剪枝比例控制、梯度归一化与累积更新机制,提升模型效率与训练稳定性。建议剪枝从10%~20%起步,梯度范数阈值可参考90分位数。

2026-09-26 11:37:40 264

原创 fastapi websocket全双工通信

本文介绍了一个基于FastAPI WebSocket的实现方案,核心功能是支持中断式问答交互。系统采用异步任务管理机制,当收到新问题时能自动终止当前回复任务并启动新回复。主要技术点包括: 使用asyncio.Task管理回复任务,通过task.cancel()实现中断功能 设计双工通信协议,支持问题提交、流式回复、中断控制三种消息类型 通过stop_event事件实现协程间的优雅终止 包含完整的异常处理和资源清理机制 提供测试页面演示交互流程 该方案适用于需要支持用户中途打断的AI对话场景,代码结构清晰,展

2026-08-04 16:24:49 193

原创 在大语言模型上使用 PPO 算法

本文介绍了如何从零实现一个在大语言模型上使用PPO算法的完整系统。系统包含四大模型(Actor、Reference、Reward、Critic)和六大核心模块,详细说明了数据准备、模型定义及交互流程。 文章首先展示了整体架构图,PPO训练主循环包含四个关键模型:可训练的Actor策略模型、冻结的Reference参考模型、冻结的Reward奖励模型和可训练的Critic价值模型。数据流分为Rollout生成、奖励计算、GAE优势估计和PPO更新四个步骤。 数据准备部分说明了两种数据类型:用于生成Rollou

2026-08-04 16:04:26 307

原创 subprocess.run用法详解

subprocess.run()是Python执行外部命令的高级函数,返回CompletedProcess实例,包含命令参数、返回码、输出等信息。主要参数包括:args(命令)、capture_output(捕获输出)、text(文本模式)、check(检查返回码)、timeout(超时设置)等。典型用法包括:执行命令获取输出、传递输入数据、异常处理与超时控制、合并标准输出与错误。推荐配合capture_output=True和text=True使用,简洁高效。

2026-07-23 22:05:51 227

原创 Python通过信号量控制多进程并发

Python中multiprocessing.Semaphore是一种同步原语,用于控制共享资源的并发访问数量。与互斥锁不同,信号量允许多个进程(指定数量)同时访问资源。使用时需在主进程创建信号量并传递给子进程,避免全局变量导致的同步问题。通过acquire()获取、release()释放资源,推荐使用with语句自动管理。示例展示了如何用信号量限制最多3个进程同时执行任务,相比进程池更灵活控制特定代码块的并发。信号量适用于管理有限资源(如数据库连接)的并发访问场景。

2026-07-22 22:11:41 161

原创 python基于失败率的智能熔断器

文章摘要:本文介绍了一种基于失败率的智能熔断器实现方案。该方案通过在pybreaker外层封装统计逻辑,实现按失败率触发熔断。核心功能包括:1)维护固定时间窗口内的请求记录;2)实时计算失败率;3)当失败率超过阈值时手动触发熔断;4)提供熔断后的自动恢复机制。文中给出了完整的Python实现代码,包含滑动窗口统计、状态管理和调用保护等功能,可有效提升系统稳定性。该方案适用于需要精细控制熔断阈值的场景,比传统基于错误次数的熔断更灵活。

2026-07-21 14:37:51 171

原创 自注意力中随着根号dk的增大,qk点积的方差为什么也会增大

在Scaled Dot-Product Attention中,$Q$和$K$的点积方差随维度$d_k$线性增长,这是因为独立随机变量求和的方差具有累加性。若不进行缩放,较大的$d_k$会导致Softmax输入值方差过大,引发梯度消失问题。通过除以$\sqrt{d_k}$,可将方差稳定在$\sigma^4$水平,确保训练稳定性。这一缩放因子有效解决了高维注意力机制中的梯度问题,是Transformer模型成功的关键设计之一。

2026-07-17 19:17:46 342

原创 基于VGG16骨干网络实现FCN-8s

本文提供了一个完整的FCN-8s语义分割网络PyTorch实现,基于VGG16骨干网络。代码包含详细中文注释,主要特点包括:1) 使用VGG16特征提取器并替换全连接层为卷积层;2) 实现三层跳跃连接(pool3/pool4/final)融合多尺度特征;3) 采用双线性插值初始化转置卷积层实现上采样;4) 支持预训练权重加载。该实现可直接运行测试,适用于21类VOC数据集,通过组合深层语义和浅层细节特征实现8倍上采样,获得精细分割结果。

2026-07-10 09:32:26 170

原创 使用pip命令离线安装python库

本文介绍了Python包离线安装的两种方法。对于单一库安装,先在联网环境使用pip download下载库及其依赖项到指定目录,然后在离线环境通过pip install --no-index --find-links命令安装。对于整个环境安装,先在联网环境生成requirements.txt并用pip download下载所有依赖包,最后在离线环境使用相同命令批量安装。两种方法都通过--no-index参数禁止连接PyPI服务器,--find-links指定本地包路径实现离线安装。

2025-09-22 17:55:46 825

原创 重排序模型计算两个文本的分数

模型选择:使用BAAI/bge-reranker-large模型,该模型专门针对查询-文档相关性任务训练,支持中英文混合场景。输入构造:将查询与每个文档组成二维列表,形成(query, doc)对,这种交叉编码方式能捕捉细粒度语义交互。分数计算:通过sigmoid函数将logits转换为0-1的概率值,分数越高表示相关性越强,0.5为判定阈值。批处理优化:通过padding=True和return_tensors='pt’实现批量推理,提升计算效率。

2025-05-22 21:38:51 460

原创 大模型相关数据格式及训练器接收的数据格式

需要使用下方的代码,转换为。

2025-05-22 20:44:50 701

原创 模型剪枝的定义与核心作用

模型剪枝(Model Pruning)是一种通过移除神经网络中的冗余参数或结构来压缩模型的技术,旨在保持模型性能的同时降低计算复杂度、存储需求和推理延迟。其核心作用包括降低计算成本、减少内存占用、提升硬件友好性以及缓解过拟合。本文以PyTorch为例,详细展示了如何在MNIST分类任务中实现模型剪枝。首先,通过L1非结构化剪枝方法剪除30%的权重,并对剪枝后的模型进行微调,最终评估其性能。此外,还介绍了手动实现L1权重剪枝的方法,并展示了如何统计模型的稀疏性。通过这些步骤,可以有效压缩模型,提升其在边缘设备

2025-05-22 14:09:28 570

原创 数据集下载并保存本地进行加载

本文介绍了如何使用Hugging Face库进行数据集的下载、保存和本地加载。首先,通过load_dataset函数从Hugging Face下载指定数据集,并设置缓存目录。接着,使用save_to_disk方法将数据集保存到本地。最后,通过load_from_disk函数从本地加载数据集。文章还展示了每一步的代码示例和运行测试结果。关于Modelscope的内容尚未补充。

2025-05-22 00:08:49 573

原创 微调后的模型保存与加载

在Hugging Face Transformers库中,微调后的模型保存与加载方式因微调方法不同而有所差异。常规微调时,可以使用save_pretrained()方法保存整个模型(包括权重、配置、分词器),并通过from_pretrained()加载。对于参数高效微调(如LoRA),只需保存适配器权重,加载时需将适配器与原模型合并。此外,Trainer API支持自动保存策略,而基于Unsloth的微调模型则提供了多种保存选项,包括轻量级适配器保存、全量模型合并保存、GGUF高效推理格式导出以及多格式混合

2025-05-21 20:14:59 1737 1

原创 大模型下载到本地

【代码】大模型下载到本地。

2025-05-21 19:50:44 421

原创 BitsAndBytesConfig参数描述

Hugging Face Transformers 库中的 BitsAndBytesConfig 提供了动态量化的核心参数配置,旨在优化模型的内存占用和计算效率。主要参数包括 load_in_4bit(启用 4 比特量化)、bnb_4bit_quant_type(指定量化数据类型,如 nf4 或 fp4)、bnb_4bit_compute_dtype(设置计算数据类型,如 torch.bfloat16)以及 bnb_4bit_use_double_quant(启用嵌套量化以进一步减少内存占用)。此外,llm

2025-05-21 19:26:04 1277

原创 模型量化与保存

【代码】模型量化与保存。

2025-05-21 19:19:19 626

原创 梯度裁剪详解与从零实现

梯度裁剪(Gradient Clipping)是一种在神经网络训练中用于防止梯度爆炸的技术。它通过限制梯度的大小或范数,确保参数更新幅度不会过大,从而提升训练稳定性。主要方法包括按范数裁剪和按值裁剪。按范数裁剪通过计算梯度的L2范数并缩放梯度至预设阈值,保持梯度方向不变;按值裁剪则直接限制每个梯度元素的取值范围。梯度裁剪的优点包括防止梯度爆炸、允许更大的学习率以及广泛的适用性,但也存在超参数敏感、可能改变梯度方向以及额外计算开销等缺点。实现梯度裁剪可以通过手动计算梯度范数或直接调用PyTorch内置函数完成

2025-05-21 12:58:24 1606

原创 vllm启动模型的四种方式

本文介绍了如何使用 vllm 库在单机单卡环境下部署和运行模型。通过命令行工具 vllm serve,用户可以指定模型名称或本地路径,并设置相关参数来启动服务。默认情况下,模型会从 Hugging Face 下载,数据类型为 auto。文章还提供了官方参数介绍链接,详细列出了 vllm serve 命令的可选参数,包括主机名、端口号、SSL 配置、模型加载格式、数据类型、并行计算设置等。这些参数允许用户根据需求灵活配置模型服务,例如调整 GPU 内存利用率、启用前缀缓存、设置量化方式等。通过合理配置这些参数

2025-05-21 12:36:32 5721

原创 PEFT简介及微调大模型DeepSeek-R1-Distill-Qwen-1.5B

PEFT(参数高效微调)是由Huggingface团队开发的开源框架,旨在高效地将大型预训练模型(如GPT、LLaMA、T5等)适配到下游应用,而无需微调所有参数,从而显著降低计算和存储成本。PEFT通过冻结大部分预训练参数,仅调整少量新增或特定层参数(如低秩矩阵、适配器模块),可将训练参数量缩减至原模型的0.1%-1%,同时保持与完全微调模型相当的性能。PEFT支持多种高效微调方法,如LoRA、Prefix Tuning、AdaLoRA和IA3,适用于文本生成、分类、少样本学习等任务。

2025-05-20 22:02:17 1219

原创 DeepSpeed简介及加速模型训练

DeepSpeed是由微软开发的开源深度学习优化框架,旨在通过系统级优化技术提升大规模模型的训练与推理效率。其核心功能包括显存优化(如ZeRO技术、Offload技术)、灵活的并行策略(如3D并行)、训练加速(如混合精度训练、稀疏注意力机制)以及推理优化(如低精度推理、模型压缩)。与PyTorch相比,DeepSpeed在显存效率、并行灵活性和生态集成方面具有显著优势,但配置复杂度和硬件依赖是其局限性。DeepSpeed支持与Hugging Face Transformers和PyTorch无缝集成,并通过

2025-05-20 21:22:57 9147

原创 vLLM框架高效原因分析

vLLM框架以其高效的模型推理性能著称,主要依赖于PagedAttention、连续批处理、内存与计算优化、分布式推理与并行化以及高效缓存管理等核心技术。PagedAttention通过动态显存管理显著提升显存利用率,连续批处理则通过动态调整批次最大化GPU利用率。内存与计算优化包括融合操作和量化技术,减少数据传输和计算开销。分布式推理与并行化通过模型、数据和流水线并行提升处理能力。高效缓存管理则通过预分配与复用、逻辑-物理块映射和共享缓存降低显存占用。这些优化使vLLM在显存占用、吞吐量、长序列支持和并发

2025-05-20 20:10:24 1211

原创 PyTorch中单卡训练、DataParallel(DP)和DistributedDataParallel(DDP)

PyTorch提供了单卡训练、DataParallel(DP)和DistributedDataParallel(DDP)三种模型训练方式。单卡训练简单易用,适合小规模模型和调试,但受限于单卡资源。DP通过单进程多线程实现数据并行,代码简单但存在显存不均衡和效率低下的问题,仅适用于单机多卡。DDP基于多进程实现分布式数据并行,显存均衡、高效并行且支持多机扩展,但配置复杂,适合大规模训练。选择建议:单卡训练用于快速验证,DP用于快速实验,DDP用于生产环境和大规模训练。

2025-05-20 19:59:41 1286

原创 Python中列表相关操作

本文介绍了Python中列表(list)的增删改查操作。增加元素包括append()、insert()、extend()和切片赋值;删除元素涉及remove()、pop()、del语句和clear();修改元素可通过直接索引赋值、切片批量修改和列表推导式实现;查找元素则使用index()、in运算符、count()和遍历查找。这些操作涵盖了列表的基本操作,帮助开发者高效处理数据。

2025-05-20 19:41:39 487

原创 BM25(Best Matching 25)介绍与使用

BM25(Best Matching 25)是一种改进的信息检索算法,旨在克服传统TF-IDF的局限性。其核心原理包括词频饱和控制、文档长度归一化和参数可调节性。BM25通过非线性函数限制高频词的影响,并对长文档进行惩罚,避免其天然得分过高。其计算公式结合了逆文档频率(IDF)、词频(TF)和长度归一化因子,通过调节参数k1和b灵活控制词频和文档长度的影响。BM25在搜索引擎、问答系统和推荐系统中广泛应用,尤其在短查询与长文档的匹配场景中表现优异。与TF-IDF相比,BM25具有更强的抗长文档偏差能力和更高

2025-05-19 22:04:03 2126

原创 RAG检索结果评估MRR与NDCG计算

MRR@10和NDCG@5是推荐系统中常用的评估指标,分别用于衡量首个相关结果的排名质量和前几个结果的排序质量。MRR@10通过计算首个相关项排名的倒数来评估系统性能,适用于强调首条相关结果的场景。NDCG@5则综合考虑相关性和位置衰减,适用于需要精细排序优化的场景。两者的计算方式不同,MRR@10简单直观,而NDCG@5支持多级相关性,但计算复杂度较高。在实际应用中,可以根据具体需求选择合适的指标来评估推荐系统的性能。

2025-05-19 21:55:34 1574

原创 Python如何从线程(Thread)和进程(Process)中获取运行结果

在Python中,从线程和进程中获取运行结果的方法各有不同。对于线程,常见方法包括使用全局变量、自定义线程类、线程池和队列。全局变量简单但存在线程安全问题,自定义线程类封装性好,线程池适合I/O密集型任务,队列则安全高效。对于进程,常用方法有共享内存、进程间队列、进程池和ProcessPoolExecutor。共享内存适合简单数据共享,进程间队列支持跨进程通信,进程池适合CPU密集型任务,ProcessPoolExecutor则提供了与线程池一致的接口,简化代码迁移。根据任务类型和需求选择合适的方法,可以有

2025-05-19 21:19:18 612

原创 PyTorch模型保存方式

PyTorch提供了两种主要的模型保存方式:仅保存模型参数和保存完整模型对象。

2025-05-19 21:11:21 558

原创 python使用jsonpath-ng库操作json数据

jsonpath-ng 是一个用于在 JSON 数据中执行路径查询的 Python 库。

2025-05-19 20:51:53 1659

原创 Python对JSON数据操作

在Python中,json模块提供了对JSON数据的增删改查及加载保存操作。加载数据可通过json.load()从文件读取或json.loads()从字符串解析;保存数据则使用json.dump()写入文件或json.dumps()生成字符串。

2025-05-19 20:30:55 689

原创 大模型训练计算显存占用

显存占用: 与批次大小(batch size)和序列长度正相关,例如处理512x512x512的3D数据时,单个样本占用134MB,32批次则需4.2GB。显存占用: 以LLaMA-7B模型为例,若使用FP32(32位浮点)精度存储,7B参数占用约28GB显存;优化技术:通过ZeRO(零冗余优化器)将参数切分到多个GPU上,例如ZeRO-3将参数分布在所有GPU中,显存占用降低至单卡的1/N(N为GPU数量)。内容:包括神经网络的权重(weights)和偏置(bias),是模型的核心组成部分。

2025-05-19 19:59:43 959

原创 达梦数据库对json字段进行操作

在达梦数据库中,JSON数据通常以VARCHAR或TEXT类型存储,并通过内置的JSON函数进行操作和过滤。

2025-05-19 19:39:26 2389

原创 使用PEFT库将原始模型与LoRA权重合并

本文介绍了如何使用PEFT库将原始模型与LoRA权重合并。首先,加载基础模型和tokenizer,确保配置与LoRA训练时一致。接着,加载LoRA适配器,并通过merge_and_unload()方法将LoRA权重与基础模型合并,同时移除LoRA层。最后,将合并后的模型保存为标准HuggingFace格式,便于后续推理。代码示例展示了完整的合并与保存流程,用户只需提供基础模型路径、LoRA权重路径和输出路径即可完成操作。

2025-05-15 23:36:36 1372 1

原创 LLaMA-Factory 微调 Qwen2-7B-Instruct

使用 llama factory 微调大模型 Llama3-8B-Chinese-Chat

2025-05-14 23:04:50 2006 2

原创 大模型中的KV Cache

KV Cache(Key-Value Cache)是一种在Transformer模型推理阶段优化自注意力机制的技术,通过缓存键(Key)和值(Value)矩阵,避免重复计算,从而提升推理效率。

2025-05-13 20:48:56 1950

dataset-info.json 文件

llamafactory中 data目录下的 dataset_info.json 文件

2025-05-13

机器学习分类算法实验报告.docx

对于KNN,SVM,adaboost以及决策树等分类算法对数据集运行结果进行总结,代码点我博文

2021-05-30

数字图像处理图10.34的霍夫变换代码及ppt.rar

对飞机跑道进行直线检测,并将断裂线段连接起来,是数字图像处理第三版图10.34,代码与ppt,matlap实现

2021-06-20

频域拉普拉斯算子.pptx

频域中使用拉普拉斯算子增强图像

2021-05-17

poi-3.17.zip

使用java建表,读取表,对表进行操作

2021-08-19

jsp上传文件所需jar包.zip

引入的 jar 文件:commons-fileupload-1.3.2、commons-io-2.5.jar; 相关实现代码在我博文上

2021-08-19

连接数据库以及poi创建表格所需jar包.rar

HSSFWorkbook,HSSFSheet,HSSFRow,jar包,和连接数据库的jar包

2021-06-21

彩色锐化之拉普拉斯.pptx

使用拉普拉斯对彩色图像进行锐化,matlab实现

2021-05-30

Survey on Influence Factors on Spouse Choice of Contemporary Chinese Youth.pptx

调查年轻人选择配偶考虑的因素和数据分析

2021-05-15

均值滤波与阈值处理-zt.pptx

空间域:均值滤波与阈值处理 代码实现和效果截图

2021-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除