- 博客(26)
- 收藏
- 关注
原创 从零打造大语言模型3--从零实现一个小型 GPT(超详细·小白友好):逐行代码 + 训练循环 + 可运行脚本
本文介绍了一个从零开始实现小型GPT模型的进阶教程,专为初学者设计。文章采用分步详解的方式,从环境配置到完整模型构建,每步包含功能说明、代码注释、数据形状变化和常见问题提示。主要内容包括: 使用字符级Tokenizer进行文本处理 配置模型参数(层数、维度等) 数据预处理和批采样 实现带因果遮罩的多头自注意力 前馈网络设计 Transformer块详细实现(特别强调Pre-LN结构) 模型组装与权重共享 文本生成策略(包括贪心、Top-k和温度采样) 完整训练循环实现 教程最后提供可运行脚本和常见问题速查表
2025-08-22 12:54:55
995
原创 从零打造大语言模型2--编码注意力机制
这篇文章深入浅出地讲解了多头注意力机制的实现原理和逐步实践方法。从单头自注意力开始,详细介绍了Q/K/V的含义、缩放点积计算、因果遮挡和padding遮挡的处理技巧。然后通过两种实现方式(Wrapper复制法和工程高效法)展示多头注意力的构建过程,并嵌入到Transformer Block中完成语言建模任务。文章包含完整的代码实现、维度变化说明、参数量统计和等价性验证,适合初学者从零掌握多头注意力的核心思想与工程实践。
2025-08-16 17:57:04
725
原创 【小白友好】多头注意力到底怎么实现?9 种写法拆解 + 该怎么选(含逐行注释)
本文介绍了多头注意力(MHA)的9种实现方法与选择指南。首先用通俗类比解释注意力机制和多头的本质,然后详细分析9种实现方案:从手写拆头到合并QKV、einsum、PyTorch SDPA/FlashAttention、nn.MultiheadAttention和FlexAttention等。性能测试表明SDPA(FlashAttention路径)最快,前向约1.25ms。文章重点推荐两种写法:合并QKV的手写版(通用性强)和SDPA(简单高效),并提供了可直接复用的代码。最后给出选择对照表,帮助读者根据不同
2025-08-15 12:00:00
857
原创 【小白友好】PyTorch Buffer 保姆级讲解:它到底是啥、为什么需要、和 Dataset/DataLoader 有啥关系?(含逐行代码注释)
PyTorch中register_buffer的作用解析与实战指南 摘要:本文深入浅出地讲解了PyTorch中register_buffer的核心概念和实用价值。文章首先通过生活化比喻区分了nn.Parameter、普通张量属性和Buffer的区别,指出Buffer是"跟随模型但不参与训练"的持久化工具张量。着重分析了Buffer的三个关键特性:自动设备迁移、不参与梯度更新、支持模型保存/加载。通过典型报错案例展现了未注册Buffer导致的设备不一致问题,并阐明Buffer与DataLo
2025-08-14 16:29:07
690
原创 neo4j数据库实战
本文介绍了neo4j图数据库的安装配置及Python操作指南。主要内容包括:1)neo4j安装步骤,包含JDK环境配置和社区版安装;2)数据库启动方法及Web界面登录;3)基本Cypher操作示例,涵盖节点和关系的增删改查;4)Python驱动安装及开发实例,详细演示了数据库连接、数据创建、查询、更新和删除等操作。通过本文,读者可以快速掌握neo4j的基本使用方法和Python编程接口,实现图数据的存储与管理。文中提供了完整的代码示例,便于开发者快速上手实践。
2025-08-11 19:31:09
1025
原创 从零打造大语言模型--处理文本数据
本文介绍了构建大语言模型前处理文本数据的关键步骤。主要内容包括:1)词嵌入将离散 token 映射为连续向量;2)文本分词技术,包含正则表达式切分英文、jieba 处理中文以及混合分词方案;3)建立词表实现 token 与 ID 的双向映射;4)实现简单分词器并处理特殊 token;5)介绍 BPE 算法和 tiktoken 工具的应用;6)展示滑动窗口采样和数据加载器的实现。文章通过代码示例演示了从原始文本到模型可处理数据的完整流程,涵盖了英文、中文及混合文本的处理方法。
2025-08-02 16:06:10
431
原创 基于RAG技术的国产大模型文档智能问答系统实战
RAG技术解析与应用 RAG(检索增强生成)技术结合信息检索与文本生成,解决了传统搜索和大模型的局限性。其核心流程包括文档处理、向量化、检索和生成四个环节,显著提升回答准确性并减少幻觉现象。 关键技术包括: 文档分块优化:针对不同类型文档设置合适的分块大小 混合检索策略:结合相似度阈值和MMR方法提升检索质量 提示工程:设计严谨的提示模板确保回答可靠性 答案可解释性:提供来源标注和相似度评分 性能优化可通过分块策略定制、多查询检索和重排序技术实现。典型应用场景涵盖企业知识库、法律合同审查和学术论文分析等领域
2025-05-31 19:40:47
765
原创 使用langchain配合ollama本地部署deepseek的模型
本文介绍了如何在本地部署和使用Ollama及DeepSeek模型。首先,从Ollama官网下载软件并更改安装路径,建议在C盘以外的盘创建文件夹存放安装包和模型。接着,通过命令行安装Ollama并设置默认模型路径。下载模型时,需根据电脑显存选择合适的模型大小,并通过命令行运行模型。启动Ollama后,可通过命令行进行模型管理。此外,文章还介绍了如何通过LangChain与本地大模型配合使用,包括启用Ollama端口、安装LangChain依赖以及接入模型进行对话。整个过程详细展示了从安装到使用的完整步骤,适合
2025-05-15 21:16:15
877
原创 LangChain 上手指南
LangChain通过“乐高式”组件将大语言模型、检索、工具调用和记忆等功能模块化,使个人开发者能在一周内构建出可落地的AI应用。自2022年10月开源以来,LangChain迅速成长,GitHub Star数突破10万,并获得了多轮融资,包括Benchmark的1000万美元种子轮和Sequoia的2500万美元A轮。LangChain的核心优势在于其生态活跃、Python/JS双SDK支持,以及LangServe+LangSmith的部署与监控能力。然而,其版本更新快、学习资料质量参差不齐等问题仍需改进
2025-05-15 14:20:05
947
原创 用 MediaPipe + OpenCV 实时识别手势数字 —— 从 0 到 5 的完整项目教程
该项目通过摄像头实时识别用户伸出的手指数量,并在画面中叠加显示对应的数字。核心技术基于MediaPipe Hands,通过检测手部的21个关键点,判断手指的张开与收拢状态,最终统计张开的手指数量。项目支持左右手同时识别,并能组合成两位数显示。开发环境要求Python 3.8+,依赖OpenCV和MediaPipe库。代码结构清晰,主要包括手部关键点检测、手指计数、摄像头画面渲染等模块。项目还提供了性能优化建议,如降低分辨率或使用GPU加速,并支持进阶功能扩展,如手势识别与硬件控制。
2025-05-10 12:05:41
1641
原创 【超详细教程】从零配置深度学习环境:Anaconda + PyCharm + CUDA + cuDNN
配置深度学习环境,CUDA,CUDNN
2025-04-16 00:30:42
1102
4
原创 PyTorch手动实现简化版BERT模型做C语言代码的漏洞检测
使用pytorch实现transformer,做一个简化版BERT,进行自动化代码漏洞检测
2025-04-13 20:55:16
819
1
原创 uniapp + socket + nodejs 实现实时通话
后端的实现新建一个文件夹,依次执行以下命令npm initnpm i express --savenpm i -g nodemonnpm i corsnpm i socket.io新建index.js 文件,写入以下代码const express = require('express')const app = express()app.use(require('cors')()) // 允许跨域请求app.use(express.json()) // 通过 express.j
2022-01-25 16:00:52
3936
2
原创 使用阿里云OSS云存储上传文件
使用阿里云OSS云存储上传文件进入到阿里云平台,进入控制台,点击对象存储OSS点击Bucket列表,再创建Bucket然后输入Bucket名称,选择地域 (地域最好是选择你所使用OSS存储的地方)。把读写权限设置为公共读,公共读表示谁都可以访问这样一个OSS存储就创建好了,接下来需要配置AccessKey,把鼠标悬浮在右上角的头像上,点击AccessKey管理然后就会弹出安全提示,让我们选择继续使用AccessKey,还是使用子用户AccessKey我先说说他们的区别:继续使用Ac
2022-01-21 19:06:31
1535
原创 uniCloud 未能获取当前用户信息和权限校验未通过
最近在使用uniapp云开发,请求数据的时候,会返回如下错误:未能获取当前用户信息:30205 | 当前用户为匿名身份权限校验未通过解决方式如下:先排查了dcloud账号,云空间关联,如果均未发现问题,最后看下 uniCloud-aliyun/database配置下的 permission 权限配置问题,这里需要根据需要设置增删改查 create/delete/update/read 的权限,看看是否符合你的数据的增删改查要求,然后右键上传。如果还没有解决,就看看是不是在前端页面代码中直接请
2022-01-19 16:59:46
9641
10
原创 uni-admin发布到阿里云前端网页托管后,登录报错 [uni-id-cf]:request:fail
uni-admin发布到阿里云前端网页托管后,登录报错 [uni-id-cf]:request:fail解决: 需要用自己的域名绑定,按照他的要求一步一步到你的域名服务空间(我的是阿里云)设置第一步: 先添加verification记录,验证通过了可获得CANME第二步: 添加CANME记录。注意: 主机记录添加WWW,只添加@会加载不出网站。建议两个都添加,详见图片...
2022-01-16 11:33:11
2429
1
原创 vue在父组件中改变子组件的样式
在父组件中改变子组件的某个样式,只需要添加 ::v-deep比如 ::v-deep .index { background-color: #fff } 就可以改变子组件的 .index样式
2021-06-08 17:42:29
336
原创 vue中出现Uncaught RangeError: Maximum call stack size exceeded
在vue中出现Uncaught RangeError: Maximum call stack size exceeded怎样解决发生错误的原因:在export default中name和components的属性值相同解决方法:1.把name属性删除2.name的属性值和components的属性值设置不同的名字...
2021-05-19 23:41:27
1934
1
原创 在webpack打包时,出现ReferenceError: document is not defined
ERROR in Template execution failed: ReferenceError: document is not defined错误信息会出现这样的原因主要是因为在index.html中多加了<script src="js/carousel.js"></script>这一行代码,把它删除问题就解决了我的目录结构: **注意:要把引用js的这一行代码删除,只是单单的注释可能还会出现类似的错误**出现这样的问题是出在plugin组件中使用 htm
2021-05-02 17:49:29
3134
2
原创 在vscode中点击open with live server 弹出http://127.0.0.1:5500/src/index.html 找不到应用程序
这个问题可能就是我们电脑设置默认的浏览器的问题了,打开电脑浏览器的默认设置看看此浏览器是否可以正常运行第一步打开window设置,点击应用然后点击默认应用最后点击浏览器,选择默认的浏览器即可这时就可以在vscode中点击open with live server就能正常运行浏览器了...
2021-04-02 23:15:27
4116
原创 如何在vscode中编写的html代码保存后即可在浏览器上刷新显示
首先需要在vscode中安装live server的插件然后在你的html页面点击右键,然后点击Open with live Server,即可弹出浏览器,当你保存html后浏览器自动刷新
2021-04-02 23:02:37
1973
原创 在javascript和typescript中的方法中Console.log(‘${this.name}在跑~~~~’);中的${this.name}被当做字符串进行解析了
这里应该用反引号console.log(${this.name}),这样就会正常输出了
2021-03-31 19:25:38
392
使用pytorch实现transformer,手搓一个简易bert,实现对代码漏洞检测的自动化
2025-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