- 博客(28)
- 收藏
- 关注
原创 先区分两个概念:多头和多层
reshape 负责把“混在一起的 head 维度”重新分组,让程序知道哪一段属于哪个 head。把原来连在一起的 hidden_size 维向量,拆成 num_heads × head_dim,让每个 head 拿到属于自己的那一段 Q/K/V。第 1 层的 Head 1 和第 20 层的 Head 1 不是同一个 head。Multi-Head Attention:同一层里,多个 attention head 并行看上下文。Head 1: Q1, K1, V1,shape 都是 [3, 4]
2026-07-09 15:34:00
198
原创 形式化方法:Java并发bug的“数学克星“
想象一下,如果你在写Java的分布式锁、订单状态机、或者线程池调度逻辑时,能在编码前就用数学证明没有死锁、没有竞态条件,那还要什么synchronized的盲目试错?现在才明白,当你能用用例图、类图、时序图清晰表达"系统里有什么对象、它们如何交互",你就掌握了Java面向对象的本质。写Java的都知道,并发编程是噩梦。在Java多线程的混沌世界里,线程调度、内存可见性、指令重排序的组合是天文数字,人脑根本穷举不完。这就是形式化方法的魅力——把"人脑穷举"变成"机器自动证明"。自顶向下逐层细化,像剥洋葱。
2026-07-09 15:33:04
158
原创 让你的电脑自动帮你干活。
软件的主题会跟随你电脑的系统主题自动切换。在坐标 960,540 双击打开桌面图标,等 3 秒,输入 admin 按 Tab,输入密码 123456 按回车"所有操作都是节点 —— 鼠标点击、键盘输入、找图、等待、循环、条件判断……从左侧拖到画布,连线就行。按 F7 开始录制,手动操作一遍,软件自动记录鼠标点击、键盘输入,生成可复用的工作流。具体的AI生成动图可以看这个文章,本文章不支持动图和视频。逐节点暂停/继续/跳过,断点试运行,方便排查问题。不用写一行代码,流程一目了然。录一次,跑 N 次。
2026-07-08 14:33:55
213
原创 DDD 与 Ontology 对比分析:代码建模与语义建模的异同
DDD 在单系统内部的业务规则表达力上是冠军;Ontology 在跨系统的语义统一、权限、审计、关系网络与 AI 协作上是冠军。
2026-07-08 14:33:09
211
原创 AI是如何理解和生成代码的?
智能体(Agent)是一个能够自主完成任务的AI系统。智能体的工作循环是感知(读取项目代码、理解需求) → 推理(分析问题,制定计划) → 行动 (修改文件、运行命令、安装依赖)→ 反馈(检查结果、发现新问题)Claude Code 就是一个典型的编程智能体 —— 你告诉它"帮我添加一个用户注册功能",它会自己读懂项目代码,自己创建文件,自己写代码并运行测试。参数量:模型的"大脑"大小你可能听说过"7B模型"、"70B模型"这样的说法。这里的 B 是 Billion(十亿)的缩写,指的是模型的参数数量。
2026-07-07 21:57:41
144
原创 【Agentic RL / 强化学习框架】Miles 项目技术分析---(2)--- 关键技术
的本质是一个适配器模式——它将"Agent 多轮交互"(业务关注点)与"RL 训练数据生产"(基础设施关注点)完全解耦。这条解耦线画在了generate()函数上。线以上是 Agent 开发者的世界——OpenAI API、工具调用、业务逻辑。线以下是 RL 基础设施的世界——Session Server、TITO、token 对齐、loss mask、异常降级。Agent 开发者不需要知道线以下的存在,框架也不需要知道 Agent 在做什么业务。这正是好的抽象应该达到的效果。
2026-07-07 21:56:48
193
原创 一行代码抓遍全网 20 个热榜!Aneiang.Pa 4.0 发布 — 极简 .NET 爬虫库
打包成 Docker 镜像,一台服务器就能给你的所有项目提供热榜 API。于是有了 Aneiang.Pa 4.0。想抓 Hacker News?
2026-07-06 19:38:48
193
原创 痛点问题 + 共鸣案例
说白了,就是教你用 Python 的 pystardict 库读取本地的 StarDict 词典,再用 FastAPI 封装成一个 HTTP API,从此告别“渣翻”,实现自家词库的精准查询。你可能会问:都 2026 年了,为啥不直接调大模型?很简单——成本、速度、隐私。一个本地词典 API,请求在 1ms 内返回,零费用,还不用担心数据发到外面,不香吗?👩💻我是爱折腾的一名程序媛,喜欢研究全栈开发的各种实践,热爱分享踩坑后的收获与思考,也享受用代码写出各种实用小工具解决问题的快乐。
2026-07-06 19:38:15
171
原创 【机器人 / 强化学习】HIL-SERL 工程篇:人类在环的工程架构与物理设计
(无限循环,不受主线程控制):SpaceMouseExpert(硬件驱动必须持续轮询,否则丢失输入事件)、VideoCapture(相机帧率 30fps,必须持续读取避免帧堆积)、BroadcastClient(随时可能收到 Learner 参数,必须持续监听)、ReqRep Server(随时可能收到 Actor 数据,必须持续监听)、Robot Server 各进程(机器人控制器必须持续运行,保证安全)。HIL-SERL 最核心的机制是人类纠偏,"干预即负反馈"——将"挨骂"转化为进化的动力。
2026-07-05 20:37:40
202
原创 Layer 2:工作流执行引擎——ComfyUI 的核心逻辑,Rust 实现
执行引擎的异步运行时基于 Tokio,充分利用 Rust 的无 GIL 原生并发特性,多个节点可以真正并行执行——这是 Python 版 ComfyUI 的 asyncio 无法做到的。
2026-07-05 20:36:20
272
原创 DockPanel
Grid></Grid>第一种,固定长度——宽度不够,会裁剪,不好用。单位pixel。第二种,自动长度——自动匹配列中最长元素的宽度。第三种,比例长度——*表示占用剩余的全部宽度;两行都是*,将平分剩余宽度;像上面的一个2*,一个*,表示前者2/3宽度。
2026-07-04 19:38:12
239
原创 我初次接触Windows Media Center是几个月之前在一个朋友家里
他是一个电子娱乐玩家,家里有好几台游戏机,什么WII,PS3和Xbox360一应俱全,我想有什么好玩的东西使得他那么感兴趣。他把我带到电视前,拿着遥控器演示了他新安装的Windows Media Center。说实在,我当时是很惊讶的,惊讶的是微软做的比我想象的要好。近年来微软提倡“三屏一云”策略。所谓“三屏”就是电脑屏,电视屏和手机屏。由于我一直关注Windows Mobile和Windows Phone的发展,我对手机屏和云还是略知一二。但是作为三屏之一的主角电视屏还是那时候才第一次见到。
2026-07-04 19:37:38
178
原创 细说 HttpHandler 的映射过程
请注意 new HandlerFactoryCache(mapping) 这行代码,这可不是简单地创建一个缓存对象,具体实现代码如下:代码中,我加入的注释已经回答了前面提出的问题:如果是一个IHttpHandler对象,ASP.NET会再创建一个HandlerFactoryWrapper对象来包装IHttpHandler对象, 如果是IHttpHandlerFactory对象,则直接返回。我们再来看一下HandlerFactoryWrapper的实现代码:
2026-07-03 21:19:55
169
原创 Fiddler中创建AutoResponder规则
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。看个实例. 1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif, 把这个会话拖到AutoResponer Tab下。
2026-07-03 21:18:54
236
原创 C/C++与Java混合的JNI编程
Java是一种高级编程语言,也是一个计算平台(通常指Java虚拟机)。最初由Sun Microsystems公司(后被Oracle收购)的James Gosling和他的团队在1995年发布。Java语言的设计目标是简单性、健壮性和跨平台兼容性。Java是一种面向对象的语言,这意味着它基于对象和类的概念。对象代表现实世界中的实体或概念,而类是创建对象的模板。Java的一个核心特性是“一次编写,到处运行”(,WORA)。
2026-07-01 21:51:47
246
原创 signalfd & 完美退出
用来做做演示没问题,但是要用来开发项目就不行了,本着做出工业级强度代码的使命感,下面对它进行一番改造,看看能否实现完美退出。析构除了增加信号句柄的关闭,还增加了挂起协程的销毁,如果调度器的生命周期与进程不一致时 (多次初始化与销毁调度器),这就比较关键了,可以防止协程泄漏。* 建立一个进程内的 pipe 通道,注册到 epoll,在检测到 SIGINT 事件时写入一字节以唤醒 epoll_wait 并退出。下面这句是关键,如果不屏蔽默认的信号处理方式,默认的信号处理器会让进程退出,epoll 就没机会啦。
2026-07-01 21:51:10
233
原创 基于 Word 模板占位符的动态文档生成技术
Apache POI 在读取 Word 文档时,会将文本按格式(字体、颜色、加粗等)拆分成多个 XWPFRun。方案 A:合并段落所有文本,整体替换(简单但会丢失格式,不推荐,会破坏原有样式)当前逻辑只处理单个 Run,无法处理被拆分的占位符。即使内容是 ZIP 结构,也必须声明为 Word 的 MIME 类型!方案 B:使用递归或缓冲区拼接 Run(复杂),但对大多数项目来说,,确认它在一个 Run 里(比如全选后统一加粗),再替换成。)可能是一次性输入的,所以在一个。:如果替换失败,可临时打印。
2026-06-30 21:31:51
229
原创 使用 Word 模板占位符生成文档的技术方案实践
Word 模板占位符是指在.docx文档中预先定义的特殊标记(如${NO}${CPMC}),用于标识将来会被动态数据替换的位置。开发时,程序读取该模板,将占位符替换为实际业务数据,最终输出完整的 Word 文档。✅解耦设计:文档格式与业务逻辑分离,前端/产品可直接编辑模板。✅高效迭代:调整样式无需重新部署应用。✅所见即所得:模板即最终效果,降低沟通成本。✅支持复杂结构:天然支持 Word 的表格、页眉页脚、样式等。✅易于国际化:只需提供不同语言的模板文件。
2026-06-30 21:31:00
215
原创 更新int count变量,fill()函数中getInIfOpen().read(buffer, pos, buffer.length - pos)这行代码的返回值为8192,
执行getBufIfOpen()[pos++] & 0xff,从缓冲区(byte[]数组)中获取第pos(此时pos=0)个索引位置的字节,返回给BufferedInputStream.class::read()函数的调用方,并更新pos的值为pos+=1;之后,每次调用BufferedInputStream.class::read()函数时,都不会再执行fill()函数了,并且当pos=4096时,执行了bis.mark(8192),设置marklimit=8192,markpos=pos=4096。
2026-06-29 20:53:33
182
原创 BufferedInputStream 源码——带有缓冲区的装饰器类 BufferedInputStream.class 的UML关系图,如下所示:
BufferedInputStream.class 的UML关系图,如下所示: BufferedInputStream.class的源码,如下所示:
2026-06-29 20:53:03
173
原创 从MNIST手写数字迁移到EMNIST手写字母的识别之路
深度学习框架上面的代码中,首先定义了模型的组件结构,其次forward是模型的流程结构。这是一个经典的“特征提取分类器”双阶段结构,分为两个阶段。第一阶段:特征提取(卷积神经网络),负责把像素变成“语义特征”。卷积层 1(Conv1):初级特征提取(边缘、线条)in_channels=1 : 输入是灰度图(1个通道)out_channels=32: 派出32个不同的“侦探”(滤波器)kernel_size=3 : 每个侦探拿3x3的放大镜stride=1 : 每次移动1个像素。
2026-06-28 20:24:35
243
原创 你被身份验证折磨过吗?
工具的选择上,我认为顺手的才是最好的。既然选了 SQLAlchemy,咱们就用加的组合。pass# 可以加自定义字段,比如 nickname。
2026-06-27 22:32:04
229
原创 大规模元数据操作优化:批量删除、克隆与 Redis 缓存全解析
在 AI 训练、数据集管理等大规模文件访问场景中,随着文件数量和访问并发增加,元数据层往往更早成为性能瓶颈。无论是删除百万级小文件、克隆大规模数据集,还是高并发目录遍历,元数据引擎的响应能力都会直接影响上层业务效率。
2026-06-27 22:31:14
253
原创 基础(四):强化学习入门-从斯金纳箱到大模型推理
强化学习(Reinforcement Learning, RL):让智能体通过与环境交互和"试错",学习最优决策策略以最大化长期累积奖励。类比强化学习就像训练宠物:它做对了给奖励(零食),做错了不给奖励。慢慢地,它就学会做正确的事情。Q-Learning是强化学习最经典的入门算法,1989年由Watkins提出。核心思想:建立一个"Q表",记录每个状态-动作组合的价值。Richard Sutton说:"强化学习的本质是从经验中学习,这是最自然的学习方式。不是被告知答案,而是通过尝试和反馈,自己学会怎么做。
2026-06-24 21:53:46
219
原创 京东二面:假如SQL中join了10张表,如何优化性能?
若驱动表有10万行,每张关联表索引扫描成本为1ms,10张表总成本 = 10万 × (10 × 1ms) = 1000秒。当10张表关联只是为了展示一个列表,且数据量不是天文数字时,可以在Java代码中分批查询,再用Stream合并。(MySQL 8.0.18引入)且所有关联条件都能用上索引,性能会大幅提升,但仍受限于内存和构建哈希表的开销。:从第一张表(驱动表)取出一行,然后循环去下一张表匹配;:订单表1000万行,用户黑名单表只有100行。,逐级给出具体解决方案,每一种都配完整的示例代码。
2026-06-24 21:52:57
222
原创 深度学习进阶(七)Data-efficient Image Transformer
要理解来说,其实还是和 Teacher 本身的蒸馏意义相关:而在于通过 Teacher 的预测结果,引导 Student 在优化过程中靠近一个“更合理的决策边界”,从而提升训练稳定性。比如真实标签是“狼”,但 Teacher 预测结果是“狐狸”,这样就可以让模型在“语义接近类别”之间间接引导模型学习更合理的决策边界。不过,在 Transformer 之前,蒸馏技术就已经出现,如果只是在 ViT 中加入蒸馏技术,本质上只是 A+B 的工作罢了。显然,相比硬蒸馏,这种方式包含更多信息,在现代使用中也更主流。
2026-06-23 22:52:39
229
原创 直观感受 metadata
Any的metadata定义为:上面的定义准确的说,是Any的。定义中的是一个C++结构体,定义为:...其中模版参数。我们手动代入后,的完整定义为:...从上面代码可以看到,是多重继承。一部分继承自。一部分继承。要想弄清楚,首先得看下的定义:从代码上可以看到,实际上是。接着看的定义:...public:...从代码里可以看到,同样是多重继承。一部分继承自。一部分继承自。
2026-06-23 22:50:34
227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