106篇文章 · 370719字 · 1235分钟阅读

DeepSeek新出的DSpark,不是让模型更聪明,而是让它说话更快

这两天看到 DeepSeek 又冒出来一个新词:DSpark。 第一眼看上去,很容易以为它又发布了一个新模型。毕竟现在大模型圈子里,只要名字后面多几个字母,大家就会本能地想:是不是能力又上去了?是不是推理更强了?是不是又要重新排榜了? 但 DSpark 这事,最好不要这么理解,它不是一个新大脑,它更像是 DeepSeek 给模型换了一种更快的说话方式。 简单说,DSpark 解决的不是“DeepSeek 会不会回答”,而是“DeepSeek 能不能更快把答案吐出来”。 这两个问题不一样:一个是能力问题,一个是效率问题。 大模型为什么总是一点点往外蹦字? 我们平时用大模型,最直观的感觉就是:它不是一下子把整篇回答发给你,而是一行一行慢慢出来。 有时候看着还挺像一个人在打字。 但这不是界面故意做出来的打字机效果,而是大模型本来就这么工作。 大模型生成内容,不是先在脑子里写好一整篇文章,然后复制粘贴出来。它更像是在不断猜下一个字、下一个词、下一个 token。 前面说了什么,决定后面最可能说什么。 大模型如何一个 token 一个 token 生成文本⁠ 所以它的工作方式大概是:先预测下一个 token,再根据这个 token,预测再下一个 token,再继续往后预测。 一路这么走下去,最后才变成我们看到的一段回答。 这里的 token 不需要理解得太复杂。可以粗略当成 AI 处理文字的基本颗粒。中文里可能接近一个字,也可能是一个词的一部分;英文里可能是一个单词,也可能是单词的一部分。 关键不在 token 的精确定义,而在它的生成方式: 大模型原来基本是一个颗粒一个颗粒往外吐。 这就像一个人说话,每说一个字都要停下来想一下。 能说,但慢。 DSpark 在中间加了一个“小助手” DSpark 的思路,可以用一个很土但很容易懂的比喻来讲。 原来的大模型,像一个很谨慎的老师。 每写一个字,都要自己想、自己判断、自己落笔。 DSpark 相当于给这个老师配了一个学生。 学生写草稿,老师快速批改⁠ 学生先写一小段草稿,老师再快速批改: 这几个字对,保留。 这个词不对,改掉。 后面这一小段可以直接用。 这里猜错了,退回来重新写。 如果学生猜得准,老师就省事了。 老师不用从空白纸开始一个字一个字写,而是可以在草稿上快速确认。 这就是所谓的“推测解码”。 听起来挺技术,其实就是四个字: 先猜,再验。 小模型或者草稿模块先把后面可能出现的 token 猜出来,主模型再来验证。猜对了,就一口气通过;猜错了,再回头修正。 所以 DSpark 不是让小模型代替大模型,也不是降低标准凑速度。 ...

12个本地模型,同一份提示词,谁能扛住24GB的内存墙?

