- 博客(35)
- 收藏
- 关注
原创 用 tokenizer 定位上下文被截断的位置
第三段从 11 到 17,浪费 1 到 7,最高 7,对应长度为 8 的那个词。最后一档的切开仍是 1,浪费是 5,安全切点是 31。8 个词是我写死的,长度也是字母数,不是 tiktoken 的 id。比例的拐点是词尾,浪费的尖峰在词尾的前一档。有 8 个字母,词尾 18,前一个词尾 10,中间有 7 档,浪费最高到 7。预算 4 到 7,安全切点停在 3,浪费从 1 增到 4,切开都是 1。预算 8 踩上词尾,切开变成 0,浪费回到 0,比例跳到 0.21052631578947367。
2026-11-10 09:19:16
224
原创 中文分词到底该不该上 jieba:我把单字、bigram、trigram 和词典分词跑了一遍
默认用字符 bigram,别急着上 jieba。在 BM25 这类词频检索器上,bigram 是四个方案里唯一没有明显短板的:检索效果和单字基本持平(Hit@3 0.917 vs 1.000 的差距只有一个查询,我认为是噪声,见第 8 节),特异性远好于单字(不至于一个字命中一半的块),没有 trigram 的稀疏塌方,也没有词典分词的边界雷。Lucene 的选这条路,我现在认为是对的。索引真的吃紧,才考虑词典分词,而且要配护栏。词表砍到 37% 是实打实的收益。
2026-11-10 09:17:12
165
原创 模型为什么总把数字读错
商用分词器按频率合并数字,边界落在哪,要看词表,不看十进制。我把那一层拿掉,改成固定组宽,才能把“少几个 token”和“位权错一位”分开。长度从 1 到 18,每个长度一个数,共 18 个。字符串是 1 再接一段固定的尾巴,避免开头是 0。组宽取 1、2、3、4、6。从左切,先拿满一组,尾巴留在最后。从右切,先保证末尾那组是满的,短的一组留在最高位。两种切法的段数一样,都是长度除以组宽向上取整。解码我故意只用一套:从左到右,每读一段就把当前值乘上 10 的组宽次方,再加上这段的整数。这套解码和从右切是对齐
2026-11-10 09:15:59
252
原创 给英文模型补中文词表的做法
给已经训过的嵌入补一批新词,常见做法是不要随机抽一个很大的向量,而是从旧行的均值出发,再加一点噪声。我用 32 行、8 维的旧嵌入来看这句话到底发生了什么。旧行的第 i 行第 j 列是正弦,。没有调用模型,也没有真的接一个英文词表。均值是 32 行逐维平均。新行等于均值加上尺度乘一个单位方向。四个新行用四个不同的方向。尺度从 0 扫到 4。我同时记新行的长度、坐标方差,以及第 0 个和第 1 个新行的余弦。旧行的平均长度和平均方差每一档都相同,因为旧行没有改。尺度 0 的新行长度是 0.0632004986
2026-11-09 16:33:04
210
原创 特殊 token 是怎么进词表的
我若改成次数相同就随机挑,token 数的后几档可能抖动,槽位等式还在,因为只要学满名额,槽位就仍是 16。特殊 token 从 0 到 9,token 数是 10、11、13、15、18、23、28、38、45、55。特殊 token 为 0 时,合并 12 条,token 数 10,槽位 16。特殊 token 为 9 时,合并只剩 3 条,token 数升到 55,槽位仍是 16。0 加 12,1 加 11,5 加 7,9 加 3,我都加过,和都是 12。越往后,少一条合并,token 数涨得越多。
2026-11-09 16:32:23
97
原创 词表大小怎么影响显存占用
词表变大,首先变大的是两张和词表等长的矩阵:嵌入,以及没绑在一起的输出层。我这次不讨论绑不绑。隐藏维是 64。权重元素是 2 乘词表乘 64。躯干我固定成 4 层、每层 12 个隐藏维平方,也就是 196608,不跟词表走。份额是这两张词表矩阵占“词表矩阵加躯干”的比例。句子那边我用一份真的字节级合并,不用对数去假装 token 会变少。训练语料是同一小段中文重复 6 遍。合并从 256 个字节开始,每次收走出现不少于 2 次的相邻一对,直到没有这样的对。学完的词表填到 373。保留句是“词表变大以后,嵌入
2026-11-09 16:31:32
125
原创 一份Token Plan套餐接通 codex和veryclaw:国产模型统一额度池实测指南
Standard 每月有 6,320,000 Credits,QPS 为 2,不同模型的扣减倍率也不一样,并不是无限用。套餐购买后不支持退款和降配。Token Plan 只限 OpenClaw 这类交互式智能体和编程工具使用,不能拿套餐 Key 跑自定义应用后端、自动化脚本或批量调用。。当前活动下,注册就送16-15的金币充值代金券+5元token plan无门槛代金券对我来说,一个月只管这一份额度,比同时盯着几家会员舒服多了。
2026-08-21 18:18:07
357
原创 报表账号没有直接授权,为什么还能 UPDATE?一次 KingbaseES 角色继承排查
元数据已经收敛,最后再以身份执行实际语句。查询订单导出表时,三行数据正常返回,说明只读访问没有被整改误伤。接着更新订单 2,它原本是PENDING,条件能够命中一行;这次失败来自数据库权限检查,不是WHERE条件没有找到数据,也不是客户端主动拦截。随后执行RESET ROLE恢复为system,会话身份也完成了收尾。检查的是表级能力,实际查询还会经过其他权限检查。访问至少需要 schema 的USAGE和表的SELECT;包含序列、函数或视图的业务 SQL,还可能依赖额外对象。本次同时持有 schema。
2026-08-05 15:05:25
16624
原创 cann-recipes-train解读:大模型训练的实践指南
之前聊过cann-recipes-infer,是推理相关的样例。今天要说的cann-recipes-train则是训练相关的。训练和推理虽然都用同样的模型,但技术挑战完全不同。训练涉及反向传播、梯度计算、优化器更新,还有分布式训练等问题。主流模型的训练代码分布式训练方案(数据并行、模型并行、流水线并行)优化技术应用(混合精度、梯度检查点等)对于想在NPU上训练大模型的同学,这是个很好的参考。
2026-02-07 00:14:01
7851
原创 driver驱动层解读:NPU能工作的幕后功臣
说到驱动程序,可能很多人觉得很底层、很神秘。确实,驱动是软件和硬件之间的桥梁,普通开发者很少直接接触。但理解驱动的基本概念,对于深入理解整个系统很有帮助。今天就来聊聊CANN生态中的driver项目。负责NPU硬件的控制和管理是所有上层软件工作的基础普通开发者通常不需要直接接触了解驱动的作用,有助于理解整个系统架构。
2026-02-07 00:13:19
7782
原创 graph-autofusion解读:让图优化更智能的自动融合技术
之前聊算子融合的时候提到,把多个算子合成一个可以减少访存开销。但手动写融合规则很麻烦——要了解哪些可以融合、怎么融合、融合后代码怎么写。graph-autofusion就是做自动融合的。顾名思义,auto是自动,fusion是融合。让机器自动帮你做算子融合。先回顾一下。x = inputz = y * 2w = z + 1不融合的话,每一步都要:读内存 → 计算 → 写内存fill:#333;important;important;fill:none;color:#333;color:#333;
2026-02-07 00:12:27
8172
原创 triton-inference-server-ge-backend解读:让GE成为Triton的后端
Triton Inference Server是NVIDIA开源的推理服务框架,在业界用得很广。它提供了统一的API、动态批处理、模型版本管理等企业级功能。问题是,Triton原本主要面向NVIDIA GPU。想在华为NPU上用怎么办?这就是triton-inference-server-ge-backend的作用——让Triton可以使用GE(图引擎)作为后端,从而支持NPU。让NPU融入Triton生态保持Triton的易用性支持企业级部署需求。
2026-02-07 00:11:39
7515
原创 oam-tools运维工具集初探:NPU集群管理利器
在生产环境中,NPU不是一两张卡,可能是几十上百张。这么多设备怎么管理?怎么监控?出问题了怎么排查?这就需要运维工具。oam-tools就是CANN提供的运维管理工具集。OAM是Operations, Administration and Maintenance的缩写。npu-smi:设备信息查看健康检查固件管理日志收集对于管理NPU集群的运维人员,这是必备工具。
2026-02-07 00:10:28
7291
原创 HCOMM通信库入门:让多卡协作变得简单
最近在研究大模型训练的时候,遇到一个问题——单卡放不下模型,必须用多卡。这就涉及到一个核心问题:多张卡之间怎么通信?翻了翻CANN的仓库,发现有个叫hcomm的项目,全称是Huawei Communication。顾名思义,这是华为提供的通信基础库。今天就来聊聊这个项目,看看它是怎么解决多卡通信问题的。通信域的管理通信资源的分配和管理为上层HCCL提供底层支持对于普通开发者来说,可能不需要直接使用HCOMM。
2026-02-06 20:27:42
7438
原创 Tensor操作基础:理解张量在NPU中的运作
在深度学习中,Tensor(张量)是最核心的数据结构。理解Tensor在NPU中如何存储、如何操作,是写好CANN算子的关键。昇腾CANN训练营提供系统化的Tensor操作课程,从基础到进阶,手把手教你掌握昇腾NPU上的Tensor编程技巧!我刚开始时,总搞不清楚Tensor的shape、stride、layout这些概念。后来通过大量实践,才真正理解Tensor在内存中的排布方式。今天就系统讲解Tensor的方方面面。# 0维Tensor (标量)# 1维Tensor (向量)
2025-10-26 21:39:51
4353
原创 CANN数据类型与内存管理入门
写完第一个算子后,我发现自己对数据类型和内存管理还是一知半解。什么时候用FP16,什么时候用FP32?Global Memory和Unified Buffer到底有什么区别?内存对齐是怎么回事?这些问题直到我踩了几次坑,才慢慢理解。让我们先看看CANN的整体架构:从官方架构图可以看到,CANN的异构计算架构包含多层内存层次和不同的数据类型支持。今天就来系统梳理CANN的数据类型和内存管理,这是写高性能算子的基础!数据类型FP16:推理首选,速度快BF16:训练友好,范围大FP32:高精度计算。
2025-10-26 21:38:07
4591
原创 开发工具链介绍:从编译到调试
本文介绍了昇腾CANN训练营提供的AI开发工具链,重点讲解了编译器、算子分析工具和性能分析工具的使用方法,帮助开发者提升算子开发效率。
2025-10-25 18:29:27
4904
原创 CANN算子开发核心概念全解析
学了Ascend C的语法,能看懂代码了,但写起算子来还是云里雾里。什么是Tiling?为什么要分块处理?Kernel函数到底是怎么运行的?这些问题困扰了我好几天。直到在训练营听老师系统讲解,并且自己动手实践了几个算子,才真正理解这些概念。今天就把这些核心概念梳理清楚,相信能帮大家少走不少弯路。算子(Operator)就是神经网络中的一个计算单元。
2025-10-24 12:19:26
9577
原创 Ascend C编程语言快速上手
本文介绍了华为昇腾NPU专用编程语言Ascend C的核心概念。Ascend C基于C++14标准,添加了NPU专用API和向量化扩展,主要用于高性能算子开发。
2025-10-24 12:17:26
10431
原创 搭建第一个CANN开发环境:避坑指南
说到环境搭建,我第一次装CANN的时候真的是踩了一堆坑。从下载安装包找了半天,到装完发现版本不对,再到环境变量配错导致找不到库文件…整整折腾了两天才搞定。后来在训练营老师的指导下,我重新梳理了整个流程,现在10分钟就能装好。今天就把这些经验分享给大家,让你们少走弯路。
2025-10-23 11:26:02
14232
原创 CANN是什么?从零开始理解昇腾AI计算架构
说实话,刚开始接触CANN的时候,我一脸懵。什么是CANN?和CUDA有啥区别?为啥要学这个?这些问题在我脑子里转了好几天。后来跟着训练营一步步学下来,慢慢理解了CANN的价值和定位。今天我把这些学习心得整理出来,希望能帮到和我一样从零开始的同学。这是我们训练营的核心内容。当现有算子库不能满足需求时,可以用Ascend C开发自己的算子。某个特殊的激活函数定制化的attention机制特定领域的数据处理算子它并没有想象中那么难。只要跟着系统的课程(比如训练营)一步步来,很快就能上手。
2025-10-23 11:24:35
11129
原创 日志内存过高、磁盘占用过大排查解决
真实案例,出现日志占用服务器磁盘过大,占用内存过高排查解决(这里仅对于我的菜鸡服务器来说2c2g的)贴个图看下,内存已到了13.6,日志文件很大。
2025-02-15 09:37:48
4720
原创 全面解读 Netty 中的 ByteBuf:高效内存管理与常用操作
Netty 是一个高性能的网络框架,在网络通信中,ByteBuf 是其核心组件之一,负责高效处理数据的读写和内存管理。与传统的 ByteBuffer 相比,Netty 的 ByteBuf 提供了更多灵活性和更高效的内存操作方式。本文将详细介绍 Netty 中 ByteBuf 的常用方法,如何高效地使用 ByteBuf 来优化网络数据的读写操作,并解决一些常见的性能问题。
2025-02-15 09:37:10
4767
原创 你的Kafka连不上、Topic创建不了?可能是这些参数没设置对!
你的Kafka连不上、Topic创建不了?可能是这些参数没设置对!Kafka作为一种分布式流处理平台,其配置选项非常多,尤其是在网络通信方面。`listeners`、`advertised.listeners`、`listener.security.protocol.map`、`inter.broker.listener.name`这四个配置项是Kafka中非常重要的网络配置,它们控制着Kafka集群如何与外部应用进行通信以及集群内部如何互相通信。理解这些配置项的关联性、使用场景和重要性,对于确保Kafk
2025-02-15 09:36:35
5048
原创 居然还有人不懂强引用、弱引用与软引用
在Java中,内存管理是一个关键但复杂的话题。强引用、弱引用、软引用作为Java引用机制的重要组成部分,影响着对象的生命周期和内存的有效利用。这篇文章将深入探讨这三种引用类型的特点及其在实际应用中的场景,帮助开发者更好地优化内存使用并提升应用性能。
2025-02-15 09:35:56
4515
原创 领导让我把内网服务器的mysql暴露到另一台服务器,我懵了
上面提到的都是一些常规操作,当然实现方案还是挺多的,并且单纯的将mysql暴露到公网还是不太合理的,下面给大家说一下更好的方案。上面可以看出不可以使用https或http进行简单的反代,但是可以借助nginx中的stream模块来实现。(前提是你的端口可达,且mysql允许所有ip进行连接,或者允许你指定的这个外网端口连接)首先通外网的服务器是完全可以访问内网中的mysql的,所以就是一个反向代理的事情?默认情况下nginx是不自带stream模块的,高版本的没了解(可能会有):MySQL 自定义协议。
2025-02-15 09:35:10
3951
原创 这样的接口幂等实现我认为最为优雅(防重复提交)
在现代软件开发中,接口幂等性是确保系统稳定和可靠的重要设计原则之一。本文将详细探讨接口幂等性的概念、实现方法及其在实际应用中的重要性。我们将从基本概念入手,解释什么是幂等性,为什么它对接口设计至关重要,并通过具体实例和最佳实践,帮助开发者实现真正的幂等接口,避免因重复提交而导致的数据异常和系统错误。
2025-02-15 09:34:45
4505
原创 阿里云视频直播详解
视频直播(ApsaraVideo Live)是阿里云基于领先的内容接入与分发网络和大规模分布式实时视频处理技术(含窄带高清TM)打造的音视频直播平台,提供易接入、低延迟、高并发、高清流畅的音视频直播服务。总台可以通过视频直播控制台、API 和 SDK 使用、管理视频直播服务,同时也可以与总台自有的应用和服务集成。
2025-02-14 10:10:52
11073
1
原创 阿里云CDN增值服务能力详解
阿里云CDN近期新增了HTTPS加速和IPv6协议加速两项增值服务,进一步提升了内容分发的安全性、兼容性与灵活性。其中,HTTPS加速通过双证书方案实现CDN节点与源站证书分离,形成双重保障,降低私钥泄露带来的单点风险,并通过SNI技术解决IP资源紧张场景下多域名HTTPS握手问题;同时,HTTPS keyless方案支持客户仅将公钥部署至CDN,私钥仍保留在本地服务器,从而兼顾安全合规与加速性能。
2025-02-14 10:10:37
10974
原创 mysql事务与隔离
隔离性(Isolation):MySQL 支持多个并发事务的执行,每个事务都应该相互隔离。这意味着一个事务的执行不应该影响其他事务的执行。持久性(Durability):事务提交后,其所做的更改应该永久保存到数据库中,并且在系统崩溃或故障后仍然可用。一致性(Consistency):事务执行后,数据库的状态应该符合预期的结果。原子性(Atomicity):一个事务中的所有操作要么全部执行,要么全部回滚。COMMIT:提交一个事务,将所有的更改保存到数据库中。ROLLBACK:回滚一个事务,撤销所有的更改。
2025-02-14 10:01:04
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