B站专门做学术论文打假的UP主“耿同学讲故事”,他的风格很上头:一本正经地扒论文里的数据造假证据,配上大量吐槽和段子,把枯燥的学术不端问题讲成了相声。

看多了会发现一个问题:他每期都在讲不同的院长、教授、Nature子刊,但反复用的检测手法其实高度相似。只是每次都换了案例、换了段子包装,不容易一眼看出规律。

于是我起了个念头:

能不能把他全部投稿一次性扒下来,用本地AI帮我把这套隐藏的方法论提炼出来?

整个过程走了三步:下载、转写、总结。除了从B站获取公开视频,后面的转写和模型分析都在本地电脑上跑完,没有调用云端AI接口。

准备数据

本地AI内容提炼流水线
本地AI内容提炼流水线

这部分其实不是文章的重点,但它决定了后面分析能不能成立。视频要先完整拿到,语音要先转成可检索的文字,最后模型才有材料可总结。

第一步,批量下载全部投稿

先用一个基于yt-dlp的下载脚本,一次性抓取UP主视频列表页的全部视频。下载了所有的视频,在本地进行视频转音频、音频转文字操作。

耿同学封面墙
耿同学封面墙

这里有两个实际坑。

第一个坑是B站风控。投稿列表页不带浏览器cookie直接访问,会被412拒绝。带上cookie之后,脚本才能正常拿到完整投稿列表。

第二个坑是下载策略。脚本第一次跑的时候,我设置成自动挑选最高画质。结果在正式下载前,yt-dlp会先对整个列表里的每一条视频做一次完整探测,导致跑了很久才真正开始下载。后来改成直接指定画质,跳过这一步,效率提升明显。

后面还有一次补漏。先前下载中断过,有些视频没下完整。这里用了yt-dlp自带的下载记录文件,也就是download archive机制:把已经下载好的视频ID写进记录文件,再次运行时自动跳过已完成的,只补齐缺的部分。

最后,155个投稿里成功拿到153个可用视频文件。

第二步,本地语音转文字

视频到手之后,下一步是把语音内容变成文字稿,方便后续做文本分析。

这一步用的是本地部署的语音识别模型faster-whisper,模型是large-v3,全程跑在自己电脑上,不依赖任何在线转写服务。

153个视频,平均单个模型推理耗时不短,累计跑了接近一整天。

中间出了两个挺有意思的乌龙。

一个是重复启动了两个进程。因为任务本身耗时很长,我没意识到之前已经有一个转写进程在后台跑了大半天,又手动开了一个新的。两个进程同时抢占了将近900%的CPU,电脑发烫严重,用上电风扇降温了。发现后赶紧把多余的那个关掉,只留一个继续跑。

另一个是日志假死。Python脚本把输出重定向到文件时,默认是整块缓冲,不是写一行就刷新一次。这导致我盯着日志文件,以为转写卡在了某一集长达一个多小时。实际上程序早就往前跑了十几个文件,只是日志内容还堆在内存缓冲区里没写盘。

后来不再盯日志,而是看实际产出的txt文件数量,才发现进度一直正常。

这个坑挺值得记一笔:监控长时间任务,不能只看它打印了什么,得看它实际产出了什么。

第三步,用本地模型做内容归纳

153份文字稿到手后,发现这位UP主的内容其实很杂。

除了论文打假,他还聊考研上岸率、读博的精神状态、相亲催婚、科研生活,也有不少直播带货式的科普。我粗筛了一遍,真正逐帧分析论文造假证据的硬核内容,大概40篇左右。

之后没有直接让模型“总结耿同学的观点”。那样很容易变成几句空话,比如“要重视学术诚信”“要加强科研监管”“要提升论文质量”。这些话都对,但没有用。

其实真正想知道的是另一件事:

如果把这些视频当成一个样本库,论文的“假”到底应该从哪些角度分析?