12个本地模型,同一份提示词,谁能扛住24GB的内存墙? 一句话背景:用一份「七板块结构化读书笔记」的硬 prompt,喂同一本书(Dan Koe《目的与利润 / Purpose & Profit》中英对照 PDF,正文约 3.1 万 token),把手头 12 个本地模型挨个拷打一遍。MLX(Metal GPU 推理)和 LM Studio 标准两条路线都上。结论先放这儿:在本地跑大模型,量化等级和那道 ~20GB 的内存墙,比「参数量」和「架构」更能决定你最终能用上谁。 这不是一次只看输出是否流畅的测试。我还把模型给出的“原文锚点”逐条回到原书核对,看它到底是在引用、转述,还是编造。 测试任务很简单,严格按七个板块输出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 你是一位专业的非虚构书籍编辑和读书笔记作者。下面会给你一本书的完整内容(或节选)。请严格依据原文进行总结,完成结构化输出。 【硬性要求】 1. 只能依据所给文本。不得编造原文没有的观点、数据、人名、案例、术语。若某一项在文本中找不到依据,明确写"原文未提及",不要猜测、不要用常识补全。 2. 严格按下面的板块标题和顺序输出,不增删板块,不写开场白或结束语。 3. 简练优先,遵守每个板块的字数/条数限制。冗长堆砌、空话套话视为低质量。 4. 全程使用简体中文。 【输出结构】 一、一句话总结(≤40字) 用一句话概括全书最核心的主张(不是主题词,是主张)。 二、核心论点(3–5条,每条≤2句) 提炼作者真正想论证的观点,而非泛泛的话题。 三、章节脉络(逐章,每章1–2句) 按原文章节顺序,逐章概括:这一章讲了什么、与全书主线的关系。 四、关键概念 / 方法论(3–6个) 列出书中提出的核心概念、框架或可操作方法,每个用一句话解释。作者自创的术语保留其原始表述。 五、原文锚点(2–4处) 精确转述能支撑上述论点的原文要点,并注明大致出处(第几章)。此板块用于核对是否忠于原文。 六、给读者的可执行建议(3–5条) 基于全书,提炼读完后能立刻行动的具体建议。 七、本次总结的盲区(≤3条) 诚实指出:受文本长度或上下文限制,哪些内容你可能没有充分覆盖或根本没读到。 【全书内容】上传的PDF就是全文内容。 一、谁活下来了:运行结果总览 12 个模型里,6 个连门都没进(加载即失败),6 个跑出了结果——其中 5 个老实按格式来,1 个(qwen3-32b-mlx)跑是跑了,但完全没理会格式要求。 ...

本地模型别只看总参数:稠密和稀疏差别很大

在众多模型中找适合自己的模型时,会看到类似Qwen3-32B 和 Qwen3-30B-A3B名字很相似的模型名称,一个带“A”,一个不带。参数量看着差不多,到底差在哪? 这两个字母背后,藏着本地部署里最重要的一条分界线。搞懂它,你才知道自己那台机器该喂什么、该买什么。这篇就把它从头讲透,最后落到一个很实际的问题上:不同的一人公司,到底该怎么选本地模型。 一、一句话区别:处理一个字时,到底激活了多少参数 先建立一个直觉。你可以把一个大模型想象成一家公司,公司里有一大群员工——每个员工就是一个「参数」(实际上是几十亿、上千亿个数字)——这个比喻不严谨,但足够帮我们理解后面的选择逻辑。 所谓「32B 模型」,B 是 billion(十亿),就是这家公司有 320 亿名员工。 模型「思考」的过程,是把你输入的文字拆成一个个小单位(叫 token,大致是「字」或「词的一部分」),然后让员工对每个 token 算一轮,吐出下一个字。 稀疏和稠密的区别,不看公司一共多少人,只看处理一个字时,实际有多少人在干活。 稠密(dense):每来一个字,全部员工都上工。激活参数 = 总参数。 稀疏(MoE,混合专家):每来一个字,只叫醒一小撮人,其余继续睡觉。激活参数 ≪ 总参数。 学名叫「激活稀疏性」或「条件计算」。一句话:总参数决定它知道多少,激活参数决定它每个字算得多快、多贵。 二、稠密:全来一个字,全公司加班 传统模型是稠密的。规矩很简单粗暴:每处理一个 token,320 亿员工一个不落,全部上工。 好处是简单、稳定、质量扎实;坏处是贵。员工越多,处理每个字越慢、越耗电、越吃内存。你想让它更聪明(加更多员工),处理每个字的成本就线性地往上涨,逃不掉。 三、稀疏 MoE:路由器翻牌子,只叫醒几个专家 后来人们想了个偷懒的办法,这就是 MoE。 它把公司里干重活的那个部门(技术上叫 FFN 层)拆成了一群专家,比如 64 个、128 个,各有所长。然后在专家前面安排了一个前台调度员,叫「路由器」(router)。 每来一个 token,路由器先瞄一眼:「这个字大概讲代码,叫醒 2 号和 47 号就够了。」于是只有被点名的那几个专家干活,其余几十个继续睡觉,完全不参与这个字的计算。下一个字来了,路由器可能又翻别的牌子。 这个「每次只激活一小撮」的特性,就是「稀疏」这个名字的来历。 稠密与 MoE 两种前向传播对比 上图左边是稠密——每来一个 token,全部参数(亮的)都参与;右边是 MoE——路由器翻牌子,只有 2 个专家被叫醒,其余 4 个灰着不计算。颜色就是全部信息量:亮 = 真的在算,灰 = 睡觉不耗算力。 四、怎么一眼认出来?看名字里那个大写 A 这是最实用的技巧。模型名字里的「A」就是 Activated(激活): Qwen3-32B:没有 A,稠密,320 亿员工全部上工。 Qwen3-30B-A3B:有 A,MoE,总共 300 亿,但每个字只激活 30 亿(A3B)。 Qwen3-235B-A22B:总 2350 亿,每个字只动用 220 亿。 在 Qwen 这类命名里,A 基本可以理解为 Activated,也就是每 token 激活参数量。看到 30B-A3B、235B-A22B,大概率就是 MoE。没有 A 的 Qwen3-32B,则是 dense。命名规则直接把答案写在脸上了。 ...

