AIGC 安全学习笔记01 深伪检测・文本隐写・LoRA


📌 来源声明|本文为个人学习整理笔记,非原创研究 内容基于公开学术论文的精读梳理,核心文献均已下载原文核对:

  • 文献1:A Survey of Defenses against AI-generated Visual Media: Detection, Disruption, and Authentication(ACM Computing Surveys,arXiv:2407.10575v3)

  • 文献2:Synthetic Image Verification in the Era of Generative AI: What Works and What Isn't There Yet(IEEE S&P,arXiv:2405.00196v1)

  • 文献3:Frequency-Aware Attentional Feature Fusion for Deepfake Detection(ICASSP 2023)

  • 文献4:Generative Text Steganography with Large Language Model(ACM MM 2024,arXiv:2404.10229v2)

本文在学习笔记基础上做了结构重排、原理补全与通俗化改写(补充处标 💡,易错点标 ⚠️,重点标 📌),并补充了可运行的代码片段与工程落地建议。 如需转载请注明出处;如有侵权请联系删除。

🧭 导读:这篇解决什么问题

啃完一批论文最容易陷入的状态是:每个字都看懂了,合上文献却说不出体系。

这一整块内容其实串了一条非常清晰的线------AI 生成内容的「攻」与「防」:

复制代码
第一层:内容已经生成出来了 → 怎么认出来?(被动检测 / 取证)
第二层:能不能让它根本生成不出来?(主动干扰 / 水印)
第三层:把视野从图像换到文本 → 秘密怎么藏进一段话里?(隐写)
第四层:把视野换到模型本身 → 怎么低成本改造一个大模型?(LoRA)
第五层:拿到模型之后 → 怎么把它调教成想要的样子?(推理参数)

这五层不是散的,它们共同回答了一个问题:当生成能力变得人人可得,我们靠什么重建"可信"?

阅读主线:

复制代码
① 防御全景(被动 vs 主动)        ← 建立坐标系
        ↓
② 合成图像检测与溯源              ← 深入技术细节
        ↓
③ 一篇具体算法论文                ← 看清楚 SOTA 怎么做
        ↓
④ 横向对比 + 真实换脸工具          ← 从论文回到现实
        ↓
⑤ 文本隐写(修改式 / 生成式)      ← 换载体
        ↓
⑥ LLM-Stega 黑盒隐写              ← 换范式
        ↓
⑦ LoRA 微调                      ← 换到模型侧
        ↓
⑧ API 推理参数                    ← 换到调用侧
        ↓
⑨ 总结 + 知识地图

⚠️ 合规前提 :文中涉及的后门、隐写、注入等技术,仅用于学术研究与防守侧检测(取证分析、内容审核、红队评估)。 将深度伪造技术用于诈骗、诽谤、伪造证件,或将隐写技术用于未授权的隐蔽通信,均属违法。


🗺️ 〇、一页速览

# 章节 你会拿到什么
1 防御全景 被动 vs 主动的根本分野 · 检测/干扰/认证三大策略 · 可信性(鲁棒、公平)
2 合成图像验证 高层伪影 / 低层伪影 / 数据驱动三分法 · 溯源的开集难题 · 阈值标定这个落地杀手
3 空频融合算法 DCT 频域分解 · 三个注意力模块 · 对比学习正则 · 99.85% ACC 是怎么来的
4 横向对比 一张表定位三篇文献 · Deep-Live-Cam 这类真实工具带来的新麻烦
5 文本隐写 修改式 vs 生成式 · 零宽字符原理与可运行 demo
6 LLM-Stega 白盒→黑盒的范式跃迁 · 关键词集 + 加密映射 + 拒绝采样四步法
7 LoRA 微调 低秩假设 · 为什么推理零延迟 · peft 可运行代码
8 API 参数 temperature / top_p / 惩罚项 · 三套场景模板
9 总结 知识地图 · 十条要点 · 资源清单

📌 阅读建议:赶时间直接跳 第 4 章对比表 和 第 9 章知识地图 ;想搞懂"为什么这么分"回 第 1 章。


📕 第一章 · 先立骨架:AI 生成视觉媒体的防御全景

📌 本章基于 文献1 :A Survey of Defenses against AI-generated Visual Media: Detection, Disruption, and Authentication 发表:ACM Computing Surveys(2025)|作者:西安交通大学 沈超、林晨浩团队|arXiv:2407.10575v3

1.1 一句话定位

这是目前覆盖面最全的一篇 AIGC 视觉媒体防御综述。它干的最重要的一件事,是把原本散落各处的研究,塞进了一个统一框架。

这个框架的核心是一条生成流水线:

复制代码
输入/条件 ──[编码器 E]──> 隐空间嵌入 ──[生成器 G]──> 生成结果 ──[解码器 D]──> 输出媒体
   ↑                          ↑                                        ↑
   └──────── 干扰/水印可插入的三个位置 ────────────────────────────────┘

1.2 被动 vs 主动:事后验钞 vs 出厂防伪

这是全文最值得记住的一组对立概念:

被动防御 Passive 主动防御 Proactive
时机 媒体已经生成并传播之后 媒体生成之前/生成过程中
手段 检测 Detection 干扰 Disruption + 认证 Authentication
类比 事后验钞------钱已经印出来了,鉴别真假 出厂防伪------在造纸/印刷阶段就埋入防伪线
被动程度 永远慢一步,追着生成模型跑 抢在前面,但要求你能碰到生成流程
文献占比 约 71%(132 篇) 干扰 29 篇 + 认证 26 篇

💡 为什么这个比例很重要? 学术界 7 成精力在"事后检测",意味着整个领域长期处于追赶状态 ------新模型出来,检测器失效,再训练,再失效。 主动防御论文少,恰恰说明它是还没被充分开垦的方向,也是工程上更有可能破局的方向。

1.3 被动防御:检测(不只是"真/假"二分类)

检测分三层,从粗到细:

① 粗粒度伪造检测(Coarse-grained)

最经典的形态:给一张图/一段视频,输出「真」或「假」。媒体级二分类。

② 细粒度伪造检测(Fine-grained)

这才是现在的研究热点,因为它回答的是"能不能作为证据"的问题:

细粒度任务 回答什么问题 实用价值
伪造定位 图像里哪几个像素 被改了?视频里哪几帧被动过? 法庭举证需要指出篡改区域,不能只说"这是假的"
伪造溯源 / 归因 是哪个生成模型 造的?用的是哪套训练数据? 追责。模型溯源 → 找工具;数据溯源 → 找素材来源
顺序篡改预测 这张图被先后做了哪些操作?能不能还原原图? 还原操作链,用于取证重建

💡 一句话理解"粗 vs 细" : 粗粒度是裁判举牌 (犯规 / 没犯规); 细粒度是出裁判报告(谁、什么时候、哪个部位、怎么犯的、能不能恢复到犯规前)。

③ 检测的可信性(Trustworthiness)------这篇综述最独特的贡献

大部分综述只讲"怎么检测",这篇多问了一句:检测器本身靠得住吗?

可信性维度 问题 后果
鲁棒性 Robustness 对抗样本能不能绕过?后门攻击能不能失效它? 加一层人眼看不见的噪声,检测器直接瞎
公平性 Fairness 对不同性别、种族、年龄段的人,性能一致吗? 某个人群的误判率显著偏高 → 算法歧视