于是就先让本地模型做关键词检索和初步聚类,重点看“造假”“撤稿”“图片重复”“数据造假”“临床”“代写”“重复实验”“原始数据”等词反复出现的位置。然后再人工抽查高频案例,避免模型把普通科普内容也混进论文打假里。

跑完之后,一个很清楚的框架浮出来了。

论文的“假”,不是一个点。它不是只有P图,也不是只有数据编造。真正的问题经常是一条链:图片可疑,数据异常,方法写不清,实验不可重复,结论往外跳,作者回应躲闪,最后学校和期刊再用一句“不规范”把事情盖过去。

得出的结论

有了这批文字稿之后,真正有价值的不是复述每一期视频讲了谁,而是把反复出现的判断动作抽出来。最后我把它整理成10层,从最容易观察的图片问题,一直推到论文背后的生产链和回应方式。

第一层,看图片

这是最直观的一层,也是耿同学视频里最常见的入口。

同一篇论文里,图片重复出现。不同论文里,图片重复出现。图片旋转180度以后还能重合。图片翻转、裁剪、调色以后,背景噪点、组织纹理、细胞形态还能对上。

这类问题最麻烦的地方在于,它不需要你完全懂论文的专业方向。你不一定知道这个信号通路是否成立,也不一定知道这个动物模型是否合理,但你能看出来两张图是不是同一张。

尤其是Western blot、细胞图、组织切片、肿瘤照片这些图,背景噪点和纹理就像指纹。它们一旦对上,就很难用“巧合”解释。

很多作者会把这类问题说成“图片误用”。但“误用”这个词只能解释一次,很难解释一串。如果一个团队的多篇论文、多个项目、多个年份反复出现图片重复,那就不是手滑,更像是一种生产方式。

第二层,看数据

假数据常常败在随机性
假数据常常败在随机性

图片问题最直观,但数据问题往往更致命。

耿同学的视频里,数据统计类分析是很核心的一块。把论文里的原始数据整理出来,看小数点位数是否有跨行、跨列复制粘贴的痕迹,看某几列之间是否存在固定加减关系,看末位数字的分布是否接近随机。

在没有固定取整规则或仪器偏好的连续测量里,真实数据的末位数字通常不该高度集中在少数几个数字上。如果大量数据都挤在某几个末位,就可以用概率论算出这种巧合发生的概率有多低。

这类分析的杀伤力在于,它不是说“我觉得不像真的”,而是把问题转成一个统计学判断:这些小概率事件不应该同时发生。

耿同学吐槽某些论文时,经常会说“下次用随机数生成器”。这句话听起来像玩笑,但背后是一个严肃判断:很多假数据不是因为太复杂被发现,而是因为编得太粗糙。

真实实验数据通常有噪声。它不会那么听话。

第三层,看常识能不能对上

有些问题不需要复杂统计,常识就能先挡一遍。

比如测量精度是否合理,生物学机制是否说得通,实验动物和实验分组是否匹配,疾病和性别是否匹配,样本来源和结论外推是否匹配。

这类交叉验证看起来很朴素,但很有用。

论文最容易出问题的地方,往往是作者只盯着想要的结论,忘了现实世界还有很多约束。数据可以编,图片可以修,段落可以写得很漂亮,但常识有时候会从边角里露出来。

第四层,看原始材料

论文出问题以后,最关键的不是作者怎么解释,而是作者能不能拿出原始材料。

原始图片在哪里?原始表格在哪里?实验记录在哪里?样本编号在哪里?仪器输出文件在哪里?动物实验和临床研究的伦理审批在哪里?

这些东西如果都能交代清楚,很多争议可以继续往下讨论。比如图片是否确实贴错了,统计方法是否可以修正,结论是否需要收窄。

但如果作者只给解释,不给材料,可信度就会迅速下降。

学术争议不是靠态度解决的。你说“我们没有造假”,这句话本身没有证据价值。真正有价值的是原始数据、实验记录和可以被第三方检查的材料。

第五层,看实验能不能重复