别再被的模型名劝退了(下):你的电脑能跑多大,又该怎么选

这是下篇,来看看内存占用速查表、质量优先的选型心法,以及把 Qwen3-32B 跑通的全流程实操。 上篇我们把名字和原理讲透了——模型名怎么拆、量化是什么、为什么 Mac 适合跑大模型。这篇直接上硬货,回答三个最实际的问题:能跑多大、该选哪个、怎么跑通。 下面所有结论,我都以一台 MacBook Pro M4 Pro、24GB 统一内存、273GB/s 带宽为例。你可以按自己机器的内存和带宽对号入座。 一、你这台 Mac 到底能跑多大? 先解决一个默认的坑 macOS 默认只允许大约 16GB 内存分给 GPU(Metal),哪怕你有 24GB。所以很多人第一反应“我 24GB 怎么连个 27B 都加载失败”,原因就在这。 解决办法是手动抬高上限(具体命令放在第三部分实操里)。抬高之后,在“机器专用、关掉浏览器和其他重应用”的状态下,真正能用于“权重 + KV cache + 运行时开销”的预算大约 20~21GB。 24GB 统一内存并不是全部都能给模型用 内存占用速查表 公式还是上篇那个:权重 ≈ 参数量 × bpw ÷ 8。下表是各规模、各量化档位下,仅权重的占用(GB)。KV cache 和运行时开销要另外再加约 1.5~3GB(取决于上下文长度)。 规模 IQ4_XS Q4_K_M Q5_K_M Q6_K Q8_0 9B 4.8 🟢 5.5 🟢 6.4 🟢 7.4 🟢 9.6 🟢 14B 7.5 🟢 8.5 🟢 10.0 🟢 11.6 🟡 14.9 🟡 27B 14.5 🟡 16.4 🟡 19.2 🔴 22.3 🔴 28.7 🔴 32B 17.2 🟡 19.4 🔴 22.8 🔴 26.4 🔴 34.0 🔴 35B 18.8 🔴 21.2 🔴 24.9 🔴 28.9 🔴 37.2 🔴 40B 21.5 🔴 24.2 🔴 28.5 🔴 33.0 🔴 42.5 🔴 🟢 舒适(含长上下文也够) 🟡 临界(需抬内存上限、机器专用、上下文别拉满) 🔴 不现实 ...

别再被模型名劝退了(上):从一堆字母看懂本地大模型