⚠️ 公平性不是"政治正确",是实打实的工程风险。 一个内容审核系统如果对深色皮肤人群的误报率高 3 倍,上线就会被投诉到下架。

1.4 主动防御之一:干扰(Disruption)

思路:既然你要拿我的图去生成,那我先在图里加点"毒"。

具体做法是向输入 / 条件添加微小的对抗扰动,攻击生成流水线的任一环节(编码器、生成器、解码器):

干扰类型 效果 类比
扭曲干扰 Distorting 生成结果严重失真,直接不可用 让复印机印出来的东西糊成一团
归零干扰 Nullifying 生成结果近似原始输入,篡改等于没做 让"换脸"操作换完还是原来那张脸

💡 典型案例:PhotoGuard、Anti-DreamBooth。 你不想让别人拿你的照片去训练一个"你的形象"的 LoRA,就先给照片加一层对抗扰动------扰动人眼看不见,但 DreamBooth 训练出来的人脸会完全崩坏。

⚠️ 干扰的软肋 :对抗纯化攻击(Adversarial Purification)。 对方只要对图片做一次简单的加噪-去噪、JPEG 压缩、缩放,你精心加的保护扰动就可能被抹掉。所以干扰不是银弹。

1.5 主动防御之二:认证 / 水印(Authentication)

水印分两类,用途完全不同,别搞混:

类型 特性 用途 类比
鲁棒认证 Robust 水印能扛过生成过程,依然存活 版权保护------证明"这是我的图" 钞票里的金属线,怎么揉都在
半脆弱认证 Semi-fragile 一经过 AI 生成 / 篡改,水印就破坏 伪造鉴真 + 主动篡改定位 封条------拆过就断,一眼看出被动了

水印可以嵌在三个位置:输入端、生成器内部、解码器端。

⚠️ 水印的两个硬伤

  1. 会被攻击:压缩、裁剪、重建攻击(VAE 重建一遍图)、自适应对抗攻击,都能破坏水印。

  2. 存在固有权衡:水印越鲁棒 → 对图像的改动越大 → 视觉质量越差。PSNR > 30dB 目前是较优水位,但不是白拿的。

📌 还有一个反直觉的坑:水印可能帮倒忙 。 综述专门提醒:三类防御(检测 / 干扰 / 认证)联合使用时,要警惕负面副作用------比如加了水印的图片,反而更容易骗过某些检测器。

1.6 怎么评价:数据集 + 指标

常用数据集

类别 代表 特点
Deepfake 人脸数据集 FaceForensics++、Celeb-DF-v2、DFDC 专注人脸换脸/属性编辑
通用 AIGC 数据集 CNNDetection、GenImage、GenVideo 覆盖扩散模型生成的任意场景图

评价指标

任务 指标 说明
检测 AUC、ACC、AP、F1 📌 优先用阈值无关的 AUC/AP,因为现实样本极度不均衡
干扰 LPIPS、PSNR、MSE、攻击成功率 SR 既要看破坏效果,也要看人眼感知差异
水印认证 AUC、TPR、PSNR、SSIM、FID 兼顾可检出性与图像质量

💡 为什么强调"阈值无关"? 现实里 99% 是真实图片、1% 是伪造。ACC 在这种分布下毫无意义------一个永远输出"真"的模型 ACC 就是 99%。 AUC 衡量的是排序能力,不受正负样本比例影响。这个坑在第 2 章还会再遇到一次,而且更致命。

1.7 未来方向 & 论文不足

作者指出的研究方向

  1. 被动检测:加强细粒度任务;研究细粒度任务的鲁棒性与公平性;构建通用 AIGC 权威基准;把推理速度、参数量这类工程指标纳入评估(现在论文只卷精度,不卷能不能上线)。

  2. 主动防御:拓展半脆弱水印任务;丰富主动防御的可信性研究;研究三类防御的联合协同效应。

论文的两点不足

  • ❌ 以文献梳理归类为主,大量结果直接引用已有论文,缺少大规模复现实验;

  • ❌ 视频方向的实验素材相比图像明显更少。


📗 第二章 · 合成图像验证:什么能用,什么还不行

📌 本章基于 文献2 :Synthetic Image Verification in the Era of Generative AI 发表:IEEE Security & Privacy(2024)|那不勒斯费德里科二世大学 + NVIDIA|arXiv:2405.00196v1

2.1 定位差异:这篇"有实验"

如果说文献1 是地图 ,那么文献2 就是实测报告 。它最大的价值是:不只告诉你有哪些方法,还亲手复现了一遍,告诉你哪些真的扛得住。

两大核心任务

任务 输出 价值
检测 Detection 一个全局分数:这图是 AI 生成的概率 判真假
溯源 Attribution 具体是哪个模型生成的 验证检测结果 + 提供可解释性 + 便于追责

💡 溯源的价值在于交叉验证:如果检测器说"这是 AI 图",溯源又说是"Stable Diffusion XL 生成的",两条证据互相印证,结论才站得住。

2.2 三类检测方法

复制代码
合成图像检测
├─ ① 高层伪影 High-level artifacts    ← 人眼可见的语义级破绽
├─ ② 低层伪影 Low-level artifacts     ← 人眼不可见的像素/频域痕迹
└─ ③ 数据驱动 Data-driven approaches  ← 让深度学习自己学
① 高层伪影:人眼可见的破绽
  • 人脸左右不对称(耳环只有一只、瞳孔反光方向不一致)

  • 透视关系矛盾、阴影方向打架、光照不自洽

⚠️ 这类方法正在快速失效。 论文明确指出:新一代扩散模型可以规避这类错误。当 Midjourney v6 已经能画出正确的手部结构,"数手指"就不再是可靠的判据。 📌 判断标准:凡是你能用肉眼描述出来的破绽,都会被下一代模型修掉。

② 低层伪影:显微镜下的指纹

这是目前最可靠的一类线索。核心原理:

生成模型再像人,它也是一台机器------机器加工必然留下加工痕迹。

真实照片是"物理成像"(镜头 → 传感器 → ISP),AI 图是"数学加工"(卷积、上采样、池化)。两条链路完全不同,痕迹也就不同。

子类 原理 类比
频域分析 GAN/扩散模型的上采样操作,会在傅里叶功率谱上留下周期性谱峰 每台打印机印出来的点阵规律不同
人工指纹 类似相机 PRNU 噪声指纹,提取模型专属的噪声残差 生成模型也有"指纹"
噪声特征 真实相机噪声与 AI 生成噪声的统计分布差异 天然木纹 vs 贴皮纹理
反演分析 用扩散模型重建待测图: AI 图重建误差小 (它就是从这条路上来的), 真实照片重建误差大 DIRE 算法。 让小偷重演一次作案,他熟门熟路;路人则手足无措

💡 论文里最直观的一张图 : 用同一句 prompt("罗马斗兽场上空有 UFO")分别让 Latent Diffusion、Stable Diffusion、Midjourney v5、DALL·E Mini / 2 / 3 生成,然后画各自的平均功率谱 ------六个模型的谱峰形态清晰可分,DALL·E 三个版本的指纹彼此差异极大。 这就是"人工指纹"存在的直接证据。

③ 数据驱动:让模型自己学
策略 做法 解决什么
预训练 CNN + 数据增强 训练时加入 JPEG 压缩、模糊 提升抗社交网络降质的鲁棒性
信息保留 patch 分块输入,避免网络浅层做下采样 防止微弱的取证痕迹在前几层被抹掉
小样本 / 增量学习 适配不断涌现的新生成模型 泛化能力
大规模预训练(CLIP-ViT) 借用视觉语言模型的表征 跨模型泛化性能最好