耿同学反复讲过一个意思:重复实验不是万能的,但重复不出来的实验一定要警惕。

这句话放在生命科学领域尤其刺耳。

很多生命科学实验确实复杂。样本来源、细胞状态、动物模型、菌群结构、试剂批次、操作人员都会影响结果。问题是,复杂不能变成免死金牌。

如果一篇论文的方法写得很模糊,关键材料拿不到,实验条件说不清,只有作者自己能做出来,别人一重复就失败,那它至少不应该被当成一个坚实结论。

科学研究当然允许失败,允许不确定,也允许后来被推翻。但如果一篇论文从发表那天起就无法被别人验证,它就更像一次性论文。

第六层,看方法设计有没有先天漏洞

有些论文不一定是直接伪造,但实验设计本身就撑不起结论。

比如样本量太小,对照组不合理,排除数据没有充分理由,只展示有利结果,用相关性冒充因果性,把动物实验外推到人体,把体外细胞实验外推到临床疗效。

这类问题更隐蔽,因为它不像图片重复那么一眼可见。

很多论文最常见的偷换,是从“观察到一个现象”,跳到“证明了一个机制”;从“小鼠身上有效”,跳到“人类疾病有希望”;从“两个变量相关”,跳到“一个变量导致另一个变量”。

真正读论文,不能只看摘要里的结论。要往回看它是怎么得到这个结论的。实验设计如果站不住,结论写得再热闹也没用。

第七层,看临床证据够不够

只要涉及药物、保健品、治疗方案,证据等级就要往上提。

细胞实验不能直接证明药效。动物实验不能直接证明人体有效。早期临床不能替代三期临床。患者反馈不能替代随机、双盲、对照试验。

耿同学对药效类论文和药物宣传有一个很硬的判断:脱离三期临床谈药效,基本都是耍流氓。

这句话可能有点冲,但方向是对的。

尤其是那些打着“重大突破”“全球首个”“传统药物新机制”“治疗老年痴呆”“抗癌新方法”旗号的内容,最应该追问的是:临床证据走到哪一步了?

有没有正式完成三期临床?样本量多大?终点是什么?是否随机、双盲、对照?是否只是附条件上市?后续验证有没有完成?

医学论文最危险的地方,是它不只影响论文作者的名声,还会影响病人的选择。

第八层,看论文是不是流水线产品

单篇论文可疑,可能是个案。多篇论文可疑,就要看背后的生产链。

一些视频里提到的典型现象包括:不同单位的论文共用图片;作者之间没有交集,但数据重复;多篇论文结构高度相似;同一批肿瘤照片、细胞图、组织切片出现在不同文章里;论文工厂、代写代发、买论文、挂名署名混在一起。

这时候,问题就不只是“某位作者有没有造假”,而是“这篇论文是怎么被生产出来的”。

论文一旦变成商品,就会出现供应链。有人负责写,有人负责图,有人负责数据,有人负责投稿,有人负责挂名。最后论文发表出来,看起来像科研成果,其实更像一张发票。

跨论文重复,往往比单篇论文内部错误更有杀伤力。

第九层,看作者和成果是否匹配

论文之外,人也要看。

比如一个本科生一年发几十篇SCI,一个硕士三年发八十多篇论文,一个没有足够学术积累的人突然成了某个领域的代表人物,一个团队长期高产但问题频出,这些都不直接证明论文造假,但它们会提高风险等级。

科研当然有天才,也有年轻人做出很强成果。但天才也需要解释路径。

如果一个人的成果数量、论文质量、作者位置、研究跨度和真实训练时间完全不匹配,就应该多问几句:这些论文是谁做的?实验是谁完成的?数据是谁处理的?通讯作者有没有真正把关?

还有一种情况是头衔包装。

院士、外籍院士、全球顶尖科学家、青年才俊、某某中心主任,这些称号有时会变成论文的保护层。读者看到头衔,就降低了警惕。