这一篇是上篇,先看懂模型的名字、量化的门道,以及——凭什么是 Mac。 写在前面 想在 MacBook 上跑个本地模型,打开 LM Studio 的 Discover,搜了一下 Qwen3-32B,结果蹦出来 23 个。 9B、27B、35B、40B 一堆数字也就罢了,每个名字后面还拖着一长串字母:MLX、4bit、IQ4_XS、Q4_K_M、Thinking、abliterated、DWQ…… 到底下哪个?哪个是给这台机器的?哪个下回来跑不动?哪个其实是个根本不需要的版本? 如果你也在这一步卡住过,这篇就是写给你的。这篇把本地大模型的命名规则、量化原理、为什么 Mac 适合干这事一次讲透。下篇再接着讲这台机器到底能跑多大、质量优先怎么选、以及怎么把 Qwen3-32B 实际跑通。 先从最让人头大的——名字——开始。 面对一堆模型名不知道该选哪个 一、模型的名字,其实是四段拼起来的 看着乱,是因为四个不同维度的信息全挤在一个文件名里。拆成四段就清楚了: 模型名 + 参数规模 + 模型类型 + 量化格式 1. 参数规模:那个 B 是什么 9B、27B、32B 里的 B = Billion,十亿。指的是模型的参数量。数字越大,模型“脑容量”越大,能力上限越高,但也越吃内存、越慢。 这里有个容易踩的坑:MoE 模型。你会看到类似 Qwen3-30B-A3B 的写法—— 30B 是总参数 A3B 是 Active 3B,每次推理实际只激活 3B 这意味着:一个 30B-A3B 的 MoE,显存占用接近 30B,但速度接近 3B。它是“装得满、跑得快”的设计。这个特性后面选型时很关键,先记住。 2. 模型类型:这个模型“会做什么” 名字中间那段单词,决定了模型的用途: 后缀 含义 Instruct / -it 指令微调版,能听懂指令、能对话。日常用的就是它(it = instruction tuned) Base 只做了预训练、没对齐,是“续写型”。一般别下,除非你要自己微调 Chat 对话微调,和 Instruct 类似 Coder / Code 代码专用 VL / Vision 多模态,能看图(如 Qwen-VL) Thinking / Reasoning / R1 推理模型,会先输出一大段思维链再回答 Distill 从更大的模型蒸馏出来的(如 DeepSeek-R1-Distill-Qwen-32B) abliterated / uncensored 社区改版,去掉了安全护栏 一句话:做日常任务认准 Instruct/-it 就对了,其余的是各有专门用途。 ...

DANKOE最新文章《如何在AI大替代中生存(并逃离薪资奴役)》