📌 一条被反复验证的"黄金法则" : 避免任何信息损失。 尤其在网络最靠近输入的几层------不要 resize、不要下采样、用随机裁剪的 patch 训练、最后再融合做全局决策。 原因很朴素:取证痕迹本来就是微弱信号,你在第一层把它平均掉了,后面再深的网络也学不回来。
⚠️ 数据增强的一个细节陷阱 : 增强必须和真实场景对齐。你的业务图片走的是 WebP 压缩,那训练时就别只加 JPEG 增强------格式不对,鲁棒性照样不保证。

2.3 溯源 Attribution:闭集 vs 开集

场景 定义 性能
闭集 Closed-set 测试的模型在训练集里见过 表现优秀
开集 Open-set 出现从未见过的新生成模型 性能显著下降

💡 类比:闭集是在档案库里比对嫌疑人 ;开集是来了一个档案库里没有的人,系统只能说"不认识"。 现实世界永远是开集------每个月都有新模型发布。

⚠️ 论文特别指出:扩散模型的开集溯源难度高于 GAN。

2.4 四条实验结论(含金量最高的一节)

① 扩散模型生成的图像,比 GAN 图像更难检测。

原因:扩散模型的生成链路更接近"从噪声逐步去噪",其噪声统计特性与真实图像的差异比 GAN 更小。

② 社交网络后处理会显著拉低检测器性能。

裁剪、缩放、JPEG 压缩------每一步都在抹掉低层取证痕迹。这是实验室数据集和真实业务之间最大的鸿沟。

③ ⚠️ 阈值标定(Calibration)是落地最大的痛点------这一条要划重点。

AUC 高 ≠ 业务可用。

这是整篇论文最反直觉、也最值钱的一条结论。

复制代码
AUC = 0.98 意味着什么?
  → 把真图和假图的分数排成一队,真图和假图能被很好地分开(排序能力)
  → 但 AUC 完全不告诉你「分数线画在哪里」

问题在于:不同生成模型输出的分数分布是偏移的。

生成模型 检测器输出的分数分布中心
ProGAN 0.85 左右
Stable Diffusion 0.62 左右
某新模型 0.45 左右

你用一个固定阈值 0.5 去切:ProGAN 全抓到了,Stable Diffusion 漏掉一大半,新模型基本全漏。

📌 工程结论 : 上线一个检测器,必须做分模型的阈值标定------针对你业务里可能遇到的每类生成源,单独校准工作点(比如按"误报率 ≤ 0.1%"反推阈值)。 只报 AUC 的检测器,等于没做标定,直接上生产一定会翻车。

④ 实验室数据集 vs 真实"野外"数据,性能差距巨大。

论文对比了受控实验与社交网络真实数据的表现,差距不是一点点。

💡 这条和 ② 是一体两面:降质 + 分布偏移,是检测落地的两大杀手。

2.5 挑战与未来方向

现存挑战

  1. 检测与溯源任务割裂(论文认为应该联合优化)

  2. 开集识别能力短板

  3. 阈值标定困难

  4. 低层频域痕迹容易被对抗攻击抹除

未来方向

方向 说明
意图刻画 区分"恶意伪造"和"合法 AI 编辑"(美化、超分、压缩)
可解释检测 不只给分数,还要说清"凭什么判定"
对抗鲁棒性 设计时就考虑抗攻击,而不是事后补
通用方法 同时检测全局生成 和局部编辑(inpainting)
主动取证 重新重视水印、扰动等主动手段

💡 "意图刻画"这个方向值得单独说 : 论文提出一个尖锐的问题------AI 已经普遍用于压缩、增强、超分,这些图还算不算"假"? 未来内容治理的核心可能不是"真/假"二分,而是**"有没有恶意意图"**。这个思路对做内容审核的同学很有启发。

论文不足

  • ❌ 几乎不涉及主动防御(干扰 / 水印)

  • ❌ 重点研究 2D 图像,对视频 Deepfake 讨论较少


📘 第三章 · 空域-频域注意力融合深伪检测(ICASSP 2023)

📌 本章基于 文献3 :Frequency-Aware Attentional Feature Fusion for Deepfake Detection 会议:ICASSP 2023(CCF-B)|作者:田成、罗志明、史桂敏、李绍滋(厦门大学)|DOI: 10.1109/ICASSP49357.2023.10094654

3.1 它要解决三个具体的"不顺"

前两章是综述,这一章是具体算法。先看作者挑了哪三个毛病:

问题 具体表现
过拟合 / 域泛化差 在 FF++ 上训的模型,换到 Celeb-DF 就掉点
空频融合太粗暴 现有方法直接把 RGB 特征和频域特征拼接或相加,但两者语义、尺度根本不一致
注意力只看局部 大部分注意力机制只盯着局部伪造区域,忽略了局部-全局上下文关联

💡 "语义不一致"是什么意思? RGB 特征回答的是"这里有个鼻子";频域特征回答的是"这里的纹理频率分布异常"。 这是两种完全不同性质的信息,直接相加就像把"温度 26 度"和"颜色红色"加在一起------数学上能做,语义上没意义。

3.2 网络四大组件

复制代码
输入原图
   │
   ├─[增强1]──> x₁ ──┐
   └─[增强2]──> x₂ ──┤
                     │
        ┌────────────┴────────────┐
        ↓                         ↓
   RGB 空域分支              频域分支(DCT 分解 + 可学习滤波器 + 逆 DCT)
        └────────────┬────────────┘
                     ↓
           编码器(Xception 骨干)
           ├─ CAM  通道注意力模块
           ├─ SF₃M 空-频特征融合模块  ← 核心贡献
           └─ VAM  变体注意力模块
                     ↓
              分类头 + 损失
                     ↓
        L = L_ce + β · L_sim
组件一:增强数据生成

对原图做两组不同的数据增强(随机擦除、随机裁剪),得到 x_1 和 x_2。

这两个样本不是用来扩充训练集的,而是专门给对比损失当正样本对的------见组件四。

组件二:频域感知图像分解
  1. 对图像做 DCT 离散余弦变换,转到频域;

  2. 用可学习的滤波器划分高 / 中 / 低频(不是人工固定切分,是学出来的);

  3. 逆 DCT 变换回空间域,得到"频域图像"。

💡 为什么要绕一圈"频域 → 变换回空间域"? 因为直接把频域系数喂给 CNN 效果不好------频域系数的空间布局和原图完全不同。 变回空间域后,这张"频域图"长得还是一张图,但像素值编码的是频率信息,CNN 可以直接吃,且保留了空间对应关系。 这个技巧在多篇取证论文里都出现过,很实用。

组件三:三个注意力模块
模块 全称 作用
CAM Channel Attention Module 聚合局部 (逐点卷积)与全局(全局平均池化)上下文,生成通道注意力权重
SF₃M Spatial-Frequency Feature Fusion Module 多层渐进式自适应融合 RGB 与频域特征,规避简单相加拼接的损失
VAM Variant Attention Module 对多层融合特征再次加权精炼,强化判别性

📌 消融实验证明:SF₃M 模块贡献最大------这印证了作者的核心判断,"怎么融合"比"用什么特征"更关键。

组件四:损失函数