但论文不是按头衔判真假的。头衔越大,反而越应该把证据摊开。

第十层,看被质疑后的回应

论文被质疑以后,回应方式本身就是证据的一部分。

一种回应是证据型回应:公开原始数据,解释每张图的来源,承认错误,申请更正或撤稿,接受独立调查。

另一种回应是态度型回应:说质疑者不懂,强调团队声誉,发律师函,告人,骂网友,或者用“图片误用”“管理不严”“学生操作失误”一笔带过。

前者可以让问题继续回到证据上。后者往往是在把问题从证据场拖到权力场。

如果一篇论文真的没问题,最好的回应不是愤怒,而是把材料拿出来。

科研不怕质疑。怕的是一被质疑,就只剩情绪和身份。

这套框架的核心

论文打假10层检查框架
论文打假10层检查框架

抛开每期的段子包装,耿同学这套论文打假逻辑,大致可以归纳成几层:

图片证据类:同一张图在不同论文里重复出现,旋转或翻转后完全重合;同一只实验动物的照片,被用在两组本该不同的结果里。

数据统计类:把论文里的原始数据整理出来,检查小数点位数、末位数字分布、跨行跨列复制粘贴痕迹,以及不同列之间不自然的数学关系。

常识交叉验证类:用测量精度、生物学常识、疾病和样本匹配关系,去检验数据是否合理。

外围佐证类:论文产出速度是否远超同行正常水平,是否有论文工厂模板化特征,期刊是否具备正常审稿机制,作者和成果是否匹配。

这套框架说到底就是一件事:用统计学上的小概率事件不该成串出现,去反推数据造假。

图片问题只是最直观的入口。真正让造假者难以解释的,是数据本身违反随机性规律,是多个独立异常同时出现,是整条证据链都不稳。

用AI总结这类内容,最怕总结成空话

这次处理153个txt的小实验,最大的感受是:AI很适合做第一轮整理,但不能把最终判断完全交给模型。

模型可以帮你找高频词,归纳主题,聚类案例,把“图片重复”“数据异常”“临床证据不足”“代写代发”“不可复现”这些线索拉出来。

但模型也容易犯两个错误。

一是把普通科普内容误判成打假内容。因为科普里也会出现“论文”“实验”“数据”“临床”这些词。

二是把尖锐判断磨平。原视频里很具体的问题,到了模型总结里,可能变成“应加强学术规范”。这就没意思了。

所以我最后还是做了一轮人工抽查。不是为了替模型干活,而是为了确认它抓出来的模式真的来自文本,而不是从常识里编出来。

这个过程反而让我更确认,AI总结长内容的价值,不在于替人下结论,而在于把材料铺开,让人更快看到结构。

写在最后

回头看整个流程,下载、转写、归纳,其实是一条可以复用的本地化内容提炼流水线。

换成任何一个你感兴趣的博主、播客或者系列讲座,理论上都能这么跑一遍:把几十上百期零散内容,压缩成一份结构化的方法论文档。

而且从转写到分析,没有一行文字稿经过云端AI接口。对在意隐私,或者不想依赖外部模型服务的人来说,这条路挺值得参考。

不过这条路也有一个前提:AI只能帮你提炼结构,不能替你负责判断。

如果以后要判断一篇论文是否可疑,我会按这个顺序看:

先看图,有没有重复、拼接、翻转、共用背景。

再看表,数字有没有奇怪规律,统计有没有异常。

再看常识,测量精度、生物学机制、样本和结论能不能对上。

再看方法,别人能不能照着做。

再看原始数据,作者是否能交代清楚。

再看同团队旧文,是否反复出现类似问题。

最后看回应,是公开证据,还是用话术压过去。

一篇论文真不真,不能只看它发在哪,也不能只看作者是谁。真正要看的,是它的证据链能不能一层层站住。

论文的“假”,通常不是一个破绽,而是一串破绽。

这也是我从153个视频文字稿里,最想留下来的东西。