DAN KOE 发布了最新newsletter《How to survive AI mass replacement (& escape wage slavery)》,标题很猛,里面也有不少他一贯锋利的表达:wage slavery、unemployable、life’s work,直译过来都带着刺。 AI 时代的分叉路口 但它表面在讲 AI 和就业,内核其实不是「AI 会不会抢走你的工作」。它真正问的是:一个人到底要不要继续把自己的生存,完全交给别人。 现在大家聊 AI,常见两种情绪。一种是兴奋,觉得终于有了超级工具;另一种是愤怒,觉得 AI 偷走了创作者的东西,把世界搞得更卷。 Dan Koe 对第二种情绪不太客气。他认为,在社交媒体上喊几句「反 AI」,确实容易获得身份认同,也容易让人觉得自己站在了正确的位置上。但喊完之后呢?生活不会因为你反对 AI 就变得更稳,雇主不会因为你不喜欢 AI 就永远保留你的岗位,技术更不会因为你觉得不公平就慢下来等你。 所以他给了一个很反直觉的判断: AI 不是真正的威胁,依附性才是。 你依附于一个雇主、一份工资、一个平台、一套过去有效的技能,甚至依附于「只要我努力工作,生活就会越来越好」的旧叙事。这些东西一旦变化,你就立刻被动。这才是更深层的风险。 工资奴役,不只是工资低的问题 文章里最刺耳的一个词是 Wage Slavery,工资奴役。 工资依附感:看得见的收入,看不见的锁链 很多人会本能反驳:我又不是奴隶,我有工资,也有选择。但他讲的不是传统意义上的奴役,而是一种金融意义上的困住—— 如果你不上班就会陷入灾难,而且你没有任何技能去创造替代方案,那么不管你感觉自己多自由,你都符合某种奴隶的定义。 这话很难听,但也很难完全反驳。 当然,他不是反对工作本身。工作有价值,尤其在一个人刚进入社会时,它是最快的训练场:协作、流程、交付、沟通、专业技能,还有真实世界到底怎么运转。问题是,很多人把工作当成了唯一的生存方式。 一开始,工作是踏脚石。时间久了,踏脚石变成了笼子。 Dan Koe 在这里提到心流理论,我很有共鸣。一个人真正有成就感,往往不是躺平时,也不是被迫重复时,而是处在「能力边缘」上:事情略微超过你的能力,你需要学习、尝试、犯错,然后一点点掌控它。太简单会无聊,太难会焦虑。 很多工作的问题就在这里。刚开始你觉得新鲜,什么都要学;几年以后你掌握了流程,挑战感下降,剩下的变成重复、等待、汇报、填表、开会。人当然会无聊,无聊之后就会找刺激——刷短视频、买东西、沉迷各种即时反馈。不是因为真的喜欢,而是大脑已经很久没被真正的挑战点亮过了。 所以「逃离工资奴役」,不是简单喊一句「我要辞职创业」。它真正指向的是:你要重新获得安排挑战等级的能力。 不再只是被别人分配任务,而是开始给自己设计任务。 AI 让「能做出来」越来越不值钱 Dan Koe 在第二部分讲了五个能力:能动性(Agency)、品味(Taste)、说服力(Persuasion)、坚持(Persistence)、迭代(Iteration)。 AI 让“能做出来”贬值:满地半成品 这几个词都不新,尤其 high agency 这几年快被说烂了。但他很讽刺地说:一群人跟风谈 high agency,本身就暴露了他们没什么 agency。这个判断挺狠,也挺准——真正的能动性,不是转发几句金句,而是没人催你、没人给流程、没人保证结果的时候,你仍然能开始做一件事。 这五个能力压缩一下,其实就是两件事: 把事情搞定的能力。知道什么事情值得搞定的经验。 ...

不同算力卡一小时能干多少活?

上一篇聊了 1P 算力到底有多大,这一篇换个更具体的问法:算力听起来很大,但它到底能干什么?这个问题继续往下走,就会变成一个更具体的问题——如果我手里有一张算力卡,让它连续工作一小时的话,到底能干多少活? 能写多少篇文章? 能回答多少次问题? 能支撑多少人同时使用 AI 助手? 能不能撑起一个企业内部的智能体系统? 直接换一种更容易理解的方式:把算力换算成 AI 的实际产能。 不同算力卡一小时能干多少活 1. 算力很抽象,不如换成工作量 我们平时看到算力卡参数,一张卡 300 TFLOPS,另一张卡 1000 TFLOPS,听起来差了好几倍,这个差距到底意味着什么?或者更直白的问题应该是:它一小时能完成多少 AI 工作? 比如: 一小时能生成多少文字? 一小时能写多少篇文章? 一小时能回答多少次问题? 一小时能服务多少个用户? 一小时能处理多少份材料? 这才是算力真正落地之后的样子。 所以,讨论不同算力卡一小时能干多少活,不能只看“这张卡有多强”,而要看它在一个具体 AI 场景里能产出多少东西。 2. 先设定一个统一场景 要比较不同算力卡,必须先设定一个统一场景,否则没法比。 同样一张卡,跑 7B 模型、35B 模型、70B 模型,工作量完全不同,而换做不同的业务逻辑,比如图片生成、视频生成、模型训练、大模型推理,消耗也就完全不同。 选一个足够考验算力、也比较贴近日常 AI 应用的场景:运行一个 70B 级别大模型,连续一小时对外提供文本生成服务。 这个场景可以对应很多实际工作,比如写文章、写代码、做摘要、回答问题、做客服、写方案、做资料分析、给企业内部知识库提供问答服务,我们不讨论一张卡理论上有多强,而看它在大模型推理场景下一小时最多能生成多少 token。 为什么选 70B?——因为 70B 是一个比较好的参照物。 7B、14B 模型更像轻量级工具,适合简单问答、分类、摘要、本地助手。 35B 已经开始进入比较强的生产力模型区间。 70B 则是一个分水岭:模型足够大,负载足够重,也更接近严肃的大模型推理场景。 所以本文里的“一小时能干多少活”,本质上是在问:一张算力卡连续跑 70B 大模型,一小时能生成多少 token? 3. token 是什么? AI 生成文本不是按“字”算,也不是按“篇”算,而是按 token 算。 token 可以简单理解成:AI 处理文本的基本颗粒。 ...