L = L_{ce} + \beta L_{sim}

  • L_{ce}:交叉熵,做真假二分类;

  • L_{sim}:余弦相似度对比损失------约束同一张图的不同增强版本,特征尽可能接近。

💡 对比损失在这里起什么作用? 它相当于一个正则项 ,告诉网络:"这两张图其实是同一张,别因为它们被裁剪/擦除得不一样,你就给出两个完全不同的判断。" 效果是逼着网络去学那些"怎么增强都不变"的本质特征,而不是记住某张图的细节 → 直接缓解过拟合。

3.3 💻 代码视角:频域分解长什么样

论文用的是可学习滤波器,这里给一个等价思路的简化实现,帮助理解"频域分支"到底在干什么:

复制代码
import torch
import torch.nn as nn
​
def dct_2d(x):
    """简化的 2D DCT(实际工程建议用 torch-dct 或 OpenCV)"""
    return torch.fft.fft2(x, norm='ortho').real  # 演示用,非严格 DCT
​
class FrequencyDecomposition(nn.Module):
    """频域感知图像分解:把图像拆成 高/中/低 三个频带,再各自逆变换回空间域"""
    def __init__(self, channels=3):
        super().__init__()
        # 论文的核心:滤波器是可学习的,不是人工固定的
        self.low_mask  = nn.Parameter(torch.rand(channels, 1, 1))
        self.mid_mask  = nn.Parameter(torch.rand(channels, 1, 1))
        self.high_mask = nn.Parameter(torch.rand(channels, 1, 1))
​
    def forward(self, x):
        freq = dct_2d(x)
        h, w = freq.shape[-2:]
        # 用可学习掩码加权不同频带(真实实现是按频率半径分带)
        low  = freq * self.low_mask.sigmoid()
        mid  = freq * self.mid_mask.sigmoid()
        high = freq * self.high_mask.sigmoid()
        # 逆变换回空间域 —— 关键一步,让 CNN 能直接吃
        out = torch.cat([idct(low), idct(mid), idct(high)], dim=1)
        return out

⚠️ 上面是原理示意代码,不是论文原实现。真实实现中:

  • DCT 需要正确处理(可用 torch-dct 库);

  • 分带应该按频率半径做,而不是逐通道标量;

  • 逆变换后通常与 RGB 分支共享骨干(如 Xception),而不是独立一套。

3.4 实验结果

数据集 :FaceForensics++(FF++)、Celeb-DF、DFDC 指标:ACC、AUC、TDR@0.1%、TDR@0.01%

场景 表现 解读
域内 Celeb-DF ACC = 99.85 ,AUC = 99.99 域内基本打满
FF++-LQ(高压缩) 表现突出 📌 适配社交网络压缩图片,这是实用性的关键
跨数据集 小幅下降,整体稳定 比多数基线好,但泛化仍是开放问题
可视化 Grad-CAM 证明注意力聚焦伪造区域 可解释性加分

💡 TDR 是什么?为什么它比 ACC 重要? TDR = True Detection Rate,在极低虚警率条件下 (0.1% / 0.01%)的检出率。 现实业务里,你不可能接受 1% 的误报------一万张用户照片里误杀 100 张,产品就废了。 所以**"在万分之一误报下还能抓到多少"**才是真正决定能不能上线的指标。 这篇论文专门报 TDR,说明作者是有落地意识的,这一点值得学。

3.5 优缺点

✅ 优点

  1. 多层渐进式空-频注意力融合,真正解决了 RGB 与频域特征的语义/尺度不一致;

  2. 对比损失作为正则,缓解过拟合,压缩场景效果好(这点对社交网络业务非常关键);

  3. 极低虚警率下的 TDR 指标优秀,偏向实际落地。

❌ 局限

  1. 只针对人脸 Deepfake,不支持通用扩散模型生成的图像;

  2. 没有评估对抗攻击鲁棒性(文献1 特别强调的可信性维度,这篇没覆盖);

  3. 双流结构推理开销更大;

  4. 仅被动检测,不涉及主动防御。


🆚 第四章 · 三篇横向对比 + 真实换脸工具的挑战

4.1 三篇文献对照表

对比维度 文献1 · ACM CSUR 2025 文献2 · IEEE S&P 2024 文献3 · ICASSP 2023
类型 综述 综述(附大量实验复现) 算法论文
研究对象 图像 + 视频;Deepfake + GAN + 扩散模型 重点图像;GAN 与扩散模型 人脸 Deepfake 视频帧
防御体系 被动检测 + 主动防御(干扰 + 水印认证) 仅被动:检测 + 溯源 仅被动检测
分类维度 检测 / 干扰 / 认证; 附带可信性(鲁棒、公平) 高层伪影 / 低层伪影 / 数据驱动 空域-频域注意力融合 + 对比学习
实验特点 文献汇总表格,几乎不复现 大规模复现,闭集/开集/野外真实数据 人脸数据集消融 + 参数实验
核心痛点 泛化不足、防御本身的可信性缺失 开集识别、阈值标定、后处理降质 过拟合、跨数据集泛化、压缩降质
主动防御 ✔ 完整覆盖 ❌ 几乎不涉及 ❌ 不涉及

📌 怎么选文献用?

  • 要搭知识框架 → 读文献1

  • 要知道方法实不实用 → 读文献2(有实测数据)

  • 要动手写代码 → 读文献3

4.2 拓展:Deep-Live-Cam 带来的现实挑战

工具简介 :hacksider/Deep-Live-Cam 开源单图实时换脸工具,基于 InsightFace Inswapper + GFPGAN,零训练,输入一张人脸图片即可完成摄像头实时换脸,输出虚拟摄像头流。

💡 它的门槛低到什么程度?不需要训练、不需要数据集、一张照片 + 一个摄像头,实时输出。 这意味着伪造内容的生产端已经彻底民主化。

它的伪影特点

伪影 表现
空间错位 大角度侧脸时人脸错位
时序闪烁 有遮挡时画面闪烁
细节异常 口腔、牙齿细节异常
痕迹抹除 GFPGAN 增强会抹掉一部分传统频域伪造痕迹 ⚠️

⚠️ 最后一条是最要命的 :GFPGAN 这类人脸修复/增强模型,本质上是在做一次"重新生成",会顺手把伪造留下的频域痕迹洗掉一大半。

对三篇文献的启示

文献 面临的挑战
文献1 检测研究需要纳入这类真实开源工具 生成的样本;除图像线索外,要利用视频级时空时序伪影;可研究针对 Inswapper 的输入扰动干扰(Disruption)与水印认证
文献2 单纯依赖低层频域线索的检测器,遇到经后处理修复的样本会显著掉点;必须结合高层语义 + 时序线索
文献3 只在传统 Deepfake 数据集上训练,直接部署面对 Deep-Live-Cam 样本存在泛化风险;需要引入该类样本扩充训练集

📌 这一节的通用结论 : 论文里的 SOTA 数字,是在论文的数据集上的 SOTA。 拿去对线上真实工具生成的样本,性能掉 20-30 个点是常态,不算意外。 做检测的同学,请把"我的训练集里有没有真实工具生成的样本"当成第一问题。


📙 第五章 · 文本隐写:把秘密藏进一段话里

📌 从这里开始,视野从图像/视频取证 切换到文本域信息隐藏 。 两者同属**信息隐藏(Information Hiding)**大家族,但载体从像素变成了自然语言。

5.1 总览:两大分支

