AI
AI Blog - github
现代激活函数从ReLU演进到GELU和Swish的核心逻辑,几个要点:
1、ReLU的问题是负区直接截断成0,零附近有硬折点,会制造"死区"。
2、GELU可以理解为"概率式软门",用标准正态分布的累积分布函数当门控比例,输入越正保留越多,越负保留越少,过渡连续。
3、Swish更直观,输入自己通过Sigmoid生成门控比例,实现自门控,负区也保留少量信息。
4、三者放在一起看:ReLU是硬开关,GELU和Swish是平滑旋钮,梯度随输入连续变化。
5、代价方面,平滑不等于更好,GELU和Swish要计算额外函数,成本高于ReLU。
6、架构选择上,Transformer、BERT、ViT常见GELU,高性能CNN常用Swish,MLP和轻量模型仍广泛用ReLU。
7、结论:没有绝对最优的激活函数,演进本质是在表达能力、梯度传播、平滑性和计算成本之间找折中,具体选哪个要看模型结构、训练目标和实验结果。
KVQ:
Q是一次性的,K和V是持久的,所以只缓存K和V。 具体拆开看:
每个新token生成时都会带一把崭新的Q,和历史所有K做匹配、读出对应V,算完这一步Q的使命就结束了,缓存它纯属浪费空间。
而K和V不一样,它们像知识库,要被后面每一个新Q反复查询,必须留着。
如果不缓存K和V,每生成一个token都得把历史全部重算一遍,计算量随上下文长度平方级爆炸;
缓存之后降到线性增长。本质就是用显存空间换计算时间。
最后延伸出一整条优化线:
MHA每个头独立K/V最准但最费显存,
MQA所有头共用一组K/V最省,
GQA分组共用是当下主流,
DeepSeek的MLA用低秩压缩把K/V压成潜向量。
它们的共同思路都是砍K/V的头数,因为Q不缓存,优化它没意义
满分答卷:卡帕西LLM Wiki的最佳实现
卡帕西的 LLM Wiki 这坑挖的真够深的,自己不给出实现,全靠社区用户自己手搓。看起来很美好,做起来一团糟。(我之前视频中做的skill也很初级)
但是YC总裁Garry Tan (陈嘉里),给出了满分答卷:GBrain。
GitHub 仓库garrytan/gbrain,上线一周多目前10.1k Stars
LLM Wiki V2核心解析:
1️⃣ **项目背景**
- 非Karpathy官方续作,由IBM工程师Rohit Ghumare(CNCF大使/谷歌云专家)基于原版LLM Wiki + agentmemory实践开发
- 解决原版核心缺陷:知识会过期(原假设"写进Wiki的内容长期有效"不成立)
2️⃣ **设计思路**
- 知识生命周期管理:时效性bug>6个月前的bug,12次验证模式>单次观察
- 动态知识单元:知识页≠静态Markdown,需携带状态/来源/时间/可信度
- 事实判断拆解:核心结论库记录「subject+conclusion+reasoning+confidence」
3️⃣ **架构升级**
- 状态层:YAML元数据管理(confidence/last_confirmed/superseded)
- 图谱层:typed graph替代普通双链(如「Claude Code uses MCP」)
- 检索层:混合搜索(BM25关键词+Vector语义+Graph关系+RRF融合排序)
- 自动化层:5大事件驱动(SessionStart/SourceAdded/PostToolUse等)
4️⃣ **创新突破**
- Crystallization机制:将调试/评测全过程沉淀为可复用知识(含错误案例/修复经...
-
安装Obsidian Skills只需三步:
先通过Obsidian社区插件市场搜索安装"obsidian-skills",或手动将技能文件放入库的.claude/skills目录;
接着在根目录创建CLAUDE.md声明集成规则;
最后用claude命令调用技能,比如"/obsidian-markdown 创建读书笔记"就能生成带双链和callout的专业笔记。
这个开源项目真正厉害的是让AI理解Obsidian的Canvas、Bases等原生能力,不再局限于普通markdown。
威斯康星大学麦迪逊分校Sebastian Raschka教授开源的"LLMs-from-scratch"项目,
包含100万行工业级大模型训练代码和配套教程,旨在让普通人也能从零开始构建自己的大语言模型