拥有1P算力,能干点什么?

​ 拥有1P算力,能干点什么? 之前聊过“什么是 1P 算力”,简单说,1P 算力通常指 1 PFLOPS,也就是每秒 1000 万亿次浮点计算能力。但知道这个定义之后,新的问题马上来了: 如果我真的拥有 1P 算力,到底能干点什么? 能不能训练大模型? 能不能跑本地 AI? 能不能支撑一个企业的智能体应用? 能不能让几百个人同时用 AI 助手? 这篇就不继续抠概念了,直接聊应用。 1P 算力不小,但也没那么神 先说结论:1P 算力不算小,但也没到“想干什么就干什么”的程度。 如果只是做 AI 推理,比如让已经训练好的模型回答问题、处理文档、写材料、做知识库问答,1P 算力已经能做不少事情。 但如果想从零训练一个真正意义上的大模型,1P 算力基本不够。 训练大模型不只是看算力,还要看显存、通信、数据量、训练时间、工程能力和资金投入。 ​ 1P 算力支持的典型应用场景⁠ 1P 算力大概是什么体量? 按 FP16 来粗略理解,1P 算力就是每秒 1000 万亿次半精度浮点计算。 但这个数字太大,一般也没有感觉。 更直观一点说,1P 算力它不像一台电脑,也不像一台服务器,更像是一个小型机房里的一组 AI 加速卡,大概可以理解为一个很小型的 AI 算力资源池。它不是“几台普通电脑”的概念,而是需要多张专业 AI 加速卡组合起来,才能达到的计算能力。 说法 普通理解 1P FP16 算力 每秒约 1000 万亿次半精度浮点计算 它不是一台电脑 通常需要多张 AI 加速卡组成 它不是万能指标 还要看显存、带宽、网络、利用率 它适合什么 推理、小模型训练、企业 AI 应用 它不适合什么 从零训练超大规模基础模型 拥有 1P 算力,可以干哪些事? 1. 跑大模型推理 所谓推理,就是模型已经训练好了,现在让它回答问题、总结材料、写代码、生成文案、分析表格、处理图片。 ...

我用WorkBuddy做了几件小事,才明白Agent是什么