文本隐写:以文本为载体,把秘密信息藏进一段看起来通顺自然的普通文字里,外人察觉不到里面还有密文。

复制代码
文本隐写
├─ 修改式(在已有文本上做微小改动)
│   ├─ 基于文本格式:文本间距、字符属性、字符编码(零宽字符)
│   └─ 基于文本内容:基于语法算法、基于语义算法
└─ 生成式(语言模型从头生成一段文本)
    ├─ 基于马尔可夫链模型
    └─ 基于大语言模型 LLM  ← 当前主流

💡 一句话区分 : 修改式 = 拿一篇现成文章做手脚(有"原始版本"可以对照); 生成式 = 从头写一篇(根本没有原始版本,隐蔽性天然更强)。

5.2 修改式文本隐写

定义:分析文本的格式/字符属性、语法、语义特征,找到冗余位置藏秘密;或通过同义词替换、句式改写来承载密文。

基于文本格式的算法(不改语义,只改外观)
子类 具体手段
文本间距 字间距、行间距、空格数量、空格类型(半角 / 全角空格)
字符属性 字体颜色(同色隐形字)、字号、下划线
字符编码 Unicode 零宽字符(零宽空格、零宽连字,肉眼不可见)
基于文本内容的算法(改文字,保留原意)
子类 具体手段 例子
基于语法 调整句式、变换句型、主动被动互换 "我启动了程序" ↔ "程序被我启动"
基于语义 同义词 / 近义词替换 "开始" = 0,"启动" = 1

✅ 优点 :载体容易获取(随手一篇文章就能用) ❌ 缺点 :改动幅度大时容易不通顺、易被语法校验工具检出;冗余空间有限,隐写容量偏小

5.3 生成式文本隐写

定义:构建语言模型自动生成文本载体,在生成过程中通过熵编码、采样控制把秘密信息嵌入生成流程。

  • 经典做法:基于马尔可夫链模型的文本生成隐写

  • 当前主流 :基于 LLM 的隐写------在 token 采样时根据秘密比特选择下一个词,输出一篇看起来正常的段落,密文藏在"选词路径"里

✅ 优点 :文本原生生成,没有"原始版本"做对比 ,隐蔽性更强;隐写容量更高 ❌ 缺点 :早期模型容易生成不通顺文本;LLM 生成隐写存在被隐写分析(steganalysis)模型识别的风险

5.4 💻 动手:零宽字符隐写

这是网络上最常见的一类隐写,也是网安 / 反诈的重点检测对象。看一眼原理:

复制代码
# 零宽字符隐写:把比特流藏进看不见的 Unicode 字符里
ZWSP = '\u200b'   # 零宽空格 → 代表比特 0
ZWNJ = '\u200c'   # 零宽非连接符 → 代表比特 1

def embed(cover: str, secret: str) -> str:
    """把秘密藏进 cover 的第一个字符之后"""
    bits = ''.join(f'{b:08b}' for b in secret.encode('utf-8'))
    hidden = ''.join(ZWSP if b == '0' else ZWNJ for b in bits)
    return cover[0] + hidden + cover[1:]

def extract(stego: str) -> str:
    bits = ''.join('0' if c == ZWSP else '1' for c in stego if c in (ZWSP, ZWNJ))
    byte_arr = bytearray(int(bits[i:i+8], 2) for i in range(0, len(bits) - len(bits) % 8, 8))
    return byte_arr.decode('utf-8', errors='ignore')

# 演示
cover  = "今天天气不错,适合出门散步。"
stego  = embed(cover, "秘密SOS")
print("肉眼看到的:", stego)                 # 和原文一模一样
print("实际长度  :", len(cover), "→", len(stego))
print("提取结果  :", extract(stego))        # 秘密SOS

💡 运行一下你就会明白为什么它危险 (上面是实测输出): stego 打印出来和原文完全一致,但长度从 14 变成了 86(每个秘密字节 = 8 个零宽字符)。 肉眼零察觉,复制粘贴就能带走,聊天、网页、文档里都能用。

⚠️ 防守侧怎么查?

  1. 字符白名单过滤 :检测并剥离 \u200b、\u200c、\u200d、\ufeff、\u2060 等零宽字符;

  2. 长度异常检测:明文长度与可见字符数不匹配;

  3. 编码归一化:入库前做 Unicode NFC 规范化 + 不可见字符清洗。

5.5 工程重点(安全 / 反诈 / 运维视角)

关注点 说明
零宽字符隐写 聊天、网页、文档里最常用,肉眼完全不可见,适合隐蔽传输信息,是网安、反诈的重点检测对象
LLM 生成式文本隐写 近年隐写分析的研究热点,与大模型安全强相关

🛠️ 在线工具 :脚本之家在线图片隐写工具 原理为 LSB 最低有效位图像隐写------在图片像素的最低位嵌入文字秘密信息,支持设置密码加密。

📌 LSB 的思路很朴素:像素值 200 变成 201,人眼完全看不出区别,但最低位就悄悄记了一个比特。


📔 第六章 · LLM-Stega:只用 API 就能做隐写(ACM MM 2024)

📌 文献4 :Generative Text Steganography with Large Language Model 会议:ACM MM 2024(CCF-A),DOI: 10.1145/3664647.3680562|arXiv:2404.10229v2 作者:吴佳轩、吴正贤、薛一鸣、文娟(中国农业大学),彭万里(复旦大学)

6.1 白盒 vs 黑盒:范式跃迁

这篇论文解决的是一个非常现实的痛点。先看传统的生成式文本隐写(算术编码 Neural Linguistic Steganography、ADG、Discop)为什么用不了:

白盒方案的要求 现实情况
需要拿到语言模型的词表 GPT-4 不给你
需要拿到每一步 token 的采样概率分布 商用 API 只给最终文本
收发双方必须拥有完全相同的模型 几乎不可能
嵌入时会修改模型原生采样分布 引入统计偏移,容易被隐写分析器检出

💡 一句话 :白盒方案假设你有配方 (知道每个词的概率),黑盒场景你只会点菜(只能通过 prompt 让模型输出)。

本文目标 :设计完全黑盒 的生成式文本隐写 LLM-Stega ------不需要访问模型权重、词表、token 概率,仅靠提示词(Prompt)完成秘密信息的嵌入与提取,适配公开大模型接口。

6.2 四步流程

复制代码
① 关键词集构建
        ↓
② 加密隐写映射(关键词位置索引编码比特 + 发布时间 XOR 加密)
        ↓
③ 隐写文本生成(嵌入提示词 → LLM → 拒绝采样反馈优化循环)
        ↓
④ 秘密消息提取(提取提示词 → LLM → 解析关键词 → 解密)
步骤①:关键词集构建 Keyword Set Construction

通过主题提示词 ,诱导 LLM 生成 4 类关键词子集:主语、谓语、宾语、情感词(正/负/中性) ; 再用评估提示词,让 LLM 自行评估、优化关键词的采样概率。

📌 关键点 :关键词集合独立于大模型内部生成流程,不依赖模型原生 token 概率 → 这是它能黑盒运行的根本原因。

步骤②:加密隐写映射 Encrypted Steganographic Mapping
  • 对关键词集合做重复采样扩充 ,利用关键词在扩充集合内的位置索引编码秘密比特;

  • 引入一次性密码机制 :利用社交网络发布时间 (日期、小时、分钟)做 XOR 异或加密,生成收发双方共享私钥。

