- 博客(32)
- 资源 (4)
- 收藏
- 关注
原创 nanochat 三 模型结构详解
nanochat模型采用基于Transformer的decoder-only架构,核心组件包括嵌入层、多层Block模块和输出层。其中Block模块集成了因果自注意力机制(CausalSelfAttention)和多层感知机(MLP),通过残差连接增强梯度流动。模型创新性采用分组查询注意力(GQA)机制,在保持性能的同时降低计算开销。前向传播时支持训练阶段的并行计算和推理时的KV缓存优化,通过旋转位置编码增强位置敏感性。这种架构设计既保证了语言建模能力,又优化了计算效率,实现了序列内并行和批次间并行的训练加
2025-11-15 15:14:32
697
原创 nanochat 基础训练讲解二
摘要:本文介绍了nanochat训练框架的两个核心组件:数据加载和优化器配置。数据加载部分通过tokenizing_distributed_data_loader函数实现流式数据读取和分词处理,支持分布式训练,关键点包括BOS标记的使用、Token缓冲机制和批次生成逻辑。优化器配置部分采用setup_optimizers函数实现参数分组优化,将参数分为矩阵、嵌入和语言模型头三组,分别应用Muon和AdamW优化器,并引入模型维度相关的学习率缩放机制(dmodel_lr_scale)以保持训练稳定性。两组件共
2025-11-12 22:05:26
925
原创 nanochat大语言模型讲解一
摘要: 本文详细解析了nanochat大模型项目的训练设置与关键技术点。核心训练参数包括:矩阵学习率(0.02)实现参数差异化更新、梯度裁剪(阈值1.0)防止梯度爆炸、学习率调度(final_lr_frac=0.0)实现动态调整。模型采用meta设备初始化高效部署,支持混合精度(BF16)加速训练。训练轮数通过三级策略确定:直接指定>目标FLOPs计算>数据-参数比例计算,其中目标参数比(如Chinchilla的20)控制训练数据量。关键配置体现了大模型训练中对计算效率、稳定性和资源优化的平衡。
2025-11-08 17:56:59
820
原创 gguf量化说明
GGUF量化是一种直接对模型参数进行量化的方法,无需额外推理或微调。该方法通过分块处理权重矩阵(32或256个权重/块),并独立计算各块缩放因子,有效减少量化误差。K-Quants进一步优化该过程,通过增加高精度参数(如缩放因子和最小值)提升精度。GGUF支持混合精度,对关键层(如词嵌入层)保持更高精度。量化工具基于CPU运行,需将整个模型加载到内存,内存需求略大于原始模型大小。该方法通过数值优化算法最小化量化误差,确保精度稳定性。
2025-10-22 22:04:10
363
1
原创 vllm 消费级显卡运行节约显存说明
vLLM是一个高效的大语言模型推理开源工具,采用PagedAttention和连续批处理技术提升显存利用率和推理效率。实验显示在14GB显存显卡上运行Qwen3-VL-4B-Instruct模型时,合理配置max-model-len等参数可优化资源使用。建议max-num-seqs设为1-2,gpu-memory-utilization设为0.95,避免使用cpu-offload-gb等影响性能的参数。部署时推荐手动安装flash-attn和flashinfer-python等加速库。低显存设备(<1
2025-10-18 15:38:10
448
原创 llm模型训练防遗忘与同义词训练理解
摘要:大模型训练面临"灾难性遗忘"问题,需采用持续学习策略管理参数更新。核心方法包括预训练后分阶段微调:首次微调采用混合高质量数据与LoRA等技术;二次微调精选旧数据与新业务数据混合。同义词理解通过显式定义与隐式语境验证结合实现。渐进式训练(如图像到视频)通过分阶段优化提升效率。这些策略共同确保模型在获得新能力时不丢失原有知识,实现参数更新的有效管理。(148字)
2025-10-12 20:57:33
410
原创 deepseek3.2 exp注意力优化机制DSA
DeepSeek-V3.2-Exp引入了DSA(DeepSeek Sparse Attention)稀疏注意力机制,在MLA(Multi-head Latent Attention)低秩压缩的基础上进一步优化长序列处理。DSA通过闪电索引器动态计算token相关性,仅选择最相关的k个token进行注意力计算,将复杂度从O(L²)降至O(Lk)。该机制采用两阶段训练:先稠密训练对齐索引器,再稀疏优化模型参数。DSA保留了MLA的压缩优势,结合稀疏计算显著提升了长文本处理的效率和内存利用率,同时保持模型性能。
2025-10-12 14:50:29
799
原创 Qwen3-Omni多模态prompt输入解析
Qwen3-Omni是一种端到端多模态基础模型,能够处理文本、图像、音频和视频输入,并生成文本和语音响应。文章通过代码示例展示了该模型的推理流程,重点分析了其多模态数据处理机制。模型采用Thinker-Talker架构设计,其中Thinker模块负责多模态内容的融合处理,Talker模块负责语音生成。在推理过程中,模型首先通过处理器整合多模态输入,然后由Thinker生成中间表示,最后可选择性地由Talker转换为语音输出。该模型架构体现了多模态大模型与传统单模态文本生成模型的显著区别。
2025-09-27 16:54:03
720
原创 Qwen3-80B-A3B混合注意力机制
本文探讨了注意力机制的发展与优化,重点分析了多头注意力(MHA)、多查询注意力(MQA)和分组查询注意力(GQA)的特点及适用场景。同时介绍了阿里Qwen3-Next-80B-A3B模型采用的创新混合注意力机制,该机制结合标准注意力与改进的线性注意力,通过Gated DeltaNet和门控机制解决线性注意力在全局特征捕捉上的不足。其中,线性注意力利用核函数和矩阵结合律将复杂度降至O(L),而Delta规则和门控机制则增强了记忆更新的精确性和灵活性。实验表明,3:1的线性注意力与标准注意力混合使用能有效平衡计
2025-09-13 17:38:48
954
原创 unsloth微调gemma3图文代码简析
本文展示了如何使用unsloth库对Gemma-3-4B模型进行微调。代码首先加载本地已下载的4bit量化模型,然后通过FastVisionModel.from_pretrained函数检查模型架构,自动判断是否为视觉语言模型(VLM)并选择相应的处理器。模型加载后,用户配置LoRA参数,包括是否微调视觉层、语言层等模块,并设置相关超参数。内部逻辑通过正则表达式匹配需要微调的模块名称,最终将这些模块配置到LoRA训练中。整个过程实现了高效的内存利用和灵活的模块化微调设置。
2025-09-11 22:58:21
171
原创 IndexTTS2安装说明
摘要:IndexTTS2是哔哩哔哩2025年9月发布的首个支持精确时长控制的自回归TTS模型,具备情感语音合成能力。项目提供GitHub开源代码,详细说明了安装流程:需配置Git LFS、UV包管理工具,推荐使用国内镜像源安装依赖。模型文件可通过Hugging Face或魔搭平台下载,需注意CUDA驱动版本匹配问题。安装过程中如遇CUDA报错,建议通过NVIDIA官网下载对应版本的Toolkit,文中提供了具体的安装指令和版本检查方法。(150字)
2025-09-10 22:24:32
1805
原创 RAG召回策略说明
本文介绍了RAG(检索增强生成)的核心流程,包括查询向量化、召回、重排序和生成四个阶段。重点分析了双塔模型(Bi-Encoder)在召回阶段的应用,其通过独立编码查询和文档实现高效检索,并支持离线预计算。同时对比了双塔模型与交叉编码器(Cross Encoder)的差异:前者适合快速粗筛,后者用于精准重排序但计算成本高。实际应用中通常采用两阶段策略,先通过双塔模型快速召回候选结果,再使用交叉编码器进行精细重排序,兼顾效率与准确性。这种组合方案能有效提升对话型RAG系统的性能。
2025-09-06 16:35:15
730
原创 混元模型接入openmanus尝试
摘要:OpenManus是基于ReAct框架的开源工具,通过推理-行动-观察循环完成任务。本文介绍了如何将混元模型(hunyuan-vision)接入该工具,包括修改配置文件(app/llm.py)添加模型支持、调整对话格式适配模型限制。展示了三个使用场景:1)本地文件创建与修改;2)联网检索电影信息;3)Python代码执行验证。工具能有效分解任务并调用相应功能,但也存在网页操作受限等局限性。演示案例包括文件操作完整流程、网络搜索实现和斐波那契数列代码执行验证。
2025-08-27 09:21:18
255
原创 langchain-chatchat对话逻辑解析
本文分析了langchain-chatchat工具中agent模型的实现逻辑。重点解析了qwen agent的工作流程:从用户请求入口到创建agent实例,再到执行多步骤推理。关键点包括:1)使用plan-execute模式构建agent;2)通过循环判断和迭代步骤实现多轮工具调用;3)最终将工具结果转换为可返回的响应格式。文章特别指出在agent模式下需要手动添加历史上下文关联,并对核心的plan函数和工具调用流程进行了详细说明。
2025-08-24 19:24:49
863
原创 transformer 的多头注意力计算说明
摘要:Transformer的多头注意力机制通过将输入向量拆分为多个子空间(注意力头),使模型能够从不同维度捕捉序列依赖关系。每个头独立计算注意力分数,处理特定子空间的特征(如语法、语义等),最后合并结果形成综合表示。这种设计并非截断信息,而是通过线性变换将高维特征分解到多个子空间,各头专注不同特征组合,最终合并实现更全面的信息融合。多头协作机制使模型能同时关注语法结构、语义关联等多角度依赖关系,相比单一头计算能更丰富地表达复杂模式。子空间的划分和特征组合由模型训练过程自动学习优化。
2025-08-05 20:36:52
758
原创 LLM 大语言模型 RoPE 相对位置编码综述
本文系统探讨了Transformer架构中的位置编码技术,重点分析了传统绝对位置编码的局限性和RoPE(Rotary Position Embedding)的创新优势。传统正弦余弦编码存在频谱混淆、长程衰减等问题,而RoPE通过复数空间旋转操作实现绝对位置到相对关系的映射,解决了语义稀释和位置信息保持的难题。文章详细解析了RoPE的复数空间映射、旋转操作、分块对角矩阵等核心技术,并展示了其在主流模型中的工程实现。最后指出,RoPE已成为现代大语言模型的事实标准,未来在动态频谱调控和多模态统一编码方面具有发展
2025-08-03 16:57:45
1098
原创 xformer\vllm与cuda版本
cuda11.7安装 pip3 install xformers==0.0.23.post1 及以下版本,例如。默认不指定xformer版本可能安装最新版,对于之前版本的cuda会不兼容。
2024-04-13 11:30:45
6913
1
原创 vue 报错Maximum call stack size exceeded
vue-cli 4version Uncaught RangeError: Maximum call stack size exceeded可能原因…/views/*.vue 内页面 name与components内名称一致造成export default { name: 'Index', components: { Index }
2020-12-27 20:31:30
254
原创 c语言生成库与链接运行
四个阶段:预处理, 展开头文件/宏替换/去掉注释/条件编译 (cc.i cc.i)编译, 检查语法,生成汇编 (cc.s cc.s)汇编, 汇编代码转换机器码 (cc.o cc.o)链接 链接到一起生成可执行程序 a.out引用其他文件函数生成可执行文件过程:cc.h 文件:#if !defined(_CC_H_)
2020-11-24 15:01:55
216
原创 vue-cli4 build后index.html空白
项目根目录新建vue.config.js文件,内容如下:module.exports = { publicPath: process.env.NODE_ENV === 'production' ? './' : '/', }npm run build查看dist/index.html是否正常显示。如果仍然为空白页检查src/router/index.js文件:const router = new VueRouter({ mode: 'history', base
2020-11-12 17:13:23
350
原创 dh_make构建deb包
构建工具dh_make准备构建文件包含:prerm、postrm、preinst、postinst、install、control、changlog、rules另外一个syncthing执行程序。vi ~/.bashrc,加入以下三行:DEBFULLNAME="包名称任取"DEBEMAIL="邮箱地址"export DEBFULLNAME DEBEMAIL创建构建包目录syncthingdeb |____syncthing-1.7.1 |
2020-08-11 11:29:24
6275
原创 virtualbox cmd扩容虚拟机
1. 首先在虚拟机管理器中增加数据盘容量,例如30GB2. 进入虚拟机执行$df -h,查看数据盘地址,例如/dev/sdb13. $parted /dev/sdb,进入命令交互。$resizepart 1,之后如果出现“Fix/Ignore?” 输入fix指令,partition number? 输入1,然后“yes/no?”输入yes,显示“End?”输入上面扩容的大小30000mb,然后执行print查看修改是否成功,最后quit。注:如果是系统盘扩容会出现新增空间与系统盘空间不连续无法扩容情
2020-08-10 17:53:26
289
原创 rust项目结构
rust 项目目录结构project | ——src 【项目代码目录】 | ——targets 【编译后自动生成目录】 | ——tests 【测试用例目录】 | ——bench 【性能测试目录】 | ——exmple 【用例目录】 | ——cargo.toml 【不写[[bin]]标签默认执行src/main.rs】模块引入项目结构:project├── Cargo.toml└── src └── pro1.
2020-08-10 17:49:19
3102
原创 rust学习可变与引用过程理解
mut可变性rust学习的第一个与其他语言不同点便是变量初始化后的使用。 let a = 1; println!("a:{}",a); a = 2; println!("a 2:{}",a);上段代码编译报错“cannot assign twice to immutable variable”。说明rust简单初始化变量是不具有可变性,不可修改只可读。正确运行代码: let mut a = 1; println!("a:{}",a); a
2020-08-10 12:06:26
475
原创 virtualbox cmd挂载共享目录
配置:virtualbox 6.1.6 无界面debian系统在合适位置创建目录用来挂载镜像这里在根目录/。mkdir cdrommount /dev/cdrom /cdromcd /cdrom./VBoxLinuxAddition.run如果出现报错信息“kernel headers not fount for target kernel”解决:安装apt install gcc make linux-headers-$(uname -r)再次执行 ./VBoxLinuxAddit
2020-06-08 11:48:18
319
原创 Modbus说明
Modbus是一种单主站的主/从通信模式Modbus网络上只能有一个主站存在,主站在 Modbus网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。 Modbus通信标准协议可以通过各种传输方式传播,如 RS232C、RS485、光纤、无线电等。 Modbus具有两种串行传输模式,ASCII 和 RTU以及以太网tcp变种。它们定义了数...
2019-05-16 14:20:04
1715
原创 golang slice复制范围说明
golang slice的复制范围说明:代码简要说明:func TestSli(t *testing.T) { sl := []int{0,1} sl2 := make([]int,0) for i := range sl{ fmt.Println("i:",i) sl2 = append(sl2,sl[i+1:]...) } fmt.Println("sl2:",sl2)...
2019-04-16 09:44:06
734
modbus说明
2018-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