前两天我人在外面,需要的一个文档在家里电脑中,这事说大不大,说小也不小。等回家当然能弄,打开电脑,找到文件,再处理需要的内容,十来分钟的活儿。但这种活儿最烦的地方也在这里:它不值得郑重其事坐下来处理,可它就是会一直挂在脑子里。 现在,在微信小程序里给 WorkBuddy 发一句话,让它连上家里电脑,看一下所需要的文件,并对文件进行一些操作,再顺手总结一下。撒泡尿的功夫,任务已经跑完了。 ​ 使用WorkBuddy 那一刻我才有点理解,为什么现在大家都在讲 Agent:不是因为它会聊天,也不是因为它能写几段漂亮话,而是它终于开始替你动手了。 前几天还有一条新闻:6 月 16 日,全国首个省级政务智能中枢“湾擎”上线试运行,同时预发布了湾擎·WorkBuddy,后面会面向广东全省公务员开放。这个新闻听起来很政务、很企业,这跟咱也没关系,说有点关系的话,那就是咱能不能拿来处理自己的日常杂事? 先一分钟搞清楚 WorkBuddy 是个啥 一句话:它是个桌面 / 全场景的 AI Agent,也叫智能体工作台。 跟你天天对话的那种 AI 不一样的地方在于——它不只是给你“答案”,而是真的把你电脑当成“AI 同事”来用:听懂你一句大白话,自己拆解任务、规划步骤、动手执行,最后交给你一个能直接验收的成品。能力上它跟开源的“小龙虾”OpenClaw、Hermes 类似、完全兼容这类 skills,但更省事也更安全——不用折腾环境,从下载安装到微信扫码登录,最快一分钟。 这一类产品现在其实不少,横向对比一下,心里有个谱: 产品 核心定位 更像什么 主要战场 腾讯 WorkBuddy AI Agent 桌面工作台 “办公智能体入口” 企微、腾讯文档/会议、政务办公 阿里悟空 企业级 AI 工作平台 “钉钉里的 AI 员工军团” 钉钉、审批、日程、企业流程 Claude Cowork 知识工作的桌面 Agent “会操作本地文件的 Claude” 文件整理、研究综合、文档生成 OpenAI Codex 编码 Agent / 云端执行器 “云端 AI 工程师” 代码库、PR、调试、自动化 Claude 的 Cowork、阿里的悟空、OpenAI 的 Codex 都在做同一件事,只是切入口不同。排除掉 Claude 和 Codex 的网络问题,国内能开箱即用、又跟微信生态长在一起的,目前确实是 WorkBuddy 最顺手。它属于腾讯 CodeBuddy 产品线下的一个分支——CodeBuddy 就是腾讯版的 Codex,也很能打,这个以后单开一篇聊。 ...

了解一下图片暗水印

聊这个话题之前先看看下面这两张图片,能看出来有什么区别吗? 图片一 图片二 直观来看,左图左下角有文字水印,右图是“原图”。其实除了画面内容,两张图片承载了相同的文字信息,只不过右图不是明文显示,而是通过暗水印的方式把文字藏了进去。 关于暗水印 图片暗水印(也叫隐形水印、盲水印)是一种把标识信息嵌入图片内部、肉眼看不见但能被算法提取出来的技术。和传统明晃晃的文字水印(明水印)不同,暗水印不破坏画面观感,主要用于版权追踪和泄露溯源。 典型用途 版权追踪: 比如摄影师、设计师、平台给图片加入暗水印,后续即使别人裁剪、转发,也可能检测出原始来源。 平台溯源: 有些社交平台、图片平台、AI 图片生成工具,可能会在图片里加入隐藏标记,用来判断图片来源、生成工具、上传渠道等。 防盗图: 即使别人把明水印裁掉,只要暗水印还在,就可能证明图片来源。 AI 生成图片识别: 一些 AI 图片系统会尝试给生成图加入不可见标记,用于说明“这张图可能由 AI 生成”。(借助 AI 工具生成的视频、图片,会被抖音、视频号、小红书等平台识别出是 AI 生成的作品,可能就是这个原理。) 暗水印不等于 EXIF 信息 很多人容易把两者混在一起,EXIF 信息是照片文件里的元数据,比如: 1 2 3 4 拍摄设备:iPhone 拍摄时间:2026-06-21 GPS 位置: 镜头参数: 这种信息比较容易被查看,也容易被删除。但暗水印一般是嵌进图片内容本身的,即使你删掉 EXIF,它可能还在。 做个小实验 核心原理很简单:明文 → AES-GCM 加密 → LSB 隐写嵌入 PNG 图片 → 接收端逆向提取。 ...