💡 这个设计很巧妙 : 即使监听者 Eve 拿到了完整的关键词集合,只要她不知道这条消息发布的精确时间 ,就解不出密钥。 而发布时间在社交网络上是公开可见的------这是一个天然的、无需预先传输的密钥交换信道。
⚠️ 注意:隐写映射独立于 LLM 生成流程 ,不会修改大模型原生采样分布 → 降低统计异常,这正是它抗隐写分析能力强的原因。

步骤③:隐写文本生成(拒绝采样反馈优化)

将编码了秘密信息的关键词输入嵌入提示词,调用黑盒 LLM 生成含密文本。

为什么需要"拒绝采样"? 黑盒场景下,你只能通过 prompt 让模型"用这些关键词写一段话",但无法保证模型真的每个词都用上了 。模型可能漏词、改词、加词。 于是作者设计了一个循环反馈机制:

复制代码
① 用「提取提示词」尝试从生成的文本中还原关键词
② 若还原结果 ≠ 原始编码关键词:
  用「反馈提示词」问 LLM 错在哪 → 迭代优化嵌入/生成/提取三个提示词
③ 循环,直到文本能完整还原秘密关键词,才输出最终隐写文本

消融实验证明:提示词深度迭代优化可显著降低拒绝率,同时提升文本流畅度。

步骤④:秘密消息提取

Bob 拿到社交网络上的隐写文本,用提取提示词调用同一个 LLM,解析出文本内部的关键词; 结合双方预共享的侧信息(关键词集、私钥、文本发布时间),解密恢复原始秘密比特。

📌 收发双方只需要知道关键词集合和密钥规则,不需要访问模型内部参数与概率。

6.3 实验设置与结果

实验条件

  • 黑盒模型:GPT-4 API;测试主题:娱乐新闻(LLM-Stega-EN)、科幻电影评论(LLM-Stega-RSciM)

  • 对比基线:AC(算术编码)、ADG、Discop、Discop-LLaMA2

评价指标

维度 指标 方向
文本质量 PPL 困惑度、Sentence-BERT 语义相似度 SS PPL 越低越好
嵌入容量 bpw(bits per word,每单词承载的秘密比特数) 越高越好
抗隐写分析 LS-CNN、BiLSTM-Dense、Bert-FT 三种分析器的检测准确率 越接近 50% 越安全(≈随机猜测)
统计不可感知性 KLD(KL 散度,衡量隐写文本与正常文本的分布差异) 越小越好
人工评估 流畅度、连贯性、主题相关性打分 越高越好

关键结果

结果 数据 解读
嵌入容量 5.93 bpw 超过大部分基线,每个单词能承载更多秘密比特
抗隐写分析 三种分析器准确率接近 50% ≈ 随机猜测,隐蔽性极强; 而基线 AC/ADG/Discop 被检出的准确率很高
文本质量 KLD 较低,人工评估优于基线 统计分布接近正常文本,语句通顺且符合主题
消融实验 提示词迭代优化 → 拒绝率下降、PPL 下降 反馈机制确实有效

💡 "检测准确率接近 50%"是什么概念? 二分类任务里,50% 就是抛硬币。也就是说,现有的隐写分析器对 LLM-Stega 基本无能为力 。 根因就是前面说的:它没有篡改模型的采样分布,所以不留下统计尾巴。

6.4 优缺点与未来方向

✅ 优点

  1. 真正黑盒范式------只需 LLM 网页/API 接口,不需要模型权重与 token 概率,适配 GPT-4 等商用闭源模型;

  2. 隐写映射独立于生成流程,不破坏原生采样分布,大幅降低被检出风险;

  3. 结合发布时间做 XOR 加密,增加密钥保护(无需预先传输密钥);

  4. 拒绝采样反馈优化,解决黑盒场景提取不准的痛点;

  5. 嵌入容量优于多数传统白盒算法。

❌ 局限性

  1. 需要收发双方预先共享关键词集合与密钥规则,且依赖提示词质量;

  2. 拒绝采样要多次调用 LLM API,推理开销与 token 消耗都很大;

  3. 秘密信息完全依托关键词承载,受关键词集规模上限约束;

  4. ⚠️ 只做了生成隐写,没有研究对应的隐写分析(怎么检测 LLM-Stega 这类黑盒隐写)------这是一个明显的开放问题。

未来方向

  1. 设计微调策略进一步挖掘大模型能力,摆脱固定关键词集合的约束;

  2. 进一步降低拒绝采样带来的调用开销;

  3. 研究针对黑盒 LLM 文本隐写的隐写分析检测算法 ← 防守侧的机会点。


📓 第七章 · LoRA:给大模型贴徽章

📌 论文:LoRA: Low-Rank Adaptation of Large Language Models (2021,微软) 归类:PEFT 参数高效微调(Parameter-Efficient Fine-Tuning),广泛用于 LLM 与 Stable Diffusion 微调。

7.1 背景:全量微调的三大痛点

全量微调(Full Fine-tune) :加载预训练基座模型,更新全部权重参数。

痛点 说明
显存开销巨大 不只存权重,优化器(AdamW)还要保存动量等状态,百亿模型需要多块 A100
存储成本高 每个任务都要保存一份完整模型权重
灾难性遗忘 微调后可能破坏基座模型原本学到的通用知识

7.2 核心原理

LoRA 的核心假设 :大模型适配下游任务时,权重矩阵的更新量 \Delta W 本身是低秩的------不需要完整矩阵,用两个很小矩阵的乘积就能近似。

① 冻结基座模型 预训练原始权重 W_0 全程冻结,不做任何梯度更新,保留全部预训练知识。

② 插入低秩矩阵对 在 Transformer 的自注意力层(Q、V 投影矩阵最常用)插入一对可训练矩阵 A、B:

  • A:降维矩阵;B:升维矩阵

  • r = 秩 rank,r \ll d(常用 8 / 16 / 32 / 64)

  • 更新量:\Delta W = B \cdot A

h = W_0 x + \frac{\alpha}{r} B A x

📌 初始化细节 :矩阵 B 初始化为全 0 。 训练刚开始时 \Delta W = 0,模型行为和原始基座完全一致,之后才逐步学习任务更新量。 这个设计保证了训练起点不会比基座差。

③ ✨ 推理优势:零额外延迟

推理阶段可以把 BA 直接合并进原始权重:

W' = W_0 + \frac{\alpha}{r} B A

合并后推理和原始模型完全一样,不像 Adapter 等方法要额外走一条子网络支路。

7.3 🎈 形象比喻

概念 比喻
基座大模型 一件完整的衣服
全量微调 整件衣服重新染色改版型------成本高,衣服本体被改变
LoRA 在衣服上贴可更换的徽章补丁------衣服本体不动,只训练徽章; 可随时摘掉恢复原版,也可换别的徽章适配别的任务

7.4 💻 可运行代码(peft)

复制代码
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B-Instruct",
                                             torch_dtype="auto", device_map="auto")

lora_config = LoraConfig(
    r=16,                      # 秩:越大表达力越强,参数量也越多
    lora_alpha=32,             # 缩放因子,一般设为 2*r 或同 r
    target_modules=["q_proj", "v_proj"],   # LLM 一般插 Q、V 投影
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# 典型输出:trainable params 约 5M || all params 约 7.6B || trainable% ≈ 0.07
#   → 只训练基座 0.1% 左右的参数,显存与存储压力下降两个数量级

训练完只保存 LoRA 适配器(几 MB ~ 几十 MB),基座共用一套。

推理的两种模式

模式 做法 特点
在线支路 同时加载基座 + LoRA 适配器,并行计算相加 可热插拔切换任务
权重合并 把 \Delta W 合并进 W_0,得到新完整权重 推理速度与原始模型完全相同
复制代码
# 权重合并:合并后推理零额外开销
merged = model.merge_and_unload()
merged.save_pretrained("./qwen2-7b-merged")

7.5 关键超参

参数 说明 常用值
r (rank) 秩,LoRA 模块表达能力;越大参数越多 8 / 16 / 32 / 64
lora_alpha 缩放因子,控制 LoRA 对输出的影响力 一般等于 r 或 2r
target_modules 插入 LoRA 的层 LLM:q_proj, v_proj;SD:UNet 注意力层
lora_dropout LoRA 内部 dropout,防过拟合 0.0 - 0.1

7.6 优缺点

✅ 优点

  1. 显存、存储开销极低------消费级显卡可微调 7B/13B;LoRA 补丁只有几十 MB,多任务只需存多个小补丁共用基座;

  2. 避免灾难性遗忘------基座权重完全不动;

  3. 推理无额外延迟(区别于 Adapter、Prefix-tuning);

  4. 任务切换灵活,卸载/加载适配器即可切换能力。

❌ 缺点

  1. 表达能力上限受 rank 限制------复杂任务 rank 太小会欠拟合,调大则参数量、显存上升;

  2. 不能彻底改变模型底层能力,适合适配、风格迁移、指令微调;不适合彻底重构能力;

  3. 依赖 target_modules 的选择,选错层效果会很差。

💡 QLoRA :LoRA 的进一步变体------把基座模型 4-bit 量化冻结 ,仅 LoRA 矩阵用 FP16 训练,可以单张消费卡微调 70B 大模型。

7.7 PEFT 方法横向对比

方法 推理额外延迟 是否冻结基座 参数量占比
全量微调 无 ❌ 全部更新 100%
LoRA 无 ✔ 冻结 0.1 - 1%
Adapter 有 ✔ 冻结 0.1 - 1%
Prefix-tuning 有 ✔ 冻结 0.1 - 1%
QLoRA 无 ✔ 量化冻结 0.1 - 1%

7.8 📌 安全视角的关联

⚠️ LoRA 是一把双刃剑,这一点在 AIGC 安全语境下特别重要:

  1. 攻击方:可以用 LoRA 微调扩散模型,快速定制生成特定人物的伪造图片(成本低到几分钟);

  2. 攻击方 :可以发布带后门的 LoRA 补丁------用户一加载,模型就被植入后门(这是 BadNets 思想在新时代的延伸);

  3. 防守方:可以用 LoRA 微调检测器,快速适配特定样本类型(比如新增 Deep-Live-Cam 换脸样本的检测能力)。

📌 实践含义 :不要随便加载来源不明的 LoRA。模型供应链安全,从 .safetensors 文件开始。


📒 第八章 · 大模型 API 推理参数速查

📌 说明:以下全部是推理/生成阶段参数,不改变模型权重,训练与 LoRA 微调不受影响。 主流 OpenAI、Qwen、LLaMA、Claude 接口通用。

8.1 temperature 温度系数

作用:重塑 token 概率分布,控制输出的随机性与创造性。

取值 效果 适用场景
0 - 0.3 严谨、确定性高,几乎无随机 数学计算、代码、事实问答、检索问答
0.4 - 0.7 平衡准确与多样性(多数 API 默认) 日常对话、摘要、报告撰写
0.8 - 1.0 强多样性 故事创作、文案、头脑风暴
> 1.0 高度随机,容易逻辑崩坏 诗歌创意实验,生产环境不建议

⚠️ 注意 :只有开启随机采样(do_sample=True)时温度才生效;贪心解码下温度参数无效。

8.2 top_p 核采样(Nucleus Sampling)

作用:动态截断候选词池------从概率最高的 token 开始累加,累积概率达到 top-p 就丢弃剩下的,只在保留集合内采样。

  • top_p=0.9:只保留累计概率占 90% 的候选 token

  • top_p=1.0:不做任何截断

💡 temperature vs top_p 的本质区别

  • temperature :缩放 全部 token 的概率,不删除任何候选

  • top_p :直接过滤删除一部分候选 token

工程常见搭配:temperature=0.7, top_p=0.9。严谨任务调低,创意任务调高。

8.3 top_k

作用:固定保留概率最高的 K 个 token,其余全部丢弃。

  • 缺点:固定 K 值对不同输入适配差,工业界更优先使用 top_p

  • 注意:部分 OpenAI 系 API 不再暴露 top_k;开源模型(LLaMA、Qwen)仍提供

top-p 是动态数量 ,top-k 是固定数量,两者可同时生效。

8.4 max_tokens / max_new_tokens

参数 含义
max_tokens 整个请求(输入 prompt + 输出回答)的总 token 上限
max_new_tokens 只限制本次生成输出的最大 token 数,不统计输入 prompt

📌 token 粗略换算:1 token ≈ 0.75 个中文汉字。 达到上限会强制截断,回答不完整------需要长回答就调大。

8.5 上下文窗口 Context Window

这不是请求体参数,是模型的硬件能力属性,但调用 API 时高频涉及。

  • 代表模型最多可同时读取的总 token(历史对话 + 当前 prompt)

  • 例:4K 上下文模型,全部输入 + 输出总和不能超过 4096 token

  • 超出窗口报错:context length exceeded

溢出解决方案

  1. 使用更大上下文版本的模型

  2. 对历史做摘要压缩

  3. 丢弃最早的历史消息

8.6 两个惩罚项(最容易搞混)

参数 作用机制 > 0 的效果 类比
frequency_penalty 频率惩罚 对已生成过的 token 施加惩罚, 出现次数越多,惩罚越重 降低重复句式、循环废话 看出现多少次 → 防循环复读
presence_penalty 存在惩罚 只要 token 曾经出现过 就惩罚, 不关心出现几次 鼓励引入新概念、新词汇 只要出现过就罚 → 鼓励新话题

两者取值范围均为 -2.0 ~ +2.0,默认 0;< 0 则鼓励重复/复用。

8.7 stop / stream / logprobs / n

参数 说明
stop 停止序列(字符串列表)。生成匹配到列表中的字符串立即终止,该字符串不出现在结果中。 常用于格式化输出,如 stop=["\n\n", "###"]
stream true = SSE 流式逐块返回(打字机效果,适合网页聊天);false = 全部生成完一次性返回
logprobs 是否返回每个输出 token 的对数概率。普通业务关闭; 文本隐写、模型分析、AIGC 取证实验必须开启
n 一次请求生成 n 条候选回答。token 消耗成倍增加,多用于实验

⚠️ 一个关键限制 : GPT-4 等商用黑盒 API 即使开启 logprobs,也拿不到完整全部 token 的 logit ,只能看到被采样出来的那个 token 的概率。 这正是 LLM-Stega 那篇论文存在的理由------黑盒 API 拿不到完整 logit,传统白盒隐写根本跑不起来。

8.8 📋 三套场景模板

复制代码
// ① 严谨任务(代码、数学、事实问答)
{
  "temperature": 0.1,
  "top_p": 0.3,
  "max_new_tokens": 1024,
  "frequency_penalty": 0.1,
  "presence_penalty": 0.0
}
复制代码
// ② 通用日常对话、报告
{
  "temperature": 0.7,
  "top_p": 0.9,
  "max_new_tokens": 2048,
  "frequency_penalty": 0.05,
  "presence_penalty": 0.05
}
复制代码
// ③ 创意写作、故事
{
  "temperature": 0.9,
  "top_p": 0.95,
  "max_new_tokens": 2048,
  "frequency_penalty": 0.2,
  "presence_penalty": 0.2
}

8.9 📌 与前面知识点的关联

知识点 关联
Neural Linguistic Steganography(EMNLP 2019,白盒文本隐写) 白盒场景可直接操作 temperature 缩放 logits,获取完整 token 概率做算术编码隐写
LLM-Stega(MM 2024,黑盒 API 隐写) 商用 API 拿不到完整 logprobs,无法操纵温度做传统隐写 → 改用提示词 + 关键词方案
取证检测实验 不同温度、top_p 会改变生成文本的统计特征,会影响文本隐写分析模型的检测准确率------做实验时务必固定参数,否则结果不可复现

🧾 第九章 · 总结

9.1 🗺️ 全局知识地图

把上篇的内容串成一张图------中心问题是"如何重建可信":

复制代码
                        【AIGC 安全:攻与防】
                                 │
        ┌────────────────────────┼────────────────────────┐
        │                        │                        │
   视觉媒体取证              文本域信息隐藏           模型侧技术
        │                        │                        │
   ┌────┴────┐              ┌────┴────┐            ┌──────┴──────┐
   │          │              │          │            │             │
被动检测   主动防御      修改式      生成式      LoRA微调    API推理参数
   │          │              │          │            │             │
 ┌─┴─┐    ┌──┴──┐      格式/编码   马尔可夫链    低秩假设     temperature
 │   │    │     │      (零宽字符)      │        冻结基座      top_p/top_k
粗粒度 干扰  认证                      │       推理零延迟     惩罚项/上下文
细粒度 扭曲  鲁棒              基于LLM生成              │
可信性 归零  半脆弱                │                   │
 │                                  │                   │
 └─鲁棒性/公平性           LLM-Stega(黑盒·ACM MM24)    └─ 白盒需 logprobs
                                    │                      黑盒只能靠 prompt
                           关键词集+加密映射
                           +拒绝采样反馈

三条贯穿全文的线索:

线索 表现
① 被动 → 主动 检测(事后)→ 干扰/水印(事前)。学术界 71% 还在被动侧,主动侧是机会
② 白盒 → 黑盒 从"拿得到模型内部"到"只有 API"。LoRA 是白盒,LLM-Stega 是黑盒,两条路都在走
③ 实验室 → 真实世界 压缩降质、分布偏移、阈值标定、真实工具样本------这四件事决定了论文能不能落地

9.2 十条要点

  1. 防御分被动与主动 :被动是事后验钞(检测),主动是出厂防伪(干扰 + 水印认证)。当前研究 71% 集中在被动侧。

  2. 细粒度检测才是取证:伪造定位、模型/数据溯源、篡改顺序还原------法庭要的是"裁判报告",不是"举牌"。

  3. 检测器本身也要被质疑:鲁棒性(对抗/后门攻击)与公平性(不同人群性能一致)是新兴的关键维度。

  4. 低层伪影比高层伪影可靠 :人眼看得见的破绽会被下一代模型修掉;频谱峰、噪声残差这类机器痕迹才稳。

  5. ⚠️ AUC 高 ≠ 能上线 :不同生成模型的分数分布是偏移的,不做阈值标定就上生产必然翻车。这是最容易被忽略的落地杀手。

  6. 扩散模型比 GAN 更难检测,社交网络后处理会显著拉低性能------实验室与野外数据的鸿沟是常态。

  7. 空频融合的关键在"怎么融":SF₃M 的多层渐进式融合 + 对比损失正则,是缓解过拟合与压缩降质的有效组合。

  8. 文本隐写分修改式与生成式 :生成式没有"原始版本"可对照,隐蔽性天然更强;零宽字符是最常见的修改式手段,也是反诈重点。

  9. LLM-Stega 完成了白盒→黑盒的范式跃迁 :靠关键词集 + 加密映射 + 拒绝采样,只用 API 就能隐写,三种分析器准确率≈50%。但它的检测方法是空白------这是防守侧的机会。

  10. LoRA 用低秩假设把微调成本降了两个数量级 ,推理零延迟;但⚠️它同时是攻击工具------带后门的 LoRA 补丁就是新时代的供应链风险。

9.4 📚 参考资源

类别 资源
文献1 arXiv:2407.10575 | ACM CSUR | 2407.10575 A Survey of Defenses Against AI-Generated Visual Media: Detection,Disruption, and Authentication
文献2 arXiv:2405.00196 | IEEE S&P | 2405.00196 Synthetic Image Verification in the Era of Generative AI: What Works and What Isn't There Yet
文献3 DOI: 10.1109/ICASSP49357.2023.10094654 | ICASSP 2023
文献4 arXiv:2404.10229 | ACM MM 2024 | DOI: 10.1145/3664647.3680562
LoRA arXiv:2106.09685 | 实现:pip install peft
换脸工具 hacksider/Deep-Live-Cam
在线隐写工具 在线图片添加/解密隐藏信息(隐写术)工具 - 站长辅助工具 - 脚本之家在线工具
常用数据集 FaceForensics++、Celeb-DF-v2、DFDC、GenImage、GenVideo

🙏 声明

  • 内容来源 :本文为个人学习笔记整理,全部素材来自公开发表的学术论文与开源项目,核心文献均已核对原文,不含任何内部资料或敏感信息。

  • 本文改动:结构重排、原理补全、通俗化改写与工程建议补充(💡 补充 / ⚠️ 易错 / 📌 重点),并加入可运行代码片段。

  • 合规声明 :文中涉及的后门、隐写、注入等技术,仅用于学术研究与防守侧检测(取证分析、内容审核、授权红队评估)。 将深度伪造用于诈骗、诽谤或伪造证件,将隐写用于未授权的隐蔽通信,将后门植入他人模型,均属违法。

  • 如需转载请注明出处;如有侵权请联系删除。

相关推荐
AI浩1 小时前
Xiaomi-Lens-0 技术报告
人工智能·计算机视觉·1024程序员节
Rocky Ding*1 小时前
【三年面试五年模拟】2026-10-20_淘天AI应用研发一面面经全解析
论文阅读·人工智能·深度学习·机器学习·面试·aigc·ai-native
Latchh1 小时前
WebP转JPG背景变黑、边缘毛刺?4种方法
图像处理·人工智能·计算机视觉
碧海银沙音频科技研究院1 小时前
基于炬芯ATS308X的DNN全连接神经网络手写数字识别系统设计
人工智能·深度学习·算法
xiangzhihong81 小时前
番茄小说系统:从读者门户到作家与平台运营的多端实践
人工智能
古法搬砖工1 小时前
MCP:给 AI Agent 装一个“万能 USB 接口”
人工智能·skill·mcp·搬砖工
能源革命1 小时前
AI 日报|2026-10-23
人工智能
天空属于哈夫克31 小时前
企业微信 API 二次开发与 AI 结合:如何设计智能消息处理流程
人工智能·企业微信
龙粤GEO1 小时前
做GEO是不是只针对AI问答搜索
人工智能